{"id":33928650,"url":"https://github.com/chensoft/encoder","last_synced_at":"2026-04-04T12:58:37.514Z","repository":{"id":217999790,"uuid":"744978057","full_name":"chensoft/encoder","owner":"chensoft","description":"A blazing-fast encoder writing to a contiguous buffer","archived":false,"fork":false,"pushed_at":"2025-06-07T06:59:20.000Z","size":257,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-12-13T19:30:35.232Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/chensoft.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","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}},"created_at":"2024-01-18T11:51:32.000Z","updated_at":"2024-05-31T05:07:21.000Z","dependencies_parsed_at":"2024-02-16T12:26:45.764Z","dependency_job_id":"17bed309-3252-43ee-b974-35070a426cbc","html_url":"https://github.com/chensoft/encoder","commit_stats":null,"previous_names":["chensoft/encoder"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/chensoft/encoder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chensoft%2Fencoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chensoft%2Fencoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chensoft%2Fencoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chensoft%2Fencoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chensoft","download_url":"https://codeload.github.com/chensoft/encoder/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chensoft%2Fencoder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31400460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"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":[],"created_at":"2025-12-12T11:02:55.476Z","updated_at":"2026-04-04T12:58:37.509Z","avatar_url":"https://github.com/chensoft.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Encoder\n==========================\n\nA blazing-fast encoder writing to a contiguous buffer\n\n[![Crates.io][crates-badge]][crates-url]\n[![MIT licensed][license-badge]][license-url]\n[![Documentation][document-badge]][document-url]\n[![Build Status][linux-badge]][linux-url]\n[![Build Status][macos-badge]][macos-url]\n[![Build Status][windows-badge]][windows-url]\n\n[crates-badge]: https://img.shields.io/crates/v/encoder.svg\n[crates-url]: https://crates.io/crates/encoder\n[license-badge]: https://img.shields.io/badge/license-MIT-blue.svg\n[license-url]: https://github.com/chensoft/encoder/blob/master/LICENSE\n[document-badge]: https://docs.rs/encoder/badge.svg\n[document-url]: https://docs.rs/encoder\n[linux-badge]: https://github.com/chensoft/encoder/actions/workflows/linux.yml/badge.svg\n[linux-url]: https://github.com/chensoft/encoder/actions/workflows/linux.yml\n[macos-badge]: https://github.com/chensoft/encoder/actions/workflows/macos.yml/badge.svg\n[macos-url]: https://github.com/chensoft/encoder/actions/workflows/macos.yml\n[windows-badge]: https://github.com/chensoft/encoder/actions/workflows/windows.yml/badge.svg\n[windows-url]: https://github.com/chensoft/encoder/actions/workflows/windows.yml\n\n## Quick Start\n\n#### Number encoding\n\n```rust\nuse encoder::number::Encode;\n\nfn main() {\n    let mut buf = vec![];\n    1_i32.encode(\u0026mut buf);\n    2_u32.encode(\u0026mut buf);\n    1_f32.encode(\u0026mut buf);\n    2_f64.encode(\u0026mut buf);\n    assert_eq!(String::from_utf8_lossy(\u0026buf), r#\"121.02.0\"#);\n\n    assert_eq!(1_i32.stringify(), \"1\");\n    assert_eq!(2_u32.stringify(), \"2\");\n    assert_eq!(1_f32.stringify(), \"1.0\");\n    assert_eq!(2_f64.stringify(), \"2.0\");\n}\n```\n\n#### Json encoding\n\n```rust\nuse encoder::json::Encode;\n\nfn main() {\n    let mut buf = vec![];\n    \"Hello, 世界! 👋\".encode(\u0026mut buf);\n    assert_eq!(String::from_utf8_lossy(\u0026buf), r#\"\"Hello, 世界! 👋\"\"#);\n    assert_eq!(\"Hello, 世界! 👋\".stringify(), r#\"\"Hello, 世界! 👋\"\"#);\n}\n```\n\n## Benchmark\n\n- MacBook Air, Apple M2 24G, Sonoma 14.5, Rust 1.78.0\n\n| Module | Name            |              Time               |\n|:------:|-----------------|:-------------------------------:|\n| number | i8_max          | [1.1760 ns 1.1762 ns 1.1764 ns] |\n| number | i8_min          | [1.1761 ns 1.1763 ns 1.1765 ns] |\n| number | u8_max          | [1.1761 ns 1.1763 ns 1.1764 ns] |\n| number | u8_min          | [1.1758 ns 1.1760 ns 1.1762 ns] |\n| number | i16_max         | [1.1761 ns 1.1763 ns 1.1765 ns] |\n| number | i16_min         | [1.1758 ns 1.1760 ns 1.1762 ns] |\n| number | u16_max         | [1.1760 ns 1.1762 ns 1.1764 ns] |\n| number | u16_min         | [1.1758 ns 1.1768 ns 1.1788 ns] |\n| number | i32_max         | [7.0556 ns 7.0572 ns 7.0590 ns] |\n| number | i32_min         | [8.5205 ns 8.5222 ns 8.5239 ns] |\n| number | u32_max         | [1.3197 ns 1.3199 ns 1.3201 ns] |\n| number | u32_min         | [1.1760 ns 1.1782 ns 1.1827 ns] |\n| number | i64_max         | [10.573 ns 10.574 ns 10.576 ns] |\n| number | i64_min         | [10.869 ns 10.874 ns 10.878 ns] |\n| number | u64_max         | [1.3756 ns 1.3770 ns 1.3783 ns] |\n| number | u64_min         | [1.1759 ns 1.1761 ns 1.1763 ns] |\n| number | i128_max        | [19.427 ns 19.431 ns 19.435 ns] |\n| number | i128_min        | [17.261 ns 17.264 ns 17.267 ns] |\n| number | u128_max        | [13.814 ns 13.821 ns 13.832 ns] |\n| number | u128_min        | [4.9977 ns 4.9984 ns 4.9993 ns] |\n| number | isize_max       | [10.574 ns 10.575 ns 10.577 ns] |\n| number | isize_min       | [10.864 ns 10.869 ns 10.874 ns] |\n| number | usize_max       | [1.3742 ns 1.3754 ns 1.3766 ns] |\n| number | usize_min       | [1.1759 ns 1.1761 ns 1.1763 ns] |\n| number | true            | [1.1758 ns 1.1760 ns 1.1763 ns] |\n| number | false           | [1.1758 ns 1.1760 ns 1.1761 ns] |\n| number | f32_max         | [8.1414 ns 8.1446 ns 8.1478 ns] |\n| number | f32_min         | [8.3086 ns 8.3100 ns 8.3113 ns] |\n| number | f64_max         | [12.451 ns 12.453 ns 12.456 ns] |\n| number | f64_min         | [12.265 ns 12.270 ns 12.274 ns] |\n|  json  | char            | [8.9673 ns 8.9782 ns 8.9970 ns] |\n|  json  | str             | [11.769 ns 11.789 ns 11.815 ns] |\n|  json  | string          | [11.749 ns 11.752 ns 11.755 ns] |\n|  json  | option          | [5.8269 ns 5.8281 ns 5.8294 ns] |\n|  json  | array_raw       | [20.288 ns 20.293 ns 20.298 ns] |\n|  json  | array_vec       | [16.904 ns 16.907 ns 16.910 ns] |\n|  json  | array_vec_deque | [19.699 ns 19.736 ns 19.815 ns] |\n|  json  | set_hash        | [20.348 ns 20.358 ns 20.371 ns] |\n|  json  | set_btree       | [23.813 ns 23.818 ns 23.823 ns] |\n|  json  | set_index       | [17.163 ns 17.166 ns 17.169 ns] |\n|  json  | object_hash     | [49.057 ns 49.400 ns 49.737 ns] |\n|  json  | object_btree    | [52.801 ns 52.909 ns 53.052 ns] |\n|  json  | object_index    | [48.631 ns 48.639 ns 48.648 ns] |\n\n- AWS c5.2xlarge, 8C 16G, Ubuntu 24.04, Rust 1.78.0\n\n| Module | Name            |              Time               |\n|:------:|-----------------|:-------------------------------:|\n| number | i8_max          | [3.2681 ns 3.2683 ns 3.2684 ns] |\n| number | i8_min          | [2.9715 ns 2.9717 ns 2.9720 ns] |\n| number | u8_max          | [3.2682 ns 3.2684 ns 3.2686 ns] |\n| number | u8_min          | [2.9710 ns 2.9712 ns 2.9713 ns] |\n| number | i16_max         | [3.2683 ns 3.2686 ns 3.2688 ns] |\n| number | i16_min         | [3.2684 ns 3.2686 ns 3.2688 ns] |\n| number | u16_max         | [3.2708 ns 3.2711 ns 3.2714 ns] |\n| number | u16_min         | [2.9751 ns 2.9754 ns 2.9758 ns] |\n| number | i32_max         | [12.834 ns 12.849 ns 12.864 ns] |\n| number | i32_min         | [12.876 ns 12.885 ns 12.894 ns] |\n| number | u32_max         | [3.2686 ns 3.2688 ns 3.2691 ns] |\n| number | u32_min         | [2.9710 ns 2.9711 ns 2.9713 ns] |\n| number | i64_max         | [16.837 ns 16.848 ns 16.858 ns] |\n| number | i64_min         | [17.232 ns 17.250 ns 17.268 ns] |\n| number | u64_max         | [3.2680 ns 3.2682 ns 3.2684 ns] |\n| number | u64_min         | [2.9712 ns 2.9714 ns 2.9716 ns] |\n| number | i128_max        | [34.801 ns 34.808 ns 34.815 ns] |\n| number | i128_min        | [34.452 ns 34.456 ns 34.460 ns] |\n| number | u128_max        | [20.215 ns 20.217 ns 20.219 ns] |\n| number | u128_min        | [11.169 ns 11.183 ns 11.195 ns] |\n| number | isize_max       | [17.001 ns 17.009 ns 17.017 ns] |\n| number | isize_min       | [17.310 ns 17.319 ns 17.329 ns] |\n| number | usize_max       | [3.2680 ns 3.2682 ns 3.2684 ns] |\n| number | usize_min       | [2.9710 ns 2.9712 ns 2.9713 ns] |\n| number | true            | [2.9709 ns 2.9710 ns 2.9712 ns] |\n| number | false           | [3.2680 ns 3.2682 ns 3.2685 ns] |\n| number | f32_max         | [18.512 ns 18.522 ns 18.533 ns] |\n| number | f32_min         | [18.409 ns 18.413 ns 18.417 ns] |\n| number | f64_max         | [26.787 ns 26.790 ns 26.793 ns] |\n| number | f64_min         | [26.948 ns 26.955 ns 26.962 ns] |\n|  json  | char            | [19.684 ns 19.714 ns 19.745 ns] |\n|  json  | str             | [19.283 ns 19.307 ns 19.330 ns] |\n|  json  | string          | [19.306 ns 19.324 ns 19.341 ns] |\n|  json  | option          | [8.6175 ns 8.6182 ns 8.6188 ns] |\n|  json  | array_raw       | [42.462 ns 42.471 ns 42.480 ns] |\n|  json  | array_vec       | [35.654 ns 35.656 ns 35.659 ns] |\n|  json  | array_vec_deque | [42.748 ns 42.789 ns 42.832 ns] |\n|  json  | set_hash        | [40.382 ns 40.398 ns 40.415 ns] |\n|  json  | set_btree       | [48.006 ns 48.014 ns 48.022 ns] |\n|  json  | set_index       | [39.517 ns 39.519 ns 39.521 ns] |\n|  json  | object_hash     | [86.702 ns 86.777 ns 86.851 ns] |\n|  json  | object_btree    | [93.088 ns 93.129 ns 93.172 ns] |\n|  json  | object_index    | [86.768 ns 86.828 ns 86.891 ns] |\n\n## Documentation\n\nThe documentation is [available here](https://docs.rs/encoder).\n\n## License\n\nThis software is released under the [MIT License](https://github.com/chensoft/encoder?tab=MIT-1-ov-file).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchensoft%2Fencoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchensoft%2Fencoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchensoft%2Fencoder/lists"}