Skip to main content

reifydb_core/interface/catalog/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026 ReifyDB
3
4//! Trait and value-type contracts for every catalog object kind ReifyDB knows about.
5//!
6//! Each submodule defines the trait that downstream catalog implementations satisfy and the associated metadata types
7//! for one logical kind (namespaces, tables, views, sources, sinks, series, ring buffers, flows, dictionaries, sum
8//! types, handlers, procedures, migrations, policies, identities, tokens, and so on), plus the cross-cutting modules
9//! for stable identifiers (`id`), key construction (`key`), on-disk layout (`layout`), change records (`change`),
10//! configuration (`config`), and column properties (`property`).
11//!
12//! Invariant: introducing a new catalog object kind is a three-place change. The contract here, a new `KeyKind` byte in
13//! `key/kind.rs`, and the typed key in `key/`, must be added together. Skipping any of the three leaves the catalog
14//! inconsistent: an object with no on-disk identity, or a key with no contract, or a contract that no key can point at.
15
16pub mod authentication;
17pub mod binding;
18pub mod change;
19pub mod column;
20pub mod column_snapshot;
21pub mod config;
22pub mod dictionary;
23pub mod flow;
24pub mod handler;
25pub mod id;
26pub mod identity;
27pub mod key;
28pub mod layout;
29pub mod migration;
30pub mod namespace;
31pub mod policy;
32pub mod procedure;
33pub mod property;
34pub mod ringbuffer;
35pub mod series;
36pub mod shape;
37pub mod sink;
38pub mod source;
39pub mod subscription;
40pub mod sumtype;
41pub mod table;
42pub mod task;
43pub mod test;
44pub mod token;
45pub mod view;
46pub mod vtable;