Settings

Theme

Show HN: Python JSON library in Rust, faster than ujson

github.com

40 points by ijl 7 years ago · 4 comments

Reader

eridius 7 years ago

> It raises TypeError on an unsupported type or a number that is too large.

Why does it raise an error on "a number that is too large"? The JSON spec does not put any limit on the size of numbers. Practically speaking, integers that don't fit in 53 bits won't be preserved when decoded by JavaScript and some other libraries, and integers that don't fit in 64 bits will likely not be preserved by most libraries, but as far as the JSON spec is concerned you can have integers of any size (or floating-point numbers of any precision).

  • tlb 7 years ago

    JSON doesn't support NaN or infinity, so most JS implementations emit null for NaN, +Inf, -Inf. In Node:

      > JSON.stringify({nan: 0/0, inf: 1/0, neginf:-1/0})
      '{"nan":null,"inf":null,"neginf":null}'
    
    I'm not sure if throwing an exception is better or worse.
    • lilyball 7 years ago

      Ok, but the line I quoted wasn't about infinity, it was about numbers that were "too large", which I assume means bignums.

solidsnack9000 7 years ago

This is the kind of thing that Rust can do so well -- export high performance, safe and trustworthy functionality to any language that can bind with native code.

C/C++ does everything but the safe and trustworthy part.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection