{"id":33003044,"url":"https://github.com/Viatorus/emio","last_synced_at":"2025-11-15T11:01:20.449Z","repository":{"id":65398531,"uuid":"448558641","full_name":"Viatorus/emio","owner":"Viatorus","description":"A safe and fast high-level and low-level character input/output library for bare-metal and RTOS based embedded systems with a very small binary footprint.","archived":false,"fork":false,"pushed_at":"2025-07-13T21:49:48.000Z","size":782,"stargazers_count":165,"open_issues_count":17,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-13T23:33:17.101Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://viatorus.github.io/emio/","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/Viatorus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","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}},"created_at":"2022-01-16T13:14:13.000Z","updated_at":"2025-07-08T00:40:13.000Z","dependencies_parsed_at":"2023-02-12T09:40:16.307Z","dependency_job_id":"6354db0b-df1e-4ab6-813e-c5f0741fdb6b","html_url":"https://github.com/Viatorus/emio","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/Viatorus/emio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viatorus%2Femio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viatorus%2Femio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viatorus%2Femio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viatorus%2Femio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Viatorus","download_url":"https://codeload.github.com/Viatorus/emio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viatorus%2Femio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284545264,"owners_count":27023524,"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","status":"online","status_checked_at":"2025-11-15T02:00:06.050Z","response_time":57,"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":[],"created_at":"2025-11-13T14:00:38.909Z","updated_at":"2025-11-15T11:01:20.443Z","avatar_url":"https://github.com/Viatorus.png","language":"C++","readme":"![logo](docs/res/logo.png)\n\n[![Continuous Integration](https://github.com/Viatorus/emio/actions/workflows/ci.yml/badge.svg)](https://github.com/Viatorus/emio/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/Viatorus/emio/branch/main/graph/badge.svg?token=7BQFK1PNLX)](https://codecov.io/gh/Viatorus/emio)\n[![Conan Center](https://img.shields.io/conan/v/emio)](https://conan.io/center/recipes/emio)\n\n**em{io}** is a safe and fast high-level and low-level character input/output library for bare-metal and RTOS based\nembedded systems with a very small binary footprint.\n\n```cpp\n// High-level\nstd::string str = emio::format(\"The answer is {}.\", 42);  // Format argument.\n\nint answer{};\nemio::result\u003cvoid\u003e scan_res = emio::scan(str, \"The answer is {}.\", answer);  // Scan input string.\nif (scan_res) {\n    emio::print(\"The answer is {}.\", answer);  // Output to console.\n}\n\n// Without using heap.\nemio::static_buffer\u003c128\u003e buf{}; \nemio::format_to(buf, \"The answer is {:#x}.\", 42).value();\nbuf.view();  // \u003c- The answer is 0x2a.\n\n// Low-level\nemio::writer wrt{buf};\nwrt.write_str(\" In decimal: \").value();\nwrt.write_int(42).value();\nwrt.write_char('.').value();\nbuf.view();  // \u003c- The answer is 0x2a. In decimal: 42.\n\nemio::reader rdr{\"17c\"};\nEMIO_TRY(uint32_t number, rdr.parse_int\u003cuint32_t\u003e());  // \u003c- 17\nEMIO_TRY(char suffix, rdr.read_char());                // \u003c- c\n```\n\n[**This library is in beta status! Please help to make it fly!**](https://github.com/Viatorus/emio/milestone/1)\n\n* [API documentation](docs/API.md)\n* Try emio [online](https://godbolt.org/z/fP7z7MzbG).\n\n## Yet another character input/output library  \n\nBare-metal and RTOS based embedded systems do have special requirements which are mostly overlooked by the C++ standard,\nits implementations and other libraries.\n\nTherefore, this library:\n\n* has a very small binary footprint **(~38 times smaller than fmtlib!)**\n* returns a result object instead of throwing an exception\n* provides a high-level and low-level API which can be used at compile-time\n\nRead more about it in the [DESIGN](docs/DESIGN.md) document.\n\n## Including emio in your project\n\n- With CMake and fetch content\n\n```cmake\nFetchContent_Declare(\n        emio\n        GIT_TAG main\n        GIT_REPOSITORY https://github.com/Viatorus/emio.git\n        GIT_SHALLOW TRUE\n)\nFetchContent_MakeAvailable(emio)\n```\n\n- Download the [single header file](https://viatorus.github.io/emio/) generated with [Quom](https://github.com/Viatorus/quom)\n- From [Conan Center](https://conan.io/center/recipes/emio)\n\nA compiler supporting C++20 is required. Tested with GCC 11/12/13 and Clang 16/17.\n\n## Contributing\n\nSee the [CONTRIBUTING](docs/CONTRIBUTING.md) document.\n\n## Licensing\n\nem{io} is distributed under the [MIT license](LICENSE).\n","funding_links":[],"categories":["Miscellaneous","User Interface","Data Formatting and Presentation"],"sub_categories":["printf"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FViatorus%2Femio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FViatorus%2Femio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FViatorus%2Femio/lists"}