rasn-derive
Derive macros for rasn.
0.28.14
13M downloads/mo
#2712 most downloaded on crates.io
librasn/rasn
What this package is like to depend on
Last release 16 days ago
07 Aug 2026
Release timing varies
gaps range from 9 days to 4 months
Most releases are documented
notes for 76 of 88 stable releases
2 versions withdrawn
withdrawn after publishing
6 years old
90 releases · first in 2020
18 releases in the last 12 months
see the full history below
Release timeline
90 releases · Sep 2020 to Aug 2026Releases
latest 60 of 90-
0.28.1407 Aug 2026Release notes
Open source →Added
- use width constant for per codec
- (per) add encode_buf functions
- add constraint checking when encoding
- check integer and bit string constraints in BER
- check octet string constraints when decoding ber
- add {ber, cer, der}::encode_buf
Fixed
- (per) validate decoded value and size constraints
- (xer) Return XER error on integer overflow
Other
- fix string alphabet lints
- fmt
- add scratchpad worker buffer in PER
- reuse buffer in SEQUENCE OF encodings
- pass buffer into child encoder
- remove integer decoding heap allocation
- (per) use arrays for set tracking
- use arrays with index for field tracking
- add a fast path for encode_constructed
- fmt
- reuse buffer for allocating constructed types
- clippy lints
- use object_identifier_as_bytes directly
-
0.28.1324 Apr 2026 -
0.28.1215 Apr 2026Release notes
Open source →Fixed
- (coer) Fix sizing of Integer OER encoding
- (coer) fix validation of Integer with length determinant encoding
-
0.28.1104 Apr 2026Release notes
Open source →Added
- (avn) implement ASN.1 Value Notation codec (#544)
Fixed
- (jer) distinguish absent OPTIONAL fields from present-NULL values (#545)
-
0.28.1012 Mar 2026Release notes
Open source →Fixed
- (per) encode empty extension addition group as absent per X.691 §… (#543)
-
0.28.911 Mar 2026Release notes
Open source →Added
- Implement Default trait for FixedOctetString (#522)
- (type,jer) implement Encode/Decode on
serde_json::Value(#538)
Fixed
-
0.28.820 Feb 2026 -
0.28.722 Jan 2026Release notes
Open source →Fixed
- Actually use number of root variants in CHOICE variance constraints (#532)
Other
- release v0.28.6 (#531)
-
0.28.622 Jan 2026 -
0.28.521 Jan 2026 -
0.28.415 Jan 2026Release notes
Open source → -
0.28.308 Jan 2026 -
0.28.223 Dec 2025Release notes
Open source →Other
- Fixing #[derive(Decode)] issue where generics were not passed into the decode op, causing an error when deriving/compiling (#513)
- Update README.md
-
0.28.119 Nov 2025 -
0.28.020 Oct 2025 -
0.27.415 Oct 2025Release notes
Open source →Fixed
- (ber) don't include full error information when encountering EOF during decoding (#497)
-
0.27.327 Sep 2025Release notes
Open source →Fixed
- (per) Fix constrained length encoding/decoding for SIZE(0..65535) (#493)
-
0.27.230 Aug 2025Release notes
Open source →Fixed
- (xer) Fix encoding for sequences containing elements after a SEQUENCE OF or SET OF
- (xer) Fix encoding of sequences with elements after a CHOICE
-
0.27.111 Aug 2025Release notes
Open source →Fixed
- (uper) empty outer encoding (#466)
Other
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
0.27.019 Jun 2025Release notes
Open source →Fixed
- OctetString PartialEq implementation with arc-slice feature (#476)
- (OER/PER) detect choice type always correctly on explicit prefix (#479)
- #472 and add explicit integer conversion tests (#474)
Other
-
0.26.618 May 2025 -
0.26.509 May 2025 -
0.26.429 Apr 2025 -
0.26.328 Apr 2025 -
0.26.217 Apr 2025Release notes
Open source →Added
- inner subtype constraint (#437)
- support multi-field tuple-structs with delegate if other types are (#436)
Fixed
- improve constraint performance and bounded intersection (#440)
- remove SetOf hashbrown dependency (#438)
Other
-
0.26.128 Mar 2025 -
0.26.024 Mar 2025Release notes
Open source →Added
- (bench) Add seperate encode and rtt benchmarks for X.509 (#432)
Fixed
- BER: improve GeneralizedTime parsing (#426)
Other
- chore!(integer): Wrap integer in newtype wrapper to hide implementation (#429)
- Clarify error message for UnexpectedEmptyInput (#427)
- Improve constraint compiler errors (#428)
- From -> TryFrom (#425)
- Ignore .profraw, remove related (#424)
- Add decoding iterator, decode_with_remainder, clippy fixes (#421)
-
0.25.109 Mar 2025Release notes
Open source →Other
- Fixes librasn/rasn#418. Add support for explict tags and default values to encode correctly (#419)
-
0.25.007 Mar 2025 -
0.24.030 Jan 2025 -
0.23.025 Jan 2025Release notes
Open source →Added
- [breaking] Add basic support for REAL using f32/f64 with JER/OER rules (#406)
- add a convenience macro for parsing string literals into
&'static Oids (#404)
Fixed
- some clippy lints causing CI to fail (#405)
-
0.22.205 Jan 2025 -
0.22.103 Jan 2025Release notes
Open source →Fixed
- (derive) use
constblocks and add generic bounds when generating an enum'sAsnTypeimpl (#398) - add missing
Copyimpl toFixedOctetString<N>(#396) - remove
Defaultbound from[T; N]'sDecodeimpl (#395) - Fix PER encoding of empty octet strings missing the length determinant (#393)
- FixedBitString might work as expected (#385)
Other
- fix accidental double backtick in
Integerdocs (#394) - Fix panic in the JER OctetString decoder if the string isn't even length (#382)
- oer: format! in error messages has too much impact (#387)
- Add
decode_with_remainderfor decoding stream (#386) - OER: remove nom usage, improve errors (#384)
- Remove trails of BitSlice and unnecessary length checks (#381)
- use shifting to construct primitive integers (#379)
- (derive) use
-
0.22.026 Nov 2024Nothing published for this version
-
0.21.022 Nov 2024Release notes
Open source →Added
- Implement Algorithms and Identifiers PKIX module
Fixed
- split iai and criterion benches, use correct adapters (#366)
- cleanup some unnecessary dependencies (#362)
- remove version pin from release-plz (#356)
- Don't override generics impl in proc-macros on encode impl (#354)
- pin release-plz version until fixed (#353)
- decoding of extended fields in sequence in BER (#351)
- Fix most issues related to dependency update, except hashbrown version (#349)
Other
- Update README.md
- Update README.md
- Update README.md
- Remove dependency on rayon (#363)
- Extract proc macro into own crate (#364)
- Update base_benchmarks.yml
- Attempt to fix base benchmarks on CI (#365)
- Update base_benchmarks.yml
- Update base_benchmarks.yml
- Create base_benchmarks.yml
- Update from iai to iai-callgrind (#358)
- black box integer test, use macros (#360)
- Optimize field presence tracking of default/optional/extended fields (#324)
- run x509 benches only on x86_64 or aarch64 (#355)
- Add other X.509 libraries to bench
- update dependencies
- update lockfile
- update lockfile
- Create FUNDING.yml
-
0.20.218 Oct 2024Release notes
Open source → -
0.20.106 Oct 2024 -
0.20.030 Sep 2024Release notes
Open source →Added
- [breaking] update snafu to 0.8.5, impl
core::error::Errorfor error types
Fixed
- Reroll back to BTreeMap for field presence tracking (#338)
- [breaking] update snafu to 0.8.5, impl
-
0.19.023 Sep 2024Release notes
Open source →Added
- Export rasn-compiler as optional feature
Fixed
- [breaking] Change *_constraint macros to accept
extensiblekeyword over bool
Other
- Use
ORoperator in Cargo.tomllicensefield (#335) - Document more of rasn, add warning on missing documentation
- Document more of rasn, remove unintentionally public items
- Add rustdoc lint check
- documentation lint fixes
- Add module level top-line doc for JER
- clippy fixes
- move common macros into dedicated module
- ObjectIdentifier::new: first arc may be 2 (#331)
-
0.18.017 Sep 2024Release notes
Open source →Added
- [breaking] Rework for SetOf type (#325)
- Change LDAPString to be newtype wrapper around String (#327)
- [breaking] Remove option_type (#329)
- Constraint utilities, const default, more const functions (#321)
Fixed
- macros: include license texts in the packaged crate (#330)
- [breaking] Remove jer feature, jer is enabled by default
- [breaking] Remove Tag and TagTree from module root
- [breaking] Make codec module private
Other
-
0.17.312 Sep 2024Release notes
Open source →Other
- Add new field constructors that accept generics
- Clippy fixes and CI artifact upload/download update (#319)
- Update itertools to 0.13, update Cargo.lock
- Add ZERO constant to integer, fix warnings
-
0.17.209 Sep 2024 -
0.17.108 Sep 2024 -
0.17.005 Sep 2024Release notes
Open source →Added
- [breaking]
Integeras enum type and optimized constrained and variable-sized integer encoding (#289)
- [breaking]
-
0.16.631 Aug 2024 -
0.16.523 Aug 2024 -
0.16.422 Aug 2024Release notes
Open source →Added
- Impl Display for Oid (#297)
Fixed
- Move BER integer leading byte handling to codec level (#299)
-
0.16.313 Aug 2024Release notes
Open source → -
0.16.205 Aug 2024Release notes
Open source →Other
- call correct method for Default and Optional types when value is None. (#290)
-
0.16.104 Aug 2024 -
0.16.017 Jul 2024Release notes
Open source →Fixed
- pass constraints correctly when encoding optional type (#276)
- Hide
jerbehind feature (implyingstd). (#266)
Other
- Fix error name regression introduced in a75b26b (#285)
- Unify and Improve error handling of restricted strings (#269)
- fix untagged sequence bitfield bits (#279)
- fix encoding of empty extension values (#278)
- correctly encode null in option in extensions (#277)
- fix empty length decoding, no zero padding allowed (#274)
- decode error when unused preamble bits are not zero (#273)
- check quantity data size on sequence of (#275)
- Fix invalid handling of zero padding on length of length on COER (#268)
- Hide
snafubacktraces behindstd. (#265)
-
0.15.314 Jun 2024 -
0.15.211 Jun 2024Release notes
Open source →Fixed
- decoding integers encoded with byte lengths greater than
{integer}::BITS / 8would cause a subtraction underflow and subsequent index panic (#257)
- decoding integers encoded with byte lengths greater than
-
0.15.110 Jun 2024 -
0.15.017 May 2024 -
0.14.005 Apr 2024 -
0.13.121 Mar 2024Release notes
Open source →Other
- Manually fix the incompatible versions (a result of v0.13.0 release) and some clippy warnings (#237)
-
0.13.017 Mar 2024Nothing published for this version
-
0.12.609 Mar 2024 withdrawnRelease notes
Open source →Fixed
- fix char and index maps, enable tests (#230)
- fix no_std being commented out
- (types) stack overflow in ObjectIdentifier PartialEq (#223)
Other
-
0.12.503 Feb 2024