clojure-reader

Crates.ioclojure-reader
lib.rsclojure-reader
version0.3.0
sourcesrc
created_at2024-06-18 13:39:40.485387
updated_at2024-12-03 12:06:30.456156
descriptionA Clojure reader
homepage
repositoryhttps://github.com/grinkers/clojure-reader
max_upload_size
id1275476
size103,706
Kevin Nakamura (Grinkers)

documentation

README

clojure-reader

Coverage Status

A crate to read Clojure.

EDN (Extensible Data Notation)

MSRV (minimal supported rust version)

Stable minus 2 versions. Once stable (1.0.0), the plan is to indefinitely maintain the MSRV.

Default Features

The following features are enabled by default. To disable use this crate without default features.

std

When using no_std, this crate relies on alloc. You must supply your own #[global_allocator].

floats

Pulls in the dependency ordered-float for Edn::Double. Without this feature, parsing floating-point numbers will result in an Err.

Optional Features

The following features are not enabled by default. To enable them all, use with

 clojure-reader  = { features = ["full"] }

derive

Enables implementation for serde's Serialize and Deserialize traits for convenient to/from rust structures.

See serde example for tips/tricks (eg you'll probably want kebab-case).

Note that EDN is more generic than rust, so this feature will silently pass over things that rust and serde cannot handle. For example

{:foo 42, 42 "bar"}

will pass over the k/v pair (42 "bar") and transform :foo to foo.

If you need complete control, it is recommended to use the base read and read_string. See get-nth example for clojure-like navigation.

arbitrary-nums

Enables parsing of arbitrary length/precision Ints and Decimals. Relies on bigdecimal and num-bigint crates.

no_std

See the pico example for a minimalistic example of using this crate with the raspberry pi pico (rp2040)

Commit count: 27

cargo fmt