{"id":46843409,"url":"https://github.com/alcxpr/acheron","last_synced_at":"2026-03-10T14:03:58.494Z","repository":{"id":319463887,"uuid":"1073450234","full_name":"alcxpr/acheron","owner":"alcxpr","description":"A little to nothing, general-purpose C++ library","archived":false,"fork":false,"pushed_at":"2025-12-18T02:23:23.000Z","size":224,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-21T12:27:41.570Z","etag":null,"topics":["cpp","cpp23","utility"],"latest_commit_sha":null,"homepage":"","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/alcxpr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-10T06:13:39.000Z","updated_at":"2025-12-18T02:22:28.000Z","dependencies_parsed_at":"2025-10-29T10:28:51.707Z","dependency_job_id":"a40a540e-beaf-49b0-9589-d507acb63f9c","html_url":"https://github.com/alcxpr/acheron","commit_stats":null,"previous_names":["typeal/acheron","alcxpr/acheron"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/alcxpr/acheron","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alcxpr%2Facheron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alcxpr%2Facheron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alcxpr%2Facheron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alcxpr%2Facheron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alcxpr","download_url":"https://codeload.github.com/alcxpr/acheron/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alcxpr%2Facheron/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30336090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T12:41:07.687Z","status":"ssl_error","status_checked_at":"2026-03-10T12:41:06.728Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cpp","cpp23","utility"],"created_at":"2026-03-10T14:03:55.587Z","updated_at":"2026-03-10T14:03:58.472Z","avatar_url":"https://github.com/alcxpr.png","language":"C++","readme":"\u003cdiv align=\"center\"\u003e\n    \u003c!-- TODO: add logo --\u003e\n    \u003ch1\u003e Acheron \u003c/h1\u003e\n    \u003cp\u003e\n        \u003cimg src=\"https://img.shields.io/github/v/release/alcxpr/acheron\" alt=\"Release\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/C%2B%2B-23-00599C.svg\" alt=\"C++ Version\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg\" alt=\"License\"\u003e\n    \u003c/p\u003e\n\u003c/div\u003e\n\nAcheron is a small, general-purpose C++ library that implements many useful components. The goal\nof this project is to be as powerful as possible while maintaining the small size to usefulness\nratio. Acheron is composed of thirteen different sub-libraries, some of which may be useful to you. See\n[here](#components) for the list of the components and their statuses.\n\nOriginally being a library for personal uses, Acheron has grown into a focused collection of C++\nutilities that come from user feedback. It is designed around the idea that a small, well-engineered\nset of abstractions can greatly improve ergonomics and safety while maintaining zero overhead. The \nlibrary tries its best to provide the missing pieces that the standard library either does not yet offer \nor still is an active draft. \n\nDespite its scope, Acheron remains deliberately minimal. All features are implemented as lightweight, \nself-contained headers with no runtime dependencies.\n\n## Components\n\n| Name                                              | Description                                                                    |\n|---------------------------------------------------|--------------------------------------------------------------------------------|\n| [algorithm](include/acheron/algorithm.hpp)        | Hash combining and search utilities                                            |\n| [allocator](include/acheron/allocator.hpp)        | Thread-safe, and efficient memory allocator                                    |\n| [arguments](include/acheron/arguments.hpp)        | An encoding-friendly and modern interface for accessing command-line argument  |\n| [bitfield](include/acheron/bitfield.hpp)          | A target-independent bitfield                                                  |\n| [codecvt](include/acheron/codecvt.hpp)            | UTF-8/16/32 conversion utilities                                               |\n| [cstring_view](include/acheron/cstring_view.hpp)  | Null-terminated string views for C interop. Based on P3655                     |\n| [defer](include/acheron/defer.hpp)                | RAII scope guards for cleaning up dynamic resources from C side                |\n| [diagnostic](include/acheron/diagnostic.hpp)      | Ergonomic assertions, exceptions, with stacktraces for debugging               |\n| [freelist](include/acheron/freelist.hpp)          | Node recycling container with geometric growth                                 |\n| [utility](include/acheron/utility.hpp)            | Utilities for C++ like counter                                                 |\n| [unique_map](include/acheron/unique_map.hpp)      | Hash map with stable key pointers and open addressing                          |\n| [value](include/acheron/value.hpp)                | Type-erased value container with 32-byte SSO                                   |\n| [variant](include/acheron/variant.hpp)            | Type-safe union with pattern matching and type-safe index access               |\n\n## Installation\n\n### Requirements\n\nYou need:\n- C++23 compiler support\n- CMake 3.15+ for building tests\n\n### Integration\n\nYou can use [CMake](https://cmake.org/) to add the project as a dependency.\n\n```cmake\ninclude(FetchContent)\nFetchContent_Declare(acheron\n    GIT_REPOSITORY https://github.com/alcxpr/acheron.git\n    GIT_TAG main\n)\nFetchContent_MakeAvailable(acheron)\n# ...\ntarget_link_libraries(your_target PRIVATE Acheron::Acheron) # or simply acheron\n```\n\nTo build tests, simply do:\n\n```bash\n$ cd build/\n$ cmake .. -DACHERON_BUILD_TESTS=ON # optionally, -G ninja\n$ cmake --build .\n$ ctest --test-dir .\n```\n\n## License\n\nMIT License. See [LICENSE.txt](LICENSE.txt) for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falcxpr%2Facheron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falcxpr%2Facheron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falcxpr%2Facheron/lists"}