saleyn
Glazejson - fast JSON encoder/decoder for Erlang or Elixir
I released a new JSON encoding/decoding library that uses NIF C++ backend and consistently outperforms most of other implementations.
Fast Erlang NIF JSON encoder/decoder backed by the glaze C++ library, with a hand-rolled recursive-descent decoder and direct term-to-JSON encoder that produce/consume native Erlang terms in a single pass.
Features
- Decoding straight to Erlang terms: maps, lists, binaries, integers (including bignums), floats, booleans, and
null- Encoding Erlang terms straight to JSON, including big integers
- Configurable representation of JSON
nulland JSON object keysminify/1andprettify/1helpers- Standalone big-integer encode/decode helpers (
encode_bigint/1,decode_bigint/1)
(numbers in µs)
JSON files: twitter (616.7K) twitter2 (758.0K) openrtb (1.2K) esad (1.3K) small (0.1K)
decode encode decode encode decode encode decode encode decode encode
---------------------------------------------------------------------------------------------------------------------
glazejson 10097.9 3947.9 14904.2 8186.0 17.4 12.5 14.8 8.7 1.3 1.5
torque 10151.7 4358.7 12899.5 6798.9 18.3 13.2 19.9 7.1 4.5 1.7
simdjsone 10345.9 7541.2 18973.3 13482.5 25.6 27.5 19.5 18.5 1.7 4.5
jiffy 30645.2 4347.6 51053.1 9500.1 50.0 28.6 32.2 19.0 7.4 4.2
jason 21005.7 12918.1 40277.2 25064.8 56.4 26.2 33.7 22.1 6.0 3.7
thoas 21151.4 13779.6 41390.0 25625.0 57.4 29.9 35.0 26.7 7.5 3.8
euneus 20488.9 12319.9 31853.9 25111.0 40.7 32.7 25.2 19.0 7.3 3.3
json 19887.1 11679.8 30902.8 24087.7 41.5 26.9 40.1 10.6 4.8 4.1
Most Liked
AlexGx
Hi, nice work! Please check possible heap buffer overflow in decode_bigint (limbs_to_term func) with ASAN enabled. I got ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1 for input 18446744073709551616 (2^64)
1
saleyn
Popular in Announcing
Hey guyz
We at @aviabird are working on a payment library in elixir/phoenix. We are targeting March 2018 to add 56 Gateways to it.
Have...
New
I am pleased to announce an initial release of the Membrane Framework - an Elixir-based framework with special focus on processing multim...
New
Hello guys,
I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
TypeCheck: Fast and flexible runtime type-checking for your Elixir projects.
Core ideas
Type- and function specifications are const...
New
LangChain is short for Language Chain. An LLM, or Large Language Model, is the “Language” part. This library makes it easier for Elixir a...
New
Hello everyone!
I am excited to share our heart project Backpex with you.
After building several Phoenix applications, we realized that...
New
I needed to reuse React components from my Chrome extension in my Phoenix/LiveView backend. I noticed that for Svelte/Vue, there are live...
New
Other popular topics
Hi,
I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
I have an umbrella app.
Some of the apps inside depend on other apps in the umbrella, unsurprisingly.
I’m writing a test for one of the...
New
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
What learn first? Rust or Elixir
Hi Elixir community!
I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









