Skip to content
CAI
Software that uses CAICheck a score

leo-project/leo_backend_db

52.9

Adequate · 17 September 2026

1.6k

lines of production code

Erlang

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

leo\_backend\_db is an Erlang library that provides a unified API for interacting with local key-value storage engines, specifically supporting Eleveldb and ETS. It exposes standard data operations such as put, get, delete, and fetch, while allowing users to configure backend-specific performance parameters like write buffer sizes and caching hints. The system includes built-in benchmarking tools and comprehensive test suites to validate instance management and data retrieval across different storage backends.

Features

Initial release of leo\_backend\_db with Erlang/OTP 19-28 support

This entry introduces leo\_backend\_db, a wrapper for local key-value stores (bitcask, eleveldb, and ETS) for the LeoFS ecosystem. The project is configured to build with rebar3 and requires Erlang/OTP versions 19 through 28. It includes a Makefile for standard build tasks (compile, test, dialyzer) and depends on leo\_commons 1.3.0, eleveldb riak\_kv-3.0.12, meck 0.9.2, and proper v1.5.0.

(repo-wide) · high confidence

Initial release of the Leo Backend DB module (v2.0.2)

This change introduces the \leo\_backend\_db\ application, providing a unified API for interacting with backend storage engines. The module exposes functions for creating, stopping, and managing database instances, as well as standard data operations including put, get, delete, fetch, and first\_n. It currently supports the eleveldb backend, allowing users to configure options such as fadvise hints and write buffer sizes, and integrates with the system supervision tree for process management.

src · high confidence

Behavioural changes

Added Leo Backend DB benchmarking driver to priv directory

The basho\_bench driver for Leo Backend DB has been moved into the priv directory, making the benchmarking configuration and Erlang source files available as part of the application's private resources. This change ensures that the benchmarking suite (including the driver implementation and its configuration file) is properly bundled with the release, allowing users to run performance tests against the Leo backend database using the standard basho\_bench tooling without needing external file paths.

priv · high confidence

Configurable Eleveldb performance parameters via include header

The system now exposes configuration options for the Eleveldb backend through the new leo\_backend\_db.hrl header file. Users can adjust the write buffer size, maximum open files, SST block size, and the fadvise(WILLNEED) caching hint via application environment variables, with sensible defaults provided for each setting.

include · high confidence

Test coverage

Added property-based and unit tests for the backend database API

This change introduces new test suites in the \test\ directory to validate the \leo\_backend\_db\_api\ module. It adds \leo\_backend\_db\_api\_prop.erl\, which uses the Proper library for property-based testing of database operations like put, get, delete, and first. It also adds \leo\_backend\_db\_api\_tests.erl\, containing EUnit tests that verify instance management, data retrieval, fetching with limits, counting, and compaction status across different backend types (including LevelDB and ETS). Additionally, \leo\_backend\_db\_bench.erl\ is added to provide benchmarking capabilities for database initialization and write performance.

test · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 53.

Lenses

  • Code Health 96
  • Architecture 100
  • Maturity 42
  • Readiness 44
  • Security 67

Changes since last survey

  • 300 commits — 264 feature/other, 36 fixes

By area

  • (repo) — 92 commits
  • (root) — 88 commits
  • src/leo_backend_db.app.src — 58 commits
  • src/leo_backend_db_api.erl — 22 commits
  • src/leo_backend_db_eleveldb.erl — 11 commits
  • src/leo_backend_db_sup.erl — 8 commits
  • include/leo_backend_db.hrl — 5 commits
  • src/leo_backend_db_bitcask.erl — 4 commits
  • src/leo_backend_db_server.erl — 3 commits
  • test/leo_backend_db_api_prop.erl — 3 commits
  • test/leo_backend_db_api_tests.erl — 2 commits
  • priv/basho_bench_driver_leo_backend_db.config — 1 commit
  • src/leo_backend_db_app.erl — 1 commit
  • test/basho_bench_driver_leo_backend_db.erl — 1 commit
  • test/leo_backend_db_bench.erl — 1 commit

Notable commits

  • fix: Fix .travis.yml
  • fix: Fix a bug of delete fun
  • fix: Fix a launch bug
  • fix: Fix a mistake
  • fix: Fix a wrong return type
  • fix: Fix assigned wrong directory
  • fix: Fix building leo_backend_db
  • fix: Fix delete-bucket to wok in case of the bucket have lots of objects
  • fix: Fix elevel-related bugs
  • fix: Fix eleveldb-related issues
  • fix: Fix ignorance of warnings
  • fix: Fix incorrect type definitions at bitcask-handler
  • fix: Fix issue leo-project/leofs#362
  • fix: Fix iterator handle leak for #712
  • fix: Fix leo-project/leofs#526
  • fix: Fix leo-project/leofs/issues/247
  • fix: Fix leo-project/leofs/issues/366
  • fix: Fix leo_commons's version
  • fix: Fix rebar.config using leo_commons 1.1.3
  • fix: Fix some test cases
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

leo-project/leo_backend_db was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 8ab7cd8e90f6f3bc7f33046486e3658fbaf116a1 — the exact code this score is about.
  • Scored under rubric-2026.09.13 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-d1ef6c0bd534.