1 个不稳定版本
0.1.0 | 2019年10月2日 |
---|
#366 在 无标准库
53KB
2K SLoC
serde-json-core
serde-json
用于no_std
程序
文档
许可
许可协议为以下之一
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确说明,否则根据Apache-2.0许可协议定义,您提交的任何有意包含在作品中的贡献,都将根据上述协议双重许可,不附加任何额外条款或条件。
lib.rs
:
serde-json
用于 no_std
程序
此版本的 serde-json
针对运行在资源受限设备上的应用程序。
当前功能
- 错误类型是一个类似于C的枚举(更少的开销,更小的内存占用)
- 序列化和反序列化不需要内存分配
- 整数反序列化不经过
u64
;而是直接将字符串解析为请求的整数类型。这避免了在针对非64位架构时引入KB级的编译器内建函数。 - 支持反序列化
布尔值
- 整数
str
(这是一个零拷贝操作。)(*)可选
- 数组
- 元组
- 结构体
- 类似于C的枚举
- 支持序列化(仅紧凑格式)
布尔值
- 整数
字符串
(**)可选
- 数组
- 元组
- 结构体
- 类似于C的枚举
(*) 字符串反序列化忽略转义序列。未来可能会通过使用不同的序列化器来支持转义序列,因为此操作不是零拷贝。
(**) 字符串序列化不进行转义。这尚未实现。
计划中的功能
- 当
core::io::{Read,Write}
成为一个东西时,从/到IO对象的序列化/反序列化。
非特性
这明显超出了范围
- 任何涉及动态内存分配的内容
- 比如动态的
Value
类型
- 比如动态的
MSRV
该crate保证在稳定版Rust 1.31.0及更高版本上编译。它可能在较旧版本上编译,但这可能在任何新的补丁版本中发生变化。
依赖项
~0.8–1.1MB
~24K SLoC