Based on your requirements, I think [JetBrains Xodus](http://jetbrains.github.io/xodus) is a very choice of database. It has three types of database- a key-value storage, an entity-store and a database for files and streams. **#1**: It is very easy to start using. If you are using maven just add one or two [dependencies](https://github.com/JetBrains/xodus/wiki/Managing-Dependencies). Or you can also import `.jar` files directly into your project. No need to create any server. Just create an instant of `Environment` and you are ready to go. And you can give it your folder name to store data. final Environment env = Environments.newInstance("/Users/me/.myAppData"); **#2**: Instead of managing tables you can just store entities. It is very similar to relational tables, but a lot more easier. Take a look [here](https://github.com/JetBrains/xodus/wiki/Entity-Stores) to know how to do it. final Entity user = txn.newEntity("User"); user.setProperty("login", loginName); user.setProperty("fullName", fullName); user.setProperty("email", email); final String salt = MessageDigestUtil.sha256(Double.valueOf(Math.random()).toString()); user.setProperty("salt", salt); user.setProperty("password", MessageDigestUtil.sha256(salt + password)); **#3**: More lightweight than any other non-relational database avaiable. See their [benchmark test](http://jetbrains.github.io/xodus/#features).