1 unstable release
0.1.0 | Oct 2, 2019 |
---|
#419 in No standard library
53KB
2K
SLoC
serde-json-core
serde-json
forno_std
programs
Documentation
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
serde-json
for no_std
programs
This version of serde-json
is aimed at applications that run on resource constrained
devices.
Current features
- The error type is a simple C like enum (less overhead, smaller memory footprint)
- (De)serialization doesn't require memory allocations
- Deserialization of integers doesn't go through
u64
; instead the string is directly parsed into the requested integer type. This avoids pulling in KBs of compiler intrinsics when targeting a non 64-bit architecture. - Supports deserialization of:
bool
- Integers
str
(This is a zero copy operation.) (*)Option
- Arrays
- Tuples
- Structs
- C like enums
- Supports serialization (compact format only) of:
bool
- Integers
str
(**)Option
- Arrays
- Tuples
- Structs
- C like enums
(*) Deserialization of strings ignores escaped sequences. Escaped sequences might be supported in the future using a different Serializer as this operation is not zero copy.
(**) Serialization of strings doesn't escape stuff. This simply has not been implemented yet.
Planned features
- (De)serialization from / into IO objects once
core::io::{Read,Write}
becomes a thing.
Non-features
This is explicitly out of scope
- Anything that involves dynamic memory allocation
- Like the dynamic
Value
type
- Like the dynamic
MSRV
This crate is guaranteed to compile on stable Rust 1.31.0 and up. It might compile with older versions but that may change in any new patch release.
Dependencies
~0.8–1MB
~23K SLoC