Packages
reckon_db
3.1.2
5.11.0
5.10.4
5.10.3
5.10.1
5.10.0
5.9.1
5.9.0
5.8.3
5.8.2
5.8.1
5.8.0
5.7.0
5.6.1
5.6.0
5.5.5
5.5.4
5.5.3
5.5.2
5.5.1
5.5.0
5.4.0
5.2.2
5.2.1
5.2.0
5.1.0
5.0.0
4.0.0
3.1.2
3.1.1
3.0.0
2.3.7
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.2
2.2.0
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.0
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.3
1.3.2
1.3.1
1.3.0
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.3
1.0.2
1.0.1
1.0.0
BEAM-native Event Store built on Khepri/Ra with Raft consensus. Event sourcing, persistent subscriptions, snapshots, and automatic cluster formation via UDP multicast discovery. Ships embedded Rust NIFs for 3-15x acceleration of crypto, hashing, compression, aggregation, filter matching, and grap...
Current section
Files
Jump to
Current section
Files
rebar.config
{erl_opts, [
debug_info,
warnings_as_errors
]}.
{deps, [
{khepri, "0.17.2"},
{telemetry, "1.3.0"},
{reckon_gater, "~> 2.3"}
]}.
%% Build the embedded Rust NIFs from native/<crate>/ into priv/<crate>.so
%% before rebar3 compiles Erlang. The script is idempotent (skips
%% already-built .so files) and tolerates a missing Rust toolchain
%% (logs warning and continues — reckon-db's wrapper modules will
%% just use the Erlang fallbacks). See priv/build-nifs.sh for details.
{pre_hooks, [
{compile, "sh -c 'B=\"${REBAR_DEPS_DIR}/reckon_db\"; [ -f \"$B/priv/build-nifs.sh\" ] || B=\".\"; sh \"$B/priv/build-nifs.sh\" \"$B\"'"}
]}.
{project_plugins, [
rebar3_proper,
rebar3_ex_doc,
rebar3_hex
]}.
{profiles, [
{test, [
{deps, [
{proper, "1.4.0"},
{meck, "0.9.2"}
]},
{erl_opts, [
debug_info,
nowarn_export_all
]},
{extra_src_dirs, [
"test/unit",
"test/integration",
"test/support",
"test/e2e"
]}
]},
{prod, [
{erl_opts, [
no_debug_info,
deterministic
]},
{relx, [
{release, {reckon_db, "1.0.0"}, [
reckon_db,
sasl
]},
{dev_mode, false},
{include_erts, true},
{extended_start_script, true},
{sys_config, "config/sys.config"},
{vm_args, "config/vm.args"}
]}
]}
]}.
{shell, [
{apps, [reckon_db]}
]}.
{relx, [
{release, {reckon_db, "1.0.0"}, [
reckon_db,
sasl
]},
{dev_mode, true},
{include_erts, false},
{extended_start_script, true},
{sys_config, "config/sys.config"},
{vm_args, "config/vm.args"}
]}.
%% EUnit configuration
{eunit_opts, [
verbose,
{report, {eunit_surefire, [{dir, "_build/test/reports"}]}}
]}.
%% Common Test configuration
{ct_opts, [
{dir, "test/integration"},
{sys_config, "config/test.config"}
]}.
%% Cover configuration
{cover_enabled, true}.
{cover_opts, [verbose]}.
%% Dialyzer configuration
{dialyzer, [
{warnings, [
unknown,
unmatched_returns,
error_handling,
underspecs
]},
{plt_apps, top_level_deps},
{plt_extra_apps, [kernel, stdlib, crypto]}
]}.
%% Ex_doc configuration
{ex_doc, [
{extras, [
{"README.md", #{title => <<"Readme">>}},
{"LICENSE", #{title => <<"License">>}},
{"CHANGELOG.md", #{title => <<"Changelog">>}},
%% Core Concepts
{"guides/event_sourcing_paradigms.md", #{title => <<"Event Sourcing Paradigms">>}},
{"guides/event_sourcing.md", #{title => <<"Event Sourcing">>}},
{"guides/cqrs.md", #{title => <<"CQRS">>}},
{"guides/subscriptions.md", #{title => <<"Subscriptions">>}},
{"guides/snapshots.md", #{title => <<"Snapshots">>}},
%% Advanced Features
{"guides/temporal_queries.md", #{title => <<"Temporal Queries">>}},
{"guides/scavenging.md", #{title => <<"Scavenging">>}},
{"guides/causation.md", #{title => <<"Causation Tracking">>}},
{"guides/stream_links.md", #{title => <<"Stream Links">>}},
{"guides/schema_evolution.md", #{title => <<"Schema Evolution">>}},
%% Operations
{"guides/configuration.md", #{title => <<"Configuration">>}},
{"guides/memory_pressure.md", #{title => <<"Memory Pressure">>}},
{"guides/storage_internals.md", #{title => <<"Storage Internals">>}},
{"guides/cluster_consistency.md", #{title => <<"Cluster Consistency">>}},
{"guides/store_inspector.md", #{title => <<"Store Inspector">>}},
%% Project policies
{"docs/genai-policy.md", #{title => <<"Generative AI Policy">>}}
]},
%% CHANGELOG entries legitimately reference historic internal
%% functions that are private/hidden in the current code — those
%% references are documenting what was fixed, not pointing readers
%% at API surface. Suppress autolink warnings for that file only.
{skip_undefined_reference_warnings_on, ["CHANGELOG.md"]},
{main, <<"README.md">>},
{source_url, <<"https://codeberg.org/reckon-db-org/reckon-db">>},
{assets, #{<<"assets">> => <<"assets">>}}
]}.
%% Hex configuration.
%%
%% Package metadata (description, licenses, links, files) lives in
%% `src/reckon_db.app.src` — that's where rebar3_hex reads it from.
%% A `{files, [...]}` here is silently ignored, as v2.3.0 found out
%% the hard way.
{hex, [
{doc, #{provider => ex_doc}}
]}.