5 releases
| 0.2.0 | Jun 18, 2025 |
|---|---|
| 0.1.3 | Aug 9, 2024 |
| 0.1.2 | Aug 9, 2024 |
| 0.1.1 | May 28, 2024 |
| 0.1.0 | May 25, 2024 |
#856 in Encoding
3,412 downloads per month
Used in 3 crates
(via jxoesneon-tectonic-xetex_…)
430KB
12K
SLoC
Enrede
An easy-to-use string encoding library, providing an interface similar to str/String, for
working with strings in encodings beyond UTF-8. Due to the API being based on std, working with other
encodings is as transparent and painless as possible.
The name, enrede, is a double wordplay - Encode/Recode/Decode, and Enrede means
'tangled' or 'caught' in Spanish.
Features
Str<E>andString<E>types, equivalent tostrandstd::string::String, but generic over encoding.CStr<E>andCString<E>types, equivalent tostd::ffi::CStrandstd::ffi::CString, but generic over encoding.Encodingtrait with support for lower-level direct encoding/recoding into slicesno_stdsupportrand::Distributionimpls for encodings, allowing easy generation of valid characters for an encoding
Planned Features
These features are not yet supported, but are planned for a future version:
- Dynamically encoded strings
- Extended methods for encodings following certain properties:
- Constant length encodings
- More encodings
- Big5
- More methods on strings and C-strings
no_std Support
By default, the std and alloc features are enabled. By using default-features = false
in your Cargo.toml, you can disable these features. When std is disabled, this crate
is no_std. When the alloc feature is disabled, the crate won't use alloc, and any types
or functions requiring allocation will be disabled (For example String<E>).
Limitations
Currently, it is assumed that all supported encodings are subsets of the Unicode character set.
Dependencies
~0.8–1.3MB
~27K SLoC