exo_dag/lib.rs
1// Copyright 2026 Exochain Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at:
6//
7// https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// SPDX-License-Identifier: Apache-2.0
16
17//! EXOCHAIN append-only DAG with BFT consensus and Merkle structures.
18//!
19//! This crate provides:
20//! - An append-only directed acyclic graph (`dag`)
21//! - Validated persistent-store append with Byzantine clock defense (`append`)
22//! - Checkpoint finality aggregation (`checkpoint`)
23//! - BFT consensus over the DAG (`consensus`)
24//! - Sparse Merkle Tree for authenticated key-value storage (`smt`)
25//! - Merkle Mountain Range for append-only accumulation (`mmr`)
26//! - Storage abstraction (`store`)
27
28#![cfg_attr(test, allow(clippy::expect_used, clippy::unwrap_used))]
29
30pub mod append;
31pub mod checkpoint;
32pub mod consensus;
33pub mod dag;
34pub mod error;
35pub mod mmr;
36#[cfg(feature = "postgres")]
37pub mod pg_store;
38pub mod smt;
39pub mod store;