Juicy

a JSON parser with some cool features

Basic parsing

  • Basic parsing

  • Equivalent function to Jiffy, most others

  • Good BEAM citizen

  • Performance

Spec parsing

  • Like basic parsing, also takes a "spec"

  • Parse into Elixir structs safely, and more

Streaming parsing

  • Takes a Stream of binaries

  • Produces Stream of terms

  • Spec can specify subtrees that should be emitted out-of-tree

Specs

{:map, [atom_keys: [:a, :b]], 
    {:any, []}
} 

Internal architecture

  • Generic parser

  • Source and Sink are traits