Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tiny-json-rs

A minimalistic Rust library for encoding and decoding JSON, offering a lower memory footprint alternative to serde.

Introduction

tiny-json-rs is an open-source library designed for efficiently handling JSON in Rust applications. It aims to provide functionality similar to the serde library but focuses on reducing memory usage, making it an ideal choice for resource-constrained environments or applications where performance is critical.

Features

  • Efficient JSON Encoding/Decoding: Optimized for lower memory usage.
  • Easy Integration: Simple API, compatible with standard Rust structs.
  • Customizable: Extendable to support various data types.

Usage

Add tiny-json-rs to your Cargo.toml:

[dependencies]
tiny-json-rs = "0.2.5"

Basic Examples

Struct Definition

Define your structs and derive Deserialize and Serialize:

use tiny_json_rs::{Deserialize,Serialize};#[derive(Debug,PartialEq,Deserialize,Serialize)]pubstructA{puba:i32,pubb:String,}#[derive(Debug,PartialEq,Deserialize,Serialize)]pubstructB{puba:i32,pubb:Vec<String>,}

Can also derive custom names

#[derive(Debug,PartialEq,Deserialize,Serialize)]pubstructC{#[Rename = "CustomName"]puba:i32,pubb:String,}

Deserializing JSON

Convert a JSON string to a Rust struct:

let json = r#"{"a": 1, "b": "Hello"}"#;let parsed:A = tiny_json_rs::decode(json.to_string()).unwrap();assert_eq!(parsed.a,1);assert_eq!(parsed.b,"Hello");

Serializing to JSON

Convert a Rust struct to a JSON string:

let obj = C{a:1,b:"Hello".to_string(),};let json = tiny_json_rs::encode(obj);assert_eq!(json,r#"{"CustomName":1,"b":"Hello"}"#);

Testing

tiny-json-rs comes with a suite of tests to ensure functionality:

#[test]fntest_deserialize(){// ...}#[test]fntest_deserialize_vec(){// ...}#[test]fntest_encode_json(){// ...}

License

tiny-json-rs is licensed under MIT.

Issues?

This is an experimental project, not production ready yet. If you find any issues, please report them here

About

A tiny library to encode / decode json in rust

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages