diff --git a/Cargo.lock b/Cargo.lock index b8dab01..fee8788 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -267,7 +267,7 @@ dependencies = [ [[package]] name = "jsonformat-cli" -version = "0.2.0" +version = "1.0.0" dependencies = [ "anyhow", "clap 3.2.25", diff --git a/jsonformat-cli/Cargo.toml b/jsonformat-cli/Cargo.toml index 90a1ec4..f7803f9 100644 --- a/jsonformat-cli/Cargo.toml +++ b/jsonformat-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "jsonformat-cli" -version = "0.2.0" +version = "1.0.0" edition = "2024" license = "MIT" description = "Formats JSON extremely fast" @@ -14,7 +14,7 @@ categories = ["command-line-utilities"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -jsonformat = { path = "..", version = "2.0.0" } +jsonformat = { path = "..", version = "2.1.0" } clap = { version = "3.1.12", features = ["derive"] } anyhow = "1.0.57" diff --git a/jsonformat-cli/README.md b/jsonformat-cli/README.md new file mode 100644 index 0000000..7f3bab0 --- /dev/null +++ b/jsonformat-cli/README.md @@ -0,0 +1,44 @@ +# Extremely fast JSON formatter + +`jsonformat` is an extremely fast JSON formatter. + +It formats over 20MB of nested JSON in 60ms. + +## Library crate + +For the library crate, look at [docs.rs](https://docs.rs/jsonformat) + +## Binary Install +You need Rust installed on your system +`cargo install jsonformat-cli` + +## Binary Usage +``` +jsonformat-cli 0.2.0 +Formats JSON extremely fast + +USAGE: + jsonformat [OPTIONS] [INPUT] + +ARGS: + The input file + +OPTIONS: + -h, --help Print help information + -i, --indentation The indentation, s will replaced by a space and t by a tab. + ss is the default + -o, --output The output file + -V, --version Print version information +``` + +Reads from stdin if no file is supplied. +Outputs to stdout if no output file is specified. + +## Error handling +`jsonformat` does not report malformed json - it can't even fully know whether the json is actually malformed. +Malformed json is just formatted kind of incorrectly, with no data lost and no crashes. If you find one, open an issue, + + +## How? +`jsonformat` does not actually parse the json, it just loops through each character and keeps track of some flags. +It then copies these characters to the output buffer, adding and removing whitespace.