{"id":16115518,"url":"https://github.com/byron/json-tools","last_synced_at":"2025-05-05T16:19:58.664Z","repository":{"id":31590619,"uuid":"35155433","full_name":"Byron/json-tools","owner":"Byron","description":"A zero-copy json-lexer, filters and serializer.","archived":false,"fork":false,"pushed_at":"2024-07-25T07:48:39.000Z","size":652,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-05T16:19:51.702Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.rs/crate/json-tools","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/Byron.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","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}},"created_at":"2015-05-06T11:22:36.000Z","updated_at":"2025-03-07T11:34:49.000Z","dependencies_parsed_at":"2024-10-26T19:31:45.370Z","dependency_job_id":"c413b730-178f-42e9-8dd3-56b28d282fa9","html_url":"https://github.com/Byron/json-tools","commit_stats":{"total_commits":69,"total_committers":7,"mean_commits":9.857142857142858,"dds":"0.24637681159420288","last_synced_commit":"3fe2df2c6778045745ef16b492de4ca7ca0bfd37"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Byron%2Fjson-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Byron%2Fjson-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Byron%2Fjson-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Byron%2Fjson-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Byron","download_url":"https://codeload.github.com/Byron/json-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252531880,"owners_count":21763293,"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":[],"created_at":"2024-10-09T20:19:03.621Z","updated_at":"2025-05-05T16:19:58.628Z","avatar_url":"https://github.com/Byron.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Crates.io](https://img.shields.io/crates/v/json-tools.svg)](https://crates.io/crates/json-tools)\n[![Rust](https://github.com/Byron/json-tools/workflows/Rust/badge.svg)](https://github.com/Byron/json-tools/actions?query=workflow%3ARust)\n\n\nThis library contains a collection of tools to help interacting with json encoded data.\n\n# Features\n\n* **Simple Json Lexer**\n   - Without any intention of being feature complete, it is able to split ascii json data streams\n     into their lexical tokens, keeping track of the character spans that make them up.\n   - facilitates writing higher-level parsers and filters\n* **Key-Value Filter**\n   - A utility to filter lexical tokens which belong to keys that have values of a given type.\n     This makes it easy to re-assemble json data streams and strip them off their null values, for example.\n* **TokenReader**\n\t- An adapter to convert a stream of `Tokens` into a stream of bytes, supprting the `Read` trait.\n\t- Use it to convert filtered and/or manipulated token-streams back into byte-streams.\n\t- Configure the output style, to achieve effects like pretty-printing or strip the output of all whitespace.\n\n# Usage\n\nAdd this to your *Cargo.toml*\n```toml\n[dependencies]\njson-tools = \"*\"\n```\n\nAdd this to your lib ...\n```Rust\nuse json_tools::BufferType;\nuse json_tools::Lexer;\n\nfor token in Lexer::new(r#\"{ \"face\": \"😂\" }\"#.bytes(), BufferType::Span) {\n\tprintln!(\"{:?}\", token);\n}\n```\n\n# Motivation\n\nThis library may possibly never grow bigger than the two features originally mentioned, as it was created\nas a workaround to missing features in [`serde`](https://github.com/serde-rs/serde).\n\n# Manual\n\nRun tests with `cargo test` and benchmarks with `cargo bench` (works on stable).\n\n## License\n\nLicensed under either of\n\n * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any\nadditional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyron%2Fjson-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyron%2Fjson-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyron%2Fjson-tools/lists"}