{"id":32431068,"url":"https://github.com/dexrnzacattack/libbio","last_synced_at":"2026-07-10T03:31:48.875Z","repository":{"id":319395557,"uuid":"1076059028","full_name":"DexrnZacAttack/libBIO","owner":"DexrnZacAttack","description":"C++ Binary IO library","archived":false,"fork":false,"pushed_at":"2026-03-15T05:27:39.000Z","size":181,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-15T16:53:55.405Z","etag":null,"topics":["byte","char","cpp","data","hex","int","io","long","longlong","read","reading","short","write","writing"],"latest_commit_sha":null,"homepage":"http://libbio.dexrn.me/","language":"C++","has_issues":false,"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/DexrnZacAttack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-14T10:51:59.000Z","updated_at":"2026-03-15T05:27:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"49618f40-98af-4cc5-8ab3-11e25808d608","html_url":"https://github.com/DexrnZacAttack/libBIO","commit_stats":null,"previous_names":["dexrnzacattack/libbio"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/DexrnZacAttack/libBIO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DexrnZacAttack%2FlibBIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DexrnZacAttack%2FlibBIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DexrnZacAttack%2FlibBIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DexrnZacAttack%2FlibBIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DexrnZacAttack","download_url":"https://codeload.github.com/DexrnZacAttack/libBIO/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DexrnZacAttack%2FlibBIO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35319810,"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-10T02:00:06.465Z","response_time":60,"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":["byte","char","cpp","data","hex","int","io","long","longlong","read","reading","short","write","writing"],"created_at":"2025-10-25T21:52:10.222Z","updated_at":"2026-07-10T03:31:48.869Z","avatar_url":"https://github.com/DexrnZacAttack.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libBIO~~HAZARD~~ (BinaryIO)\n\u003ca href=\"https://codeberg.org/Dexrn/libBIO\"\u003e\n    \u003cimg alt=\"codeberg-plural\" height=\"56\" src=\"https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy-minimal/social/codeberg-plural_vector.svg\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://libbio.dexrn.me\"\u003e\n    \u003cimg alt=\"ghpages\" height=\"56\" src=\"https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy-minimal/documentation/ghpages_vector.svg\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/DexrnZacAttack/libBIO\"\u003e\n    \u003cimg alt=\"github\" height=\"40\" src=\"https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact-minimal/available/github_vector.svg\"\u003e\n\u003c/a\u003e\n\nA Simple C++ IO library\n\n\u003e [!IMPORTANT]\n\u003e Pull Requests and Issues are only accepted on the [Codeberg repo](https://codeberg.org/Dexrn/libBIO).\n\n## Usage\n[Read the documentation](https://libbio.dexrn.me/pages.html)\n\n| Page                                                  | Description                                                            |\n|-------------------------------------------------------|------------------------------------------------------------------------|\n| [Reading](docs/pages/Reading.md)                      | Reading from a stream/buffer                                           |\n| [Writing](docs/pages/Writing.md)                      | Writing to a stream/buffer                                             |\n| [Serialization](docs/pages/Serialization.md)          | Serializing structures, creating your own serializers                  |\n| [Deserialization](docs/pages/Deserialization.md)      | Deserializing structures, creating your own deserializers              |\n| [Undefined Behavior](docs/pages/UndefinedBehavior.md) | Common actions which may cause bugs/unintended long debugging sessions |\n\n## Installation\n\n### CMakeLists\n\n```cmake\n# can be CPP14+\n# we'll use CPP20 for this example\nset(CMAKE_CXX_STANDARD 20)\n\n# Import FetchContent (remove if already included)\ninclude(FetchContent)\n\n# Grab from the repo\nFetchContent_Declare(\n        bio\n        GIT_REPOSITORY https://codeberg.org/Dexrn/libBIO.git\n        GIT_TAG 3.3.0\n)\n# Make it \"available\" (afaik lets you access vars)\nFetchContent_MakeAvailable(bio)\n\n# The library CMakeLists creates a target for each supported CPP version\n# which are: 14, 17, 20, 23\n#\n# There's also the regular 'bio' target, but it might not use the correct CPP version.\n\n# Link against it\ntarget_link_libraries(MyProj PRIVATE bio-cpp20)\n# You can also link against the static version if you wish\ntarget_link_libraries(MyProj PRIVATE bio-static-cpp20)\n```\n\n## TODO\n- [X] Allow user to specialize a custom read and write function for their class\n  - I believe we can specialize read/write with a custom class type for this\n  - Ideally, it should be as simple as calling `buf.read\u003cT\u003e` after specialization\n  - The user impl could have it call `buf.read\u003cT\u003e` internally and create a struct based off those values, as commonly seen in many implementations.\n- [X] Improve string reading/writing\n  - [X] Allow for writing const char *, const char16_t *, const char32_t *, etc.\n  - [X] Allow for choosing the length encoding(?) next to the string\n  - [ ] Allow for getting a fast reference view of the string\n    - This string would be very temporary, as it would be invalid as soon as the data pointer which the buffer holds is deleted/invalidated \n    - Ideally, return an `std::string_view` that views over the string in data \n  - [ ] Add support for surrogates when doing `char16_t` conversions\n    - Still need to look into whether `char16_t[]` allows for surrogates","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdexrnzacattack%2Flibbio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdexrnzacattack%2Flibbio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdexrnzacattack%2Flibbio/lists"}