# ipjdb (in-process JSON database) **This tool is no longer under active development. If you are interested in taking over or repurposing the name on crates.io, feel free to contact me: nbishop@nbishop.net** [![crates.io](https://img.shields.io/crates/v/ipjdb.svg)](https://crates.io/crates/ipjdb) [![Documentation](https://docs.rs/ipjdb/badge.svg)](https://docs.rs/ipjdb) This is a very simple database for storing JSON data. Each database consists of a number of collections. Collections contain items, which are JSON files. The database is read and modified through a library; there is no separate server process. ## Storage Opening a database for the first time creates a directory. Collections are created as subdirectories within that root directory. Items in each collection are files containing JSON data with a unique ID as the file name. Example: my_db.ipjdb/ my_first_collection/ 8f1c09b585c57a94 2df515d82e2d8e59 c11237553a8eeede my_second_collection/ 75d2bcbf589fb94b 46b04bb7277a7e46 ## Concurrency File locking is used to make concurrent access to the database safe. Locks are taken at the collection level. Write operations take an exclusive lock and read operations take a shared lock. ## Safety I make no promises as to the production-readiness of this library. It needs a lot more tests, if nothing else. Patches welcome :) ## License Apache-2.0