Skip to content

Convert Rust data to idiomatic Clojure data using JNI

License

Notifications You must be signed in to change notification settings

dlesl/serde_clj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Convert Rust data to idiomatic Clojure data using JNI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages