Skip to main content

exo_core/
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//! # exo-core
18//!
19//! Foundational crate for the EXOCHAIN constitutional trust fabric.
20//!
21//! **Determinism contract**: this crate enforces absolute determinism.
22//! - No floating-point arithmetic.
23//! - `BTreeMap` only — `HashMap` is never exposed.
24//! - Canonical CBOR serialization for all hashing.
25//! - Hybrid Logical Clock for causal ordering.
26//!
27//! All other EXOCHAIN crates depend on `exo-core`.
28
29#![cfg_attr(test, allow(clippy::expect_used, clippy::unwrap_used))]
30
31pub mod bcts;
32pub mod crypto;
33pub mod error;
34pub mod events;
35pub mod hash;
36pub mod hlc;
37pub mod invariants;
38pub mod types;
39
40// Re-export the most commonly used items at crate root for ergonomics.
41pub use error::{ExoError, Result};
42pub use types::{
43    CorrelationId, DeterministicMap, Did, Hash256, PqPublicKey, PqSecretKey, PublicKey,
44    SIGNER_PREFIX_AI, SIGNER_PREFIX_HUMAN, SecretKey, Signature, SignerType, Timestamp, Version,
45};