{"id":15047678,"url":"https://github.com/lethalbit/abyss","last_synced_at":"2025-04-10T01:08:19.829Z","repository":{"id":250370640,"uuid":"834268175","full_name":"lethalbit/abyss","owner":"lethalbit","description":"Deeply Embeddable bare-metal C++ standard library","archived":false,"fork":false,"pushed_at":"2025-02-16T14:14:38.000Z","size":306,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-10T01:08:15.338Z","etag":null,"topics":["bare-metal","cpp","cpp20","embedded","standard-library"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lethalbit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"lethalbit","patreon":"lethalbit","ko_fi":"lethalbit"}},"created_at":"2024-07-26T20:00:40.000Z","updated_at":"2025-02-16T14:14:41.000Z","dependencies_parsed_at":"2024-08-19T11:16:58.264Z","dependency_job_id":null,"html_url":"https://github.com/lethalbit/abyss","commit_stats":null,"previous_names":["lethalbit/abyss"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lethalbit%2Fabyss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lethalbit%2Fabyss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lethalbit%2Fabyss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lethalbit%2Fabyss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lethalbit","download_url":"https://codeload.github.com/lethalbit/abyss/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137887,"owners_count":21053775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bare-metal","cpp","cpp20","embedded","standard-library"],"created_at":"2024-09-24T21:02:49.115Z","updated_at":"2025-04-10T01:08:19.810Z","avatar_url":"https://github.com/lethalbit.png","language":"C++","readme":"# Abyss - Deeply Embeddable bare-metal C++ standard library\n\n\u003e [!CAUTION]\n\u003e This is a very young, and very experimental, don't rely on it for anything\n\u003e of importance or that's critical in nature.\n\nAbyss is C++ standard library targeting embedded bare-metal applications. As such, it is not fully standards compliant due to missing a large chunk of runtime functionality. However, much effort has been made to try to make it as complete as possible.\n\nThere are also some non-standards compliant enhancements, such as making things `[[nodiscard]]` where they really should be, but were not done so by the standard.\n\n### Documentation / Building\n\n\u003e [!WARNING]\n\u003e There is currently little to no documentation for Abyss, that will change soon once\n\u003e implementation is further along.\n\n### Runtime/ABI Support\n\nNot everything in the C++ standard library can be done without some runtime or ABI support, due to this Abyss is segmented into the fully standalone/freestanding environment and then has several levels of feature flags depending on what is needed. They are as follows:\n\n * `runtime_components` - Only the most basic runtime stubs and implementation.\n * `threading_support` - Thread stubs and support.\n * `rtti_support` - Run-Time Type Identification support\n * `exception_support` - Support for exceptions\n * `virtual_support` - Support for virtual classes / `dynamic_cast` etc\n\nWhen enabled, these will build static libraries for the target platform that contain the runtime components requested, however, due to not being able to implement closer to the metal features for unknown platforms, there will be a collection of needed stubs to be implemented in the freestanding environment to satisfy them.\n\n\u003e [!CAUTION]\n\u003e The abyss ABI, while mostly compliant with the [Itanium C++ ABI](https://itanium-cxx-abi.github.io/cxx-abi/abi.html) we do not guarantee ABI stability to the extent of\n\u003e [libstdc++](https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html) or [libc++](https://libcxx.llvm.org/) would\n\u003e Nor are we ABI compatible with said C++ libraries, therefore intermixing code linked with\n\u003e `libstdc++`, `libc++`, or other versions of Abyss is highly advised against.\n\n\n### Supported Compilers\n\n\u003e [!IMPORTANT]\n\u003e Due to the nature of the library, there is only a single version of the C++ standard\n\u003e that has been targeted, that being [C++20](https://wg21.link/std20), however some portions\n\u003e of [C++23](https://wg21.link/std23) have been backported where possible, as such a compiler\n\u003e with core language support for at lest C++20 is required.\n\n\u003ctable\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eCompiler\u003c/th\u003e\n\t\t\t\u003cth colspan=\"3\"\u003eG++\u003c/th\u003e\n\t\t\t\u003cth colspan=\"3\"\u003eClang++\u003c/th\u003e\n\t\t\u003c/tr\u003e\n\t\u003c/thead\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eVersion\u003c/td\u003e\n\t\t\t\u003ctd\u003e12\u003c/td\u003e\n\t\t\t\u003ctd\u003e13\u003c/td\u003e\n\t\t\t\u003ctd\u003e14\u003c/td\u003e\n\t\t\t\u003ctd\u003e16\u003c/td\u003e\n\t\t\t\u003ctd\u003e17\u003c/td\u003e\n\t\t\t\u003ctd\u003e18\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSupported\u003c/td\u003e\n\t\t\t\u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e:x:\u003c/td\u003e\n\t\t\t\u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\n### Implementation Status\n\nAbyss is still a very young library, so not much is implemented yet, and everything might not be.\n\n\u003ctable\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eConcepts Library\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eDynamic Memory\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eLocalization Library\u003c/b\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003econcepts\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ememory\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eclocale\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eCoroutine Library\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ememory_resource\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecodecvt\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecoroutine\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003enew\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003elocale\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eUtility Library\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003escoped_allocator\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eI/O Library\u003c/b\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eany\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eNumeric\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecstdio\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ebitset\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecfloat\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:white_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003efstream\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003echrono\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecinttypes\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eiomanip\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecompare\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eclimits\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:white_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eios\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecsetjump\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:x:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecstdint\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:white_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eiosfwd\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecsignal\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:x:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003elimits\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:white_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eiostream\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecstdarg\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eError\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eistream\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecstddef\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:white_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecassert\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eostream\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecstdlib\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecerrno\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eprint\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ectime\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eexception\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003esstream\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eexpected\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003estdexcept\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003estreambuf\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003efunctional\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003esystem_error\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003estrstream\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003einitializer_list\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eString Library\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003esyncstream\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eoptional\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecctype\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eFilesystem Library\u003c/b\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003esource_location\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:white_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003echarconv\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003efilesystem\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:x:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003etuple\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecstring\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eRegex Library\u003c/b\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003etype_traits\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:construction:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecuchar\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eregex\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:x:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003etypeindex\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecwctype\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eAtomic Library\u003c/b\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003etypeinfo\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eatomic\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003evariant\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eThread Library\u003c/b\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eversion\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:construction:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003estring_view\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ethread\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eContainer Library\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eIterator Library\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003estop_token\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eiterator\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eshared_mutex\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003edeque\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eRanges Library\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003esemaphore\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eflat_map\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eranges\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003emutex\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eflat_set\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eAlgorithm Library\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003elatch\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eforward_list\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ealgorithm\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003efuture\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003elist\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eexecution\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003econdition_variable\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003emap\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd colspan=\"3\"\u003e\u003cb\u003eNumerics Library\u003c/b\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ebarrier\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003emdspan\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ebit\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:white_check_mark:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003equeue\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecfenv\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eset\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecmath\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003espan\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ecomplex\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003estack\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003enumbers\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eunordered_map\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003enumeric\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eunordered_set\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003erandom\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003evector\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eratio\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003evalarray\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e:hammer_and_wrench:\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### Icon Key\n\nEach header has two sections in it, the first is the status of that header, and the second are any note references that detail conditions or other important details.\n\nThe key for the first section is as follows:\n\n * :construction: - In progress\n * :white_check_mark: - Completed\n * :hammer_and_wrench: - Planned, not started\n * :x: - Not-planned\n\n## License\n\nAbyss is licensed under the [BSD-3-Clause](https://spdx.org/licenses/BSD-3-Clause.html), the full text of which can be found in the [LICENSE](LICENSE) file.\n","funding_links":["https://github.com/sponsors/lethalbit","https://patreon.com/lethalbit","https://ko-fi.com/lethalbit"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flethalbit%2Fabyss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flethalbit%2Fabyss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flethalbit%2Fabyss/lists"}