8 releases (4 breaking)
0.5.0 | Aug 1, 2024 |
---|---|
0.4.0 | Feb 8, 2024 |
0.3.1 | May 26, 2023 |
0.3.0 | Mar 22, 2023 |
0.1.1 | Nov 22, 2021 |
#2 in #newtypes
5,750 downloads per month
Used in 3 crates
39KB
620 lines
Rust implementation of BIP21
Rust-idiomatic, compliant, flexible and performant BIP21 crate.
About
Important: while lot of work went into polishing the crate it's still considered early-development!
- Rust-idiomatic: uses strong types, standard traits and other things
- Compliant: implements all requirements of BIP21, including protections to not forget about
req-
. (But see features.) - Flexible: enables parsing/serializing additional arguments not defined by BIP21.
- Performant: uses zero-copy deserialization and lazy evaluation wherever possible.
Serialization and deserialization is inspired by serde
with these important differences:
- Deserialization signals if the field is known so that
req-
fields can be rejected. - Much simpler API - we don't need all the features.
- Use of
Param<'a>
to enable lazy evaluation.
The crate is no_std
but does require alloc
.
Features
std
enables integration withstd
- mainlystd::error::Error
.non-compliant-bytes
- enables use of non-compliant API that can parse non-UTF-8 URI values.
MSRV
1.56.1
License
MITNFA
Dependencies
~7.5MB
~93K SLoC