{"id":13439223,"url":"https://github.com/alex/rust-asn1","last_synced_at":"2025-05-15T09:08:30.650Z","repository":{"id":1082089,"uuid":"39298573","full_name":"alex/rust-asn1","owner":"alex","description":"A Rust ASN.1 (DER) serializer.","archived":false,"fork":false,"pushed_at":"2025-05-02T17:03:37.000Z","size":712,"stargazers_count":118,"open_issues_count":9,"forks_count":30,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-13T17:17:32.287Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alex.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}},"created_at":"2015-07-18T13:07:15.000Z","updated_at":"2025-05-06T13:02:09.000Z","dependencies_parsed_at":"2023-11-15T18:30:12.544Z","dependency_job_id":"cb0068a1-8311-4617-9123-7f320cd2eca2","html_url":"https://github.com/alex/rust-asn1","commit_stats":{"total_commits":443,"total_committers":7,"mean_commits":"63.285714285714285","dds":"0.13318284424379234","last_synced_commit":"49bcae4fbb2611dcf362c1f518950c35cb22846a"},"previous_names":[],"tags_count":55,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex%2Frust-asn1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex%2Frust-asn1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex%2Frust-asn1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex%2Frust-asn1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alex","download_url":"https://codeload.github.com/alex/rust-asn1/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254310520,"owners_count":22049470,"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-07-31T03:01:12.099Z","updated_at":"2025-05-15T09:08:25.640Z","avatar_url":"https://github.com/alex.png","language":"Rust","funding_links":[],"categories":["Libraries","库 Libraries","库"],"sub_categories":["Encoding","编码 Encoding","加密 Encoding","编码(Encoding)"],"readme":"# rust-asn1\n\n[![Dependency Status][deps-rs-image]][deps-rs-link]\n[![Documentation][docs-rs-image]][docs-rs-link]\n\nThis is a Rust library for parsing and generating ASN.1 data (DER only).\n\n## Installation\n\nAdd `asn1` to your `Cargo.toml`:\n\n```console\n$ cargo add asn1\n```\n\nBuilds on Rust 1.65.0 and newer.\n\n`rust-asn1` is compatible with `#![no_std]` environments:\n\n```console\n$ cargo add asn1 --no-default-features\n```\n\n## Changelog\n\n### [Unreleased]\n\n#### Added\n\n- `Parser` now exposes a `peek_tag` method that returns the tag of the next \n   element in the parse, without consuming that element.\n   ([#532](https://github.com/alex/rust-asn1/pull/532))\n\n### [0.21.0]\n\n#### Changes\n\n- Updated MSRV to 1.65.0.\n\n#### Fixes\n\n- Fixed [\"perfect derives\"](https://smallcultfollowing.com/babysteps/blog/2022/04/12/implied-bounds-and-perfect-derive/)\n  in conjunction with `#[derive(Asn1DefinedByRead)]` and\n  `#[derive(Asn1DefinedByWrite)]`.\n  ([#506](https://github.com/alex/rust-asn1/pull/506))\n\n### [0.20.0]\n\n#### :rotating_light: Breaking changes\n\n- Removed `Writer::{write_explicit_element, write_optional_explicit_element, write_implicit_element, write_optional_implicit_element}`.\n  These can all be better accomplished with the `asn1::Explicit` and\n  `asn1::Implicit` types.\n\n#### Fixes\n\n- Fixed [\"perfect derives\"](https://smallcultfollowing.com/babysteps/blog/2022/04/12/implied-bounds-and-perfect-derive/)\n  in conjunction with `#[implicit]` and `#[explicit]`.\n  ([#502](https://github.com/alex/rust-asn1/pull/502))\n\n### [0.19.0]\n\n#### :rotating_light: Breaking changes\n\n- `GeneralizedTime` has been renamed to `X509GeneralizedTime`. The type does\n  not allow fractional seconds, however this restriction is not actually a DER\n  rule, it is specific to X.509.\n  ([#494](https://github.com/alex/rust-asn1/pull/494))\n\n- `GeneralizedTime` is a new type that accepts fractional seconds\n  replacing the old `GeneralizedTime`.\n  ([#492](https://github.com/alex/rust-asn1/pull/492))\n\n- `#[derive(asn1::Asn1Read)]` and `#[derive(asn1::Asn1Write)]` now implement\n  [\"perfect derives\"](https://smallcultfollowing.com/babysteps/blog/2022/04/12/implied-bounds-and-perfect-derive/).\n  ([#496](https://github.com/alex/rust-asn1/pull/496))\n\n[deps-rs-image]: https://deps.rs/repo/github/alex/rust-asn1/status.svg\n[deps-rs-link]: https://deps.rs/repo/github/alex/rust-asn1\n[docs-rs-image]: https://docs.rs/asn1/badge.svg\n[docs-rs-link]: https://docs.rs/asn1/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex%2Frust-asn1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falex%2Frust-asn1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex%2Frust-asn1/lists"}