{"id":40032419,"url":"https://github.com/pagghiu/sanecpplibraries","last_synced_at":"2026-07-01T22:01:36.667Z","repository":{"id":213770150,"uuid":"734522771","full_name":"Pagghiu/SaneCppLibraries","owner":"Pagghiu","description":"Platform Abstraction C++ Libraries","archived":false,"fork":false,"pushed_at":"2026-06-30T14:50:39.000Z","size":7025,"stargazers_count":624,"open_issues_count":3,"forks_count":19,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-06-30T16:11:19.901Z","etag":null,"topics":["async","cpp","linux","macos","networking","no-dependencies","platform-abstraction-layer","programming","self-contained","windows"],"latest_commit_sha":null,"homepage":"https://pagghiu.github.io/SaneCppLibraries","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pagghiu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"Support/Benchmarks/Http/README.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-12-21T22:49:59.000Z","updated_at":"2026-06-30T14:12:31.000Z","dependencies_parsed_at":"2026-05-17T13:03:08.570Z","dependency_job_id":"732e57c5-39ab-4993-992d-f804c59b55e9","html_url":"https://github.com/Pagghiu/SaneCppLibraries","commit_stats":null,"previous_names":["pagghiu/sanecpplibraries"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/Pagghiu/SaneCppLibraries","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pagghiu%2FSaneCppLibraries","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pagghiu%2FSaneCppLibraries/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pagghiu%2FSaneCppLibraries/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pagghiu%2FSaneCppLibraries/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pagghiu","download_url":"https://codeload.github.com/Pagghiu/SaneCppLibraries/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pagghiu%2FSaneCppLibraries/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35024365,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","cpp","linux","macos","networking","no-dependencies","platform-abstraction-layer","programming","self-contained","windows"],"created_at":"2026-01-19T04:30:53.895Z","updated_at":"2026-07-01T22:01:36.659Z","avatar_url":"https://github.com/Pagghiu.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Windows](https://github.com/Pagghiu/SaneCppLibraries/actions/workflows/windows.yml/badge.svg)](https://github.com/Pagghiu/SaneCppLibraries/actions/workflows/windows.yml)\n[![Linux+macOS](https://github.com/Pagghiu/SaneCppLibraries/actions/workflows/posix.yml/badge.svg)](https://github.com/Pagghiu/SaneCppLibraries/actions/workflows/posix.yml)\n[![Coverage](https://pagghiu.github.io/SaneCppLibraries/reference/doxygen/coverage/coverage.svg)](https://pagghiu.github.io/SaneCppLibraries/reference/doxygen/coverage/)\n\n# Sane C++ Libraries\n\n[![YouTube](https://img.shields.io/youtube/channel/subscribers/UCnmN_whfM12LU6VNQWG0NFg)](https://youtube.com/@Pagghiu)\n[![X](https://img.shields.io/twitter/follow/pagghiu_)](https://x.com/pagghiu_)\n[![Discord](https://img.shields.io/discord/1195076118307426384)](https://discord.gg/tyBfFp33Z6)\n![GitHub Repo stars](https://img.shields.io/github/stars/Pagghiu/SaneCppLibraries)\n\n**Sane C++ Libraries** is a set of C++ platform abstraction libraries for macOS, Windows and Linux, built for Agents.\n\n[Principles](https://pagghiu.github.io/SaneCppLibraries/page_principles.html):  \n✅ Fast compile times  \n✅ Bloat free  \n✅ Simple and readable code  \n✅ Easy to integrate  \n⛔️ No C++ Standard Library / Exceptions / RTTI  \n⛔️ No third party build dependencies (prefer OS API)\n\n## [Libraries](https://pagghiu.github.io/SaneCppLibraries/libraries.html)\n\nLibraries are designed to be used as [Single File Libraries](https://pagghiu.github.io/SaneCppLibraries/page_single_file_libs.html) with minimal [dependencies](https://pagghiu.github.io/SaneCppLibraries/page_dependencies.html) between them and follow a strict **No Allocations** (*) policy.\n\nLibrary                                                                                                         | Description                                                               | Single File                                                                                                       \n:---------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------\n[Async](https://pagghiu.github.io/SaneCppLibraries/library_async.html)                                          | 🟨 Async I/O (files, sockets, timers, processes, fs events, tasks)        | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppAsync.h)                   \n[Async Streams](https://pagghiu.github.io/SaneCppLibraries/library_async_streams.html)                          | 🟨 Concurrently read, write and transform byte streams                    | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppAsyncStreams.h)            \n[Await](https://pagghiu.github.io/SaneCppLibraries/library_await.html)                                          | 🟨 C++20 coroutine layer over Async                                       | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppAwait.h)\n[Containers](https://pagghiu.github.io/SaneCppLibraries/library_containers.html)                                | 🟨 Generic containers (SC::Vector, SC::SmallVector, SC::Array)            | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppContainers.h)              \n[Containers Reflection](https://pagghiu.github.io/SaneCppLibraries/library_containers_reflection.html)          | 🟨 Containers specializations for Reflection and Serialization            | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppContainersReflection.h) \n[File](https://pagghiu.github.io/SaneCppLibraries/library_file.html)                                            | 🟩 Synchronous Disk File I/O                                              | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppFile.h)                    \n[File System](https://pagghiu.github.io/SaneCppLibraries/library_file_system.html)                              | 🟩 File System operations (like copy / delete) for files / dirs           | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppFileSystem.h)              \n[File System Iterator](https://pagghiu.github.io/SaneCppLibraries/library_file_system_iterator.html)            | 🟩 Enumerates files and directories inside a given path                   | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppFileSystemIterator.h)      \n[File System Watcher](https://pagghiu.github.io/SaneCppLibraries/library_file_system_watcher.html)              | 🟩 Notifications {add,remove,rename,modify} for files / dirs              | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppFileSystemWatcher.h)       \n[Foundation](https://pagghiu.github.io/SaneCppLibraries/library_foundation.html)                                | 🟩 Primitive types, asserts, macros, Function, Span, Result               | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppFoundation.h)              \n[Hashing](https://pagghiu.github.io/SaneCppLibraries/library_hashing.html)                                      | 🟩 Compute `MD5`, `SHA1` or `SHA256` hashes for bytes streams             | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppHashing.h)                 \n[Http](https://pagghiu.github.io/SaneCppLibraries/library_http.html)                                            | 🟥 HTTP parser, client and server                                         | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppHttp.h)                    \n[Http Client](https://pagghiu.github.io/SaneCppLibraries/library_http_client.html)                              | 🟥 Streaming-first HTTP client with native OS backends                    | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppHttpClient.h)\n[Memory](https://pagghiu.github.io/SaneCppLibraries/library_memory.html)                                        | 🟩 Custom allocators, Virtual Memory, Buffer, Segment                     | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppMemory.h)                  \n[Plugin](https://pagghiu.github.io/SaneCppLibraries/library_plugin.html)                                        | 🟨 Minimal dependency based plugin system with hot-reload                 | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppPlugin.h)                  \n[Process](https://pagghiu.github.io/SaneCppLibraries/library_process.html)                                      | 🟩 Create child processes and redirect their input / output               | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppProcess.h)                 \n[Reflection](https://pagghiu.github.io/SaneCppLibraries/library_reflection.html)                                | 🟩 Describe C++ types at compile time for serialization                   | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppReflection.h)              \n[SerialPort](https://pagghiu.github.io/SaneCppLibraries/library_serial_port.html)                               | 🟨 Serial port configuration and handling                                 | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppSerialPort.h)                  \n[Serialization Binary](https://pagghiu.github.io/SaneCppLibraries/library_serialization_binary.html)            | 🟨 Serialize to and from a binary format using Reflection                 | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppSerializationBinary.h)     \n[Serialization Text](https://pagghiu.github.io/SaneCppLibraries/library_serialization_text.html)                | 🟨 Serialize to / from text formats (JSON) using Reflection               | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppSerializationText.h)       \n[Socket](https://pagghiu.github.io/SaneCppLibraries/library_socket.html)                                        | 🟨 Synchronous socket networking and DNS lookup                           | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppSocket.h)                  \n[Strings](https://pagghiu.github.io/SaneCppLibraries/library_strings.html)                                      | 🟩 String formatting / conversion / manipulation (UTF8 / UTF16)           | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppStrings.h)                 \n[Testing](https://pagghiu.github.io/SaneCppLibraries/library_testing.html)                                      | 🟨 Simple testing framework used by all of the other libraries            | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppTesting.h)                 \n[Threading](https://pagghiu.github.io/SaneCppLibraries/library_threading.html)                                  | 🟩 Atomic, thread, mutex, semaphore, barrier, rw-lock, condition          | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppThreading.h)               \n[Time](https://pagghiu.github.io/SaneCppLibraries/library_time.html)                                            | 🟨 Time handling (relative, absolute, high resolution)                    | [Download](https://github.com/Pagghiu/SaneCppLibraries/releases/latest/download/SaneCppTime.h)                    \n\nEach library is color-coded to signal its status:  \n🟥 Draft (incomplete, WIP, works on basic test cases)  \n🟨 MVP (a minimum set of features has been implemented)  \n🟩 Usable (a reasonable set of useful features has been implemented)  \n\n\u003cpicture\u003e\n  \u003cimg alt=\"Sane C++ Libraries dependencies\" src=\"https://pagghiu.github.io/images/dependencies/SaneCppLibrariesDependencies.svg\"\u003e\n\u003c/picture\u003e\n\n## How to use Sane C++ Libraries in your project\n\nPoint your agent at repository [Skills](Skills/sane-cpp-libraries/SKILL.md).\n\n### Option 1: use single file libraries\n1. Obtain a specific library: \n    - Downloading it from the above table or from the [Latest Release](https://github.com/Pagghiu/SaneCppLibraries/releases/latest) page \n    - Assembling it from current `main` branch using the [Single File Library](https://pagghiu.github.io/SaneCppLibraries/page_single_file_libs.html) browser app\n2. `#include SaneCppLIBRARY.h` in your headers\n3. `#define SANE_CPP_IMPLEMENTATION` + `#include \"SaneCppLIBRARY.h\"` in one of your `.cpp` files\n\nSee [Building (user)](https://pagghiu.github.io/SaneCppLibraries/page_building_user.html) for details on the (system) libraries to link.  \n\n### Option 2: use all libraries together\n1. Clone the entire repo and add it as subfolder of your project\n2. Add [SC.cpp](SC.cpp) to your build system of choice\n3. Include any public header (`Libraries/[Library]/*.h`)\n\nSee [Building (user)](https://pagghiu.github.io/SaneCppLibraries/page_building_user.html) for details on the (system) libraries to link.\n\n## Examples\n\n- [SCTest Suite](Tests/Libraries) showcases most functionalities of all libraries.\n  Check [Building (contributor)](https://pagghiu.github.io/SaneCppLibraries/page_building_contributor.html) for details.\n- [Documentation](https://pagghiu.github.io/SaneCppLibraries/libraries.html) page of each library embeds some examples and / or code snippets.\n- [Examples](https://pagghiu.github.io/SaneCppLibraries/page_examples.html) showcases some basic examples like an `AsyncWebServer` and a more advanced `SCExample` an [Async](https://pagghiu.github.io/SaneCppLibraries/library_async.html) event loop integration with a GUI and usage of [Plugin](https://pagghiu.github.io/SaneCppLibraries/library_plugin.html).\n- [Tools](https://pagghiu.github.io/SaneCppLibraries/page_tools.html) is a collection of repository / code automation tools built using libraries themselves\n  - Includes a fully self-hosted [SC::Build](https://pagghiu.github.io/SaneCppLibraries/page_build.html) build system where builds are imperatively described using C++ code, can generate XCode / Visual Studio / Make projects, and can also build directly through a native backend on macOS, Linux, and Windows.\n\n## No Allocations (*)\n\n- All libraries are designed to work inside user-provided memory buffers and can be used without dynamic memory allocation.\n- All libraries return error codes when running out of such memory buffers (except in containers assignment operators, where they will assert).\n- [Memory](https://pagghiu.github.io/SaneCppLibraries/library_memory.html) and [Containers](https://pagghiu.github.io/SaneCppLibraries/library_containers.html) are the only ones that **will allocate**  by default, even if they support working inside fixed memory buffers (**Opt-out allocation**).\n- [Await](https://pagghiu.github.io/SaneCppLibraries/library_await.html) uses by default caller-owned fixed buffers, while virtual memory, malloc/free, and polymorphic allocators are explicit opt-in modes (**Opt-in allocation**).\n- Third-party container classes, including `std::` ones, are fully supported (see [InteropSTL](Tests/InteropSTL) for an example).\n- [Memory](https://pagghiu.github.io/SaneCppLibraries/library_memory.html) and [Containers](https://pagghiu.github.io/SaneCppLibraries/library_containers.html) are provided for convenience if user prefers them to `std::` or to any other equivalent containers library, and they're totally optional.\n\n## Documentation\n[Documentation](https://pagghiu.github.io/SaneCppLibraries/index.html) is automatically generated using Doxygen and updated at every commit to `main` branch.\n\n## Getting in touch\n\n- [Sane Coding Discord](https://discord.gg/tyBfFp33Z6)  \n- [X](https://x.com/pagghiu_) `@pagghiu_`\n- [GitHub Discussion](https://github.com/Pagghiu/SaneCppLibraries/discussions)\n\n## Contributing\n\nContributions are issue-first and agent-friendly; see [CONTRIBUTING.md](CONTRIBUTING.md) for the current workflow.\n\n- [Principles](https://pagghiu.github.io/SaneCppLibraries/page_principles.html) \n- [Coding Style](https://pagghiu.github.io/SaneCppLibraries/page_coding_style.html)\n- [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## License\n\nSane C++ Libraries are licensed under the MIT License, see [LICENSE.txt](LICENSE.txt) for more information.\n\n## Videos\n\nOn this [YouTube Channel](https://www.youtube.com/@Pagghiu) there are some videos showing bits of the development process.\n\n## Blog posts\n\nOn [Sane Coding Blog](https://pagghiu.github.io) there is a series of posts about this project.\n\nRelevant yearly posts:\n\n- [Blog Post - Sane C++ Libraries (Open Sourcing)](https://pagghiu.github.io/site/blog/2023-12-23-SaneCppLibrariesRelease.html)\n- [Blog Post - 1st Year of Sane C++ Libraries](https://pagghiu.github.io/site/blog/2024-12-23-SaneCpp1Year.html)\n- [Blog Post - 2nd year of Sane C++ Libraries](https://pagghiu.github.io/site/blog/2025-12-23-SaneCpp2Year.html)\n\n## External\n- [DeepWiki/SaneCppLibraries](https://deepwiki.com/Pagghiu/SaneCppLibraries) (AI-guided walkthrough of the project)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpagghiu%2Fsanecpplibraries","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpagghiu%2Fsanecpplibraries","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpagghiu%2Fsanecpplibraries/lists"}