serde_clj

Convert Rust data to idiomatic Clojure data using JNI

MIT License

Downloads
1.3K
Stars
4
Committers
1

serde_clj

Convert Rust data structures to/from (relatively) idiomatic Clojure data in memory using JNI.

See test/src/lib.rs for a usage example.

Example

#[derive(Serialize)]
struct MyStruct {
    number: i32,
    names: Vec<String>
}

becomes

{:number 3
 :names ["foo" "bar"]}

Notes/TODO

  • Unsigned integers serialize to the 'next biggest' type (except u64,
    which becomes i64), since Java doesn't really support unsigned.
  • TODO: convert to/from BigInt where necessary.
  • If you want to serialize a Vec<u8>, you should annotate or wrap
    the field with serde_bytes,
    or you will end up with a vector of java.lang.Short, which might
    not be what you wanted and isn't very efficient.
  • More extensive tests.