An open API service indexing awesome lists of open source software.

https://github.com/romnn/serde_json_merge

Merge, index, iterate, and sort a serde_json::Value (recursively).
https://github.com/romnn/serde_json_merge

extension indexing iterators json merge recursively rust serde-json sort

Last synced: about 1 year ago
JSON representation

Merge, index, iterate, and sort a serde_json::Value (recursively).

Awesome Lists containing this project

README

          

## serde_json_merge

[build status](https://github.com/romnn/serde_json_merge/actions/workflows/build.yaml)
[test status](https://github.com/romnn/serde_json_merge/actions/workflows/test.yaml)
[benchmarks](https://romnn.github.io/serde_json_merge/)
[crates.io](https://crates.io/crates/serde_json_merge)
[docs.rs](https://docs.rs/serde_json_merge)

Merge, index, iterate, and sort a `serde_json::Value` (recursively).

This library supports in-place merging and sorting using DFS and BFS traversal.

```toml
[dependencies]
serde_json_merge = "0"
```

#### Usage

For usage examples, check the [examples](https://github.com/romnn/serde_json_merge/tree/main/examples) and [documentation](https://docs.rs/serde_json_merge).

#### Examples

TODO: embed these examples here

```bash
cargo run --example async_fs --features async -- --path ./
cargo run --example sync_fs --features sync,rayon -- --path ./
```

#### Development

```bash
cargo install cargo-criterion
cargo install cargo-feature-combinations
brew install taskfile

# see a list of development tasks such as `test`, `bench`, or `lint`
task --list
```

Benchmark reports are available [here](https://romnn.github.io/serde_json_merge/).

#### Acknowledgements

After I wrote this crate for another project and decided to publish it, I found [json_value_merge](https://crates.io/crates/json_value_merge).

Looking through it, I added `merge_index` inspired by their `merge_in` API.