{"id":16903853,"url":"https://github.com/briansmith/untrusted","last_synced_at":"2025-05-16T03:05:22.905Z","repository":{"id":45601104,"uuid":"60483120","full_name":"briansmith/untrusted","owner":"briansmith","description":"Safe, fast, zero-panic, zero-crashing, zero-allocation parsing of untrusted inputs in Rust.","archived":false,"fork":false,"pushed_at":"2023-09-04T19:37:07.000Z","size":104,"stargazers_count":202,"open_issues_count":12,"forks_count":24,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-14T00:56:47.537Z","etag":null,"topics":["memory-safety","parsing"],"latest_commit_sha":null,"homepage":"https://briansmith.org/rustdoc/untrusted/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/briansmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2016-06-05T21:57:02.000Z","updated_at":"2025-05-13T12:59:05.000Z","dependencies_parsed_at":"2024-06-18T16:58:27.661Z","dependency_job_id":"b2fa3f73-9483-4d21-b85f-10b4d02d3a94","html_url":"https://github.com/briansmith/untrusted","commit_stats":{"total_commits":88,"total_committers":4,"mean_commits":22.0,"dds":"0.10227272727272729","last_synced_commit":"b7c4aea36ca2ddcec71c323fb7b27d5724d73f3a"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/briansmith%2Funtrusted","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/briansmith%2Funtrusted/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/briansmith%2Funtrusted/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/briansmith%2Funtrusted/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/briansmith","download_url":"https://codeload.github.com/briansmith/untrusted/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254459088,"owners_count":22074605,"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":["memory-safety","parsing"],"created_at":"2024-10-13T18:29:10.075Z","updated_at":"2025-05-16T03:05:17.896Z","avatar_url":"https://github.com/briansmith.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n\n\n\nuntrusted.rs\n============\n\nSafe, fast, zero-panic, zero-crashing, zero-allocation parsing of untrusted\ninputs in Rust.\n\nuntrusted.rs is 100% Rust with no use of `unsafe`. It never uses the heap.\nNo part of untrusted.rs's API will ever panic or cause a crash. It is\n`#![no_std]` and so it works perfectly with both libcore- and libstd- based\nprojects. It does not depend on any crates other than libcore.\n\nuntrusted.rs is intended to be used with the latest version of Rust Stable.\nIt should usually work with the latest Rust Beta and Rust Nightly versions\ntoo. Using a version of untrusted.rs other than the latest release available\non crates.io is not recommended.\n\n\n\nDocumentation\n-------------\n\nSee the documentation at\nhttps://briansmith.org/rustdoc/untrusted/.\n\nTo use untrusted.rs in your project, add a dependency to your\nCargo.toml like this:\n\n```\n[dependencies]\nuntrusted = \"0.2\"\n```\n\n\n\nExamples\n--------\n\n[*ring*](https://github.com/briansmith/ring)'s parser for the subset of ASN.1\nDER it needs to understand,\n[`ring::der`](https://github.com/briansmith/ring/blob/master/src/der.rs), is\nbuilt on top of untrusted.rs. *ring* also uses untrusted.rs to parse ECC public\nkeys, RSA PKCS#1 1.5 padding, and everything else.\n\nAll of [webpki](https://github.com/briansmith/webpki)'s parsing of X.509\ncertificates (also ASN.1 DER) is done using untrusted.rs.\n\n\n\nContributing\n------------\n\nPatches welcome!\n\nWhen contributing changes, state that you agree to license your contribution\nunder the same terms as the existing code by putting this at the bottom of your\ncommit message:\n\n```\n\nI agree to license my contributions to each file under the terms given\nat the top of each file I changed.\n```\n\nCurrently, the biggest needs for this library are:\n\n* Unit tests.\n* Documentation.\n* More examples.\n* Static analysis and fuzzing.\n\n\n\nOnline Automated Testing\n------------------------\n\nTravis CI is used for Android, Linux, and Mac OS X. The tests are run for the\ncurrent release of each Rust channel (Stable, Beta, Nightly). Since\nuntrusted.rs only depends on libcore and it only uses 100% cross-platform code\nwithout using `unsafe`, it should work anywhere as long as these platforms are\npassing.\n\n\u003ca title=\"Build Status\" href=https://travis-ci.org/briansmith/untrusted\u003e\u003cimg src=https://travis-ci.org/briansmith/untrusted.svg?branch=master\u003e\u003c/a\u003e\n\n\n\nBug Reporting\n-------------\n\nPlease report bugs either as pull requests or as issues in [the issue\ntracker](https://github.com/briansmith/untrusted/issues). untrusted.rs has a\n**full disclosure** vulnerability policy. **Please do NOT attempt to report\nany security vulnerability in this code privately to anybody.**\n\n\n\nLicense\n-------\n\nSee [LICENSE.txt](LICENSE.txt), an ISC-style (simplified MIT) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbriansmith%2Funtrusted","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbriansmith%2Funtrusted","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbriansmith%2Funtrusted/lists"}