Skip to content

io7m-com/looseleaf

Repository files navigation

looseleaf

Maven Central Maven Central (snapshot) Codecov Java Version

com.io7m.looseleaf

JVM Platform Status
OpenJDK (Temurin) Current Linux Build (OpenJDK (Temurin) Current, Linux)
OpenJDK (Temurin) LTS Linux Build (OpenJDK (Temurin) LTS, Linux)
OpenJDK (Temurin) Current Windows Build (OpenJDK (Temurin) Current, Windows)
OpenJDK (Temurin) LTS Windows Build (OpenJDK (Temurin) LTS, Windows)

looseleaf

The looseleaf package implements an HTTP-accessible key/value database with ACID semantics and fine-grained role-based access control.

Features

  • ACID semantics.
  • Atomic reads and updates for arbitrary sets of keys. An unlimited number of keys can be read, updated, and/or deleted in a single operation that is atomic with respect to all other database operations.
  • Fine-grained role-based access control.
  • A trivial HTTP interface for easy access from shell scripts.
  • A strictly defined JSON protocol with a full schema.
  • Convenient endpoints for use with command-line tools such as curl.
  • A small, easily auditable codebase with a heavy use of modularity for correctness.
  • An extensive automated test suite with high coverage.
  • A small footprint; the server is designed to run in tiny 16-32mb JVM heap configurations.
  • Platform independence. No platform-dependent code is included in any form, and installations can largely be carried between platforms without changes. The database file format is also platform-independent.
  • Security-conscious engineering. All requests require authentication, extensive validation is performed on all requests, and careful use is made of the Java type system to enforce invariants throughout the codebase.
  • Fully instrumented with OpenTelemetry for reliable service monitoring.
  • Configurable fault injection for testing monitoring.
  • OSGi-ready
  • JPMS-ready
  • ISC license.

Usage

See the documentation.