serde/README.md

70 lines
2.3 KiB
Markdown
Raw Normal View History

2016-08-28 10:37:55 -05:00
# Serde   [![Build Status](https://api.travis-ci.org/serde-rs/serde.svg?branch=master)](https://travis-ci.org/serde-rs/serde) [![Coverage Status](https://coveralls.io/repos/serde-rs/serde/badge.svg?branch=master&service=github)](https://coveralls.io/github/serde-rs/serde?branch=master) [![Latest Version](https://img.shields.io/crates/v/serde.svg)](https://crates.io/crates/serde)
2014-09-07 03:30:58 -05:00
2016-08-18 00:01:48 -05:00
**Serde is a framework for *ser*ializing and *de*serializing Rust data structures efficiently and generically.**
2014-09-07 03:30:58 -05:00
2016-08-18 00:01:48 -05:00
---
2015-04-01 00:16:15 -05:00
2016-08-18 00:01:48 -05:00
You may be looking for:
2015-08-09 18:37:01 -05:00
2016-08-18 16:08:05 -05:00
- [An overview of Serde](https://serde.rs/)
- [Data formats supported by Serde](https://serde.rs/#data-formats)
- [Setting up `#[derive(Serialize, Deserialize)]`](https://serde.rs/codegen.html)
- [Examples](https://serde.rs/examples.html)
- [API documentation](https://docs.serde.rs/serde/)
2015-08-09 18:37:01 -05:00
2016-08-18 00:01:48 -05:00
## Serde in action
```rust
2016-08-18 00:01:48 -05:00
#![feature(plugin, custom_derive)]
#![plugin(serde_macros)]
extern crate serde_json;
#[derive(Serialize, Deserialize, Debug)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let point = Point { x: 1, y: 2 };
2016-08-18 00:01:48 -05:00
// Convert the Point to a JSON string.
let serialized = serde_json::to_string(&point).unwrap();
2015-04-01 23:59:37 -05:00
2016-08-18 00:01:48 -05:00
// Prints serialized = {"x":1,"y":2}
println!("serialized = {}", serialized);
2016-08-18 00:01:48 -05:00
// Convert the JSON string back to a Point.
let deserialized: Point = serde_json::from_str(&serialized).unwrap();
2016-08-18 00:01:48 -05:00
// Prints deserialized = Point { x: 1, y: 2 }
println!("deserialized = {:?}", deserialized);
}
2015-04-01 00:16:15 -05:00
```
2016-08-18 09:56:41 -05:00
## Getting help
Serde developers live in the #serde channel on
[`irc.mozilla.org`](https://wiki.mozilla.org/IRC). The #rust channel is also a
good resource with generally faster response time but less specific knowledge
about Serde. If IRC is not your thing, we are happy to respond to [GitHub
issues](https://github.com/serde-rs/serde/issues/new) as well.
2016-08-18 00:01:48 -05:00
## License
2016-08-18 00:01:48 -05:00
Serde is licensed under either of
2016-08-18 00:01:48 -05:00
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT)
2016-08-18 00:01:48 -05:00
at your option.
2016-08-18 00:01:48 -05:00
### Contribution
2016-08-18 00:01:48 -05:00
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Serde by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.