sqlite is, well, <i>everywhere</i>. It's a little shy on high-fidelity types, though, esp no dates and penny-precise numbers. And carrying rich shapes in JSON doesn't really help because JSON lacks those too. BSON supports these types but more importantly is a data carrier external to the database; you can fluidly move BSON in and out of sqlite without creating your own binary representations; just use the BSON SDK for your environment. Upwards of 20 languages are supported. The BSON extension is designed to exploit sqlite built-in JSON functions as desired.