Metadata-Version: 2.5
Name: fond
Version: 0.3.1
Summary: Foundation for Cooking, Foundation for Life.
Author-email: chaz <bright.lid5647@fastmail.com>
Requires-Python: >=3.12
Provides-Extra: time
Requires-Dist: bear-epoch-time; extra == 'time'
Description-Content-Type: text/markdown

<p align="center">
  <img src="config/fond.jpg" alt="Fond — Foundation for Cooking, Foundation for Life" width="480">
</p>

# Fond

Foundation for Cooking, Foundation for Life.

[![pypi version](https://img.shields.io/pypi/v/fond.svg)](https://pypi.org/project/fond/)

> **Experimental:** This package is under active development. APIs may change without notice.

A C++26 header-only library shipped on PyPI as a build-time dependency, the same way pybind11 is. Your build pulls the headers in; your end users get a prebuilt wheel and never install fond.

## Requirements

- A C++26 compiler: Clang + libc++ (primary), or GCC 16 (which also enables C++26 reflection with `-freflection`)
- Python 3.12+ for the package itself

Optional integrations (pybind11, CTRE, glm, Lua/sol2, httplib, ...) are detected with `__has_include` and switch on only when present.

## Usage

```toml
[build-system]
requires = ["fond>=0.3.0", "build-cub", "pybind11"]
```

```python
import fond

fond.get_include()  # -I path for the headers
```

```cpp
#include <fond/collections/maps.hpp>
#include <fond/logger/fwd.hpp>
#include <fond/toml/reader.hpp>
```

## What's Inside

- **collections**: policy-based Set/Map (ordered, frozen), Arena, Pool, BitFlag, Trie, LRU caches, ring buffers, sparse sets
- **bytes / msgpack / toml / lua**: endian-aware binary readers and writers, plus `*_DEFINE` macros for struct serialization
- **logger**: `BasicLogger<Sinks...>` with sinks composed at compile time
- **argparse**: Python-style argument parsing
- **config**: ConfigManager with TOML and env-var overrides, KeyStore
- **strings / cli**: string helpers, UTF-8, fuzzy matching, a Rich-style console
- **math**: constexpr Vec/Mat4/quaternion, compile-time math, glm interop
- **types**: Bounded, UUID, Selfaboo/Identity mixins, reflection helpers
- **time / concurrency / events / hashlib / files**: timers and epochs, thread pool and queues, events and FSM, SHA-256/CRC64/SipHash, file walking and watching

For the header-by-header map, see [config/PROJECT_STRUCTURE.md](config/PROJECT_STRUCTURE.md).
