#string #utf-8 #algorithm

no-std enrede

一个易于使用的字符串编码库,提供类似于str/String的接口

4次发布

0.1.3 2024年8月9日
0.1.2 2024年8月9日
0.1.1 2024年5月28日
0.1.0 2024年5月25日

#730 in 编码

Download history 166/week @ 2024-05-20 183/week @ 2024-05-27 9/week @ 2024-06-03 3/week @ 2024-06-10 6/week @ 2024-07-01 21/week @ 2024-07-29 160/week @ 2024-08-05

每月181次下载

MIT/Apache

400KB
11K SLoC

Enrede

Crates.io Version Crates.io License Actions Badge

一个易于使用的字符串编码库,提供类似于str/String的接口,用于处理超出UTF-8编码的字符串。由于API基于std,与其他编码一起使用尽可能透明且无痛苦。

名称enrede是一个双关语 - Encode/Recode/Decode,Enrede在西班牙语中意味着“纠缠”或“被困”。

功能

  • Str<E>String<E>类型,与strstd::string::String等价,但支持泛型编码。
  • CStr<E>CString<E>类型,与std::ffi::CStrstd::ffi::CString等价,但支持泛型编码。
  • 支持低级直接编码/重编码到切片的Encoding特质
  • 支持no_std
  • 为编码实现rand::Distribution,允许轻松生成编码的有效字符

计划的功能

这些功能尚未支持,但计划在未来版本中实现

  • 动态编码字符串
  • 针对具有特定属性的编码的扩展方法
    • 固定长度编码
  • 更多编码
    • Shift-JIS
    • Big5
    • ISO/IEC 8859-1
  • 更多字符串和C-字符串的方法

支持no_std

默认情况下,stdalloc功能已启用。您可以在您的Cargo.toml中使用default-features = false来禁用这些功能。当std被禁用时,该crate为no_std。当alloc功能被禁用时,crate将不会使用alloc,并且需要分配的任何类型或函数都将被禁用(例如String<E>)。

限制

目前,假设所有支持的编码都是Unicode字符集的子集。

依赖项

~0.5–1MB
~23K SLoC