Haven: A simple Kotlin library to keep your JSON data safe
Want a safe place to manipulate your JSON data? Written in Kotlin, Haven was designed to be a simple, concise library for JSON users. Make JSON safely accessible again with Haven!
Don’t worry about being eaten by a grue; Haven is a safe space to manipulate your JSON data. Designed for simplicity and conciseness, this JSON library makes it easier than ever to access your data on the go.
The basic idea behind Haven is that dependencies are a liability. Sure, they can have their uses. But, in general, they’re often the source of a lot of stress and sticky situations. Best give the whole thing a miss.
Haven lets developers avoid unnecessary dependencies. In fact, this library is written almost entirely without third-party dependencies! (The kotlintest testing framework is the notable exception.)
So, how does it work?
Most JSON libraries use a data-binding approach: users define an object that serves as the structure, which the library then maps JSON values onto.
Haven takes a different approach. Essentially, Haven takes a tree-model approach for dealing with JSON data. Parsed JSON data is an in-memory tree of objects that can be accessed on demand. This means Haven is considerably faster and easier to dive into.
This approach does have downsides, namely type safety and an increased verbosity. That said, Haven minimizes these issues, leaving developers with a simpler way to manipulate their JSON data.
Haven also supports an additional approach: the data-binding style of JSON manipulation. Many other JVM libraries take this approach. However, this functionality is more of a second-class citizen and it’s build on top of the tree-model system. Developers really should use the tree-model approach first before moving on to data-binding.
Find your own safe Haven
Want to try Haven out on your own? You can install Haven with JitPack or download the source code and build it yourself. Check out the releases page for the latest information. More information is available here.