# facil.io C STL edge Documentation

The edge build of the 0.8.x line re-organizes facil.io as the **fio-stl** library — a single-header-style C STL plus IO, HTTP, Pub/Sub and TLS 1.3 modules. Source code: [facil-io/cstl](https://github.com/facil-io/cstl).

**[Download fio-stl.h](https://github.com/facil-io/cstl/releases/download/edge/fio-stl.h)** — the entire library as a single header file (edge build, always current, one click).

> Edge build — rolling fio-stl development docs, synced from the cstl edge tag.

The documentation is organized into module guides below, plus a complete [API Reference](https://facil.io/edge/api/) generated from the headers. Press <kbd>/</kbd> or <kbd>⌘K</kbd> anywhere to search.

## <a id="group-core"></a> Core Library

Version macros, compiler shims, atomics, memory primitives, SIMD and math — the foundation everything builds on.

- [facil.io STL — Core](https://facil.io/edge/facil-io-stl-core/)
- [Atomics and Locks](https://facil.io/edge/atomics-and-locks/)
- [Bit Operations](https://facil.io/edge/bit-operations/)
- [Compiler Attributes](https://facil.io/edge/compiler-attributes/)
- [Constant-Time Helpers](https://facil.io/edge/constant-time-helpers/)
- [Endian and Byte Ordering](https://facil.io/edge/endian-and-byte-ordering/)
- [Linked Lists](https://facil.io/edge/linked-lists/)
- [Logging and Assertions](https://facil.io/edge/logging-and-assertions/)
- [Core Math Helpers](https://facil.io/edge/core-math-helpers/)
- [Memory Alternatives and OS Patches](https://facil.io/edge/memory-alternatives-and-os-patches/)
- [Memory Primitives](https://facil.io/edge/memory-primitives/)
- [OS Detection](https://facil.io/edge/os-detection/)
- [Core Random PRNG](https://facil.io/edge/core-random-prng/)
- [Fake x86 SIMD](https://facil.io/edge/fake-x86-simd/)
- [Static Scratch Allocator](https://facil.io/edge/static-scratch-allocator/)
- [String and Buffer Information](https://facil.io/edge/string-and-buffer-information/)
- [UTF-8 Helpers](https://facil.io/edge/utf-8-helpers/)
- [Vector Math](https://facil.io/edge/vector-math/)
- [Version and Settings](https://facil.io/edge/version-and-settings/)

## <a id="group-util"></a> Utilities & Parsers

Text conversion, hashing, glob, sorting, threads and the wire-format parsers (HTTP/1.x, JSON, RESP3, WebSocket…).

- [String / Number Conversion](https://facil.io/edge/string-number-conversion/)
- [CRC32](https://facil.io/edge/crc32/)
- [Glob Matching](https://facil.io/edge/glob-matching/)
- [Index Mapped Array (iMap)](https://facil.io/edge/index-mapped-array-imap/)
- [Multi-Precision Math](https://facil.io/edge/multi-precision-math/)
- [Pseudo-Random and Hashing](https://facil.io/edge/pseudo-random-and-hashing/)
- [Signal Monitoring](https://facil.io/edge/signal-monitoring/)
- [Sorting](https://facil.io/edge/sorting/)
- [Portable Threads](https://facil.io/edge/portable-threads/)
- [URL / URI Parsing](https://facil.io/edge/url-uri-parsing/)
- [ML Entity Decoding](https://facil.io/edge/ml-entity-decoding/)
- [File Helpers](https://facil.io/edge/file-helpers/)
- [HTTP/1.x Parser](https://facil.io/edge/http-1-x-parser/)
- [JSON Parser](https://facil.io/edge/json-parser/)
- [MIME Multipart Parser](https://facil.io/edge/mime-multipart-parser/)
- [RESP3 Parser](https://facil.io/edge/resp3-parser/)
- [Basic Socket Helpers](https://facil.io/edge/basic-socket-helpers/)
- [State Callbacks](https://facil.io/edge/state-callbacks/)
- [Time Helpers](https://facil.io/edge/time-helpers/)
- [URL-Encoded Parser](https://facil.io/edge/url-encoded-parser/)
- [WebSocket Parser](https://facil.io/edge/websocket-parser/)
- [CLI Helpers](https://facil.io/edge/cli-helpers/)
- [Memory Allocator](https://facil.io/edge/memory-allocator/)
- [String Core](https://facil.io/edge/string-core/)
- [GFM Markdown Parser](https://facil.io/edge/gfm-markdown-parser/)

## <a id="group-system"></a> System, Streams & Templates

Polling backends, task and timer queues, packet streams, Markdown and Mustache rendering.

- [POSIX Portable Polling API](https://facil.io/edge/posix-portable-polling-api/)
- [POSIX Polling — epoll Backend](https://facil.io/edge/posix-polling-epoll-backend/)
- [POSIX Polling — kqueue Backend](https://facil.io/edge/posix-polling-kqueue-backend/)
- [POSIX Polling — poll Backend](https://facil.io/edge/posix-polling-poll-backend/)
- [Task and Timer Queues](https://facil.io/edge/task-and-timer-queues/)
- [Packet Data Stream](https://facil.io/edge/packet-data-stream/)
- [Markdown to HTML bstr Renderer](https://facil.io/edge/markdown-to-html-bstr-renderer/)
- [Mustache-ish Template Engine](https://facil.io/edge/mustache-ish-template-engine/)

## <a id="group-crypto"></a> Cryptography & TLS

Hashes, AEAD, signatures, X.509, KDFs, password hashing, compression and a standalone TLS 1.3 stack.

- [Crypto Core](https://facil.io/edge/crypto-core/)
- [BLAKE2](https://facil.io/edge/blake2/)
- [ChaCha20 & Poly1305](https://facil.io/edge/chacha20-poly1305/)
- [HKDF](https://facil.io/edge/hkdf/)
- [SHA-1](https://facil.io/edge/sha-1/)
- [SHA-2](https://facil.io/edge/sha-2/)
- [SHA-3](https://facil.io/edge/sha-3/)
- [AES-GCM](https://facil.io/edge/aes-gcm/)
- [Ed25519 & X25519](https://facil.io/edge/ed25519-x25519/)
- [P-256 (secp256r1)](https://facil.io/edge/p-256-secp256r1/)
- [P-384 (secp384r1)](https://facil.io/edge/p-384-secp384r1/)
- [ASN.1 DER](https://facil.io/edge/asn-1-der/)
- [RSA Signatures](https://facil.io/edge/rsa-signatures/)
- [ML-KEM-768](https://facil.io/edge/ml-kem-768/)
- [X.509 Certificates](https://facil.io/edge/x-509-certificates/)
- [PEM Parser](https://facil.io/edge/pem-parser/)
- [Argon2](https://facil.io/edge/argon2/)
- [Lyra2](https://facil.io/edge/lyra2/)
- [OTP (TOTP)](https://facil.io/edge/otp-totp/)
- [Secrets](https://facil.io/edge/secrets/)
- [Brotli](https://facil.io/edge/brotli/)
- [DEFLATE / Gzip](https://facil.io/edge/deflate-gzip/)
- [TLS 1.3 Standalone Library](https://facil.io/edge/tls-1-3-standalone-library/)

## <a id="group-types"></a> Dynamic Types

Dynamic strings, arrays, hash maps, reference counting and the FIOBJ soft dynamic types.

- [Dynamic Types — Module Group 200](https://facil.io/edge/dynamic-types-module-group-200/)
- [Dynamic Strings — Module 201](https://facil.io/edge/dynamic-strings-module-201/)
- [Dynamic Arrays — Module 202](https://facil.io/edge/dynamic-arrays-module-202/)
- [Hash Maps and Sets — Module 210](https://facil.io/edge/hash-maps-and-sets-module-210/)
- [Reference Counting Wrapper — Module 249](https://facil.io/edge/reference-counting-wrapper-module-249/)
- [FIOBJ — Soft Dynamic Types — Module 250](https://facil.io/edge/fiobj-soft-dynamic-types-module-250/)

## <a id="group-io"></a> IO, HTTP & Pub/Sub

The IO reactor, TLS backends, Pub/Sub, Redis and the HTTP module that ties it all together.

- [IO and HTTP — Group Overview (400-range)](https://facil.io/edge/io-and-http-group-overview-400-range/)
- [IO Reactor API (401 io api.h)](https://facil.io/edge/io-reactor-api-401-io-api-h/)
- [IPC — Inter-Process Communication (404 ipc.h)](https://facil.io/edge/ipc-inter-process-communication-404-ipc-h/)
- [OpenSSL TLS Backend](https://facil.io/edge/openssl-tls-backend/)
- [Native TLS 1.3 IO Backend](https://facil.io/edge/native-tls-1-3-io-backend/)
- [Pub/Sub — Publish/Subscribe Messaging (420 pubsub.h)](https://facil.io/edge/pub-sub-publish-subscribe-messaging-420-pubsub-h/)
- [Redis — Pub/Sub Engine and Command Client (422 redis.h)](https://facil.io/edge/redis-pub-sub-engine-and-command-client-422-redis-h/)
- [HTTP Module](https://facil.io/edge/http-module/)

## API Reference

Every macro, type and function, per header file:

- [Core](https://facil.io/edge/api/#grp-core)
- [Utilities](https://facil.io/edge/api/#grp-util)
- [System](https://facil.io/edge/api/#grp-system)
- [Cryptography](https://facil.io/edge/api/#grp-crypto)
- [Dynamic Types](https://facil.io/edge/api/#grp-types)
- [IO & HTTP](https://facil.io/edge/api/#grp-io)
