Permazen 4.2.0 API

This is the API documentation for the Permazen Java library.

Permazen makes powerful persistence simple for Java programmers.

Permazen's goal is to make Java persistence as simple as possible, doing so in a Java-centric manner, while remaining strictly type safe.

Permazen does this without sacrificing flexibility or scalability by relegating the database to the simplest role possible - storing data as key/value pairs - and providing all other supporting features, such as indexes, command line interface, etc., in a simpler, type-safe, Java-centric way.

Permazen also adds important new features that traditional databases don't provide.

  • Designed from the ground up to be Java-centric; completely type-safe.
  • Works on top of any database that can function as a key/value store (SQL, NoSQL, etc.)
  • Scales gracefully to large data sets; no "whole database" operation is ever required
  • Configured entirely via Java annotations (only one is required)
  • Queries are regular Java code - there is no "query language" needed
  • Change notifications from arbitrarily distant objects
  • Built-in support for rolling schema changes across multiple nodes with no downtime
  • Supports simple and composite indexes and user-defined custom types
  • Extensible command line interface (CLI) supporting arbitrary Java queries
  • Built-in Java-aware graphical user interface (GUI) based on Vaadin

Visit the Permazen project homepage at https://github.com/permazen/permazen/.

Packages 
Package Description
io.permazen
Abstraction layer allowing access to a Database using normal Java objects.
io.permazen.annotation
Annotations used for automatic creation of a Permazen and corresponding schema configuration of the underlying Database from annotated classes, as well as automatic registration of various listeners, etc.
io.permazen.ant
Ant tasks relating to Permazen.
io.permazen.app
Support for Permazen command line applications.
io.permazen.change
Classes passed to @OnChange-annotated methods.
io.permazen.cli
Permazen Command Line Interface (CLI) classes.
io.permazen.cli.app
Support for Permazen command line interface (CLI) applications.
io.permazen.cli.cmd
Permazen CLI Command related classes, including pre-defined commands.
io.permazen.cli.func
Permazen CLI pre-defined Functions.
io.permazen.cli.telnet
Support for Permazen Command Line Interface (CLI) over telnet connections.
io.permazen.core
Core classes for the Permazen Java persistence layer.
io.permazen.core.type
Permazen FieldTypes.
io.permazen.core.util
Permazen core API utility classes.
io.permazen.demo
Demonstration Java model classes.
io.permazen.index
Permazen index classes.
io.permazen.jsck
Classes associated with Jsck, the Permazen key/value database consistency checker.
io.permazen.jsck.cmd
CLI commands associated with Jsck, the Permazen key/value database consistency checker.
io.permazen.kv
byte[] array key/value store API and related utility classes.
io.permazen.kv.array
A simple KVStore implementation based on a sorted array of key/value pairs.
io.permazen.kv.bdb
KVDatabase implementation based on Oracle's Berkeley DB Java Edition.
io.permazen.kv.caching
Caching KVStore and KVDatabase layers.
io.permazen.kv.cockroach
KVDatabase implementation based on CockroachDB.
io.permazen.kv.fdb
KVDatabase implementation based on FoundationDB.
io.permazen.kv.leveldb
KVDatabase implementation based on LevelDB.
io.permazen.kv.lmdb
KVDatabase implementation based on LMDB.
io.permazen.kv.mssql
KVDatabase implementation based on Microsoft SQL Server.
io.permazen.kv.mvcc
Utility classes for MVCC type operations using a KVStore.
io.permazen.kv.mvstore
AtomicKVStore and KVDatabase implementations based on H2 MVStore.
io.permazen.kv.mysql
KVDatabase implementation based on MySQL.
io.permazen.kv.raft
A distributed KVDatabase based on the Raft consensus algorithm.
io.permazen.kv.raft.cmd
Raft-related CLI Commands.
io.permazen.kv.raft.fallback
A partition-tolerant KVDatabase that automatically migrates between a clustered RaftKVDatabase and a private non-clustered "standalone mode" KVDatabase, based on availability of the Raft cluster.
io.permazen.kv.raft.msg
Raft inter-node messages.
io.permazen.kv.rocksdb
KVDatabase implementation based on RocksDB.
io.permazen.kv.simple
A simple in-memory implementation of the KVDatabase interface.
io.permazen.kv.spanner
KVDatabase implementation based on Google Cloud Spanner.
io.permazen.kv.sql
KVDatabase implementations based on SQL connections.
io.permazen.kv.sqlite
KVDatabase implementation based on SQLite.
io.permazen.kv.test
Permazen key/value unit test support classes.
io.permazen.kv.util
Utility classes relating to the KVDatabase interface.
io.permazen.kv.xodus
KVDatabase implementation based on Xodus.
io.permazen.maven
Permazen Maven plugins.
io.permazen.parse
Permazen parsing related classes.
io.permazen.parse.expr
Classes for parsing Java expressions with Permazen-specific extensions.
io.permazen.parse.func
Function used in a ParseSession, including built-ins.
io.permazen.parse.util
Permazen parsing utility classes.
io.permazen.schema
Classes for modeling Permazen Database schemas.
io.permazen.spring
Spring Framework integration classes.
io.permazen.test
Permazen unit test support classes.
io.permazen.tuple
Generic typed classes holding ordered "tuples" of objects.
io.permazen.util
General utility classes used with Permazen.
io.permazen.vaadin
Classes to facilitate Vaadin applications that interact with a Permazen database.
io.permazen.vaadin.app
Support for Permazen GUI applications based on Vaadin.