Skip to main content

drive_abci/
lib.rs

1//! Dash ABCI
2//!
3//! ABCI is an interface that defines the boundary between the replication engine (the blockchain),
4//! and the state machine (the application). Using a socket protocol, a consensus engine running
5//! in one process can manage an application state running in another.
6//!
7
8#![cfg_attr(docsrs, feature(doc_cfg))]
9// Coding conventions
10#![forbid(unsafe_code)]
11#![deny(missing_docs)]
12#![allow(clippy::result_large_err)]
13#![allow(clippy::large_enum_variant)]
14// Test-code heavy lints. The tests in this crate lean on helpers that take
15// `&Vec<_>` slices, clone `Copy` types for readability, or reference
16// cloned slices. Fixing each site individually would be churn with no runtime
17// benefit, so we suppress the lints at the crate level.
18#![cfg_attr(test, allow(unused_imports))]
19#![cfg_attr(test, allow(unused_mut))]
20#![cfg_attr(test, allow(unused_variables))]
21#![cfg_attr(test, allow(clippy::useless_vec))]
22#![cfg_attr(test, allow(clippy::module_inception))]
23#![cfg_attr(test, allow(clippy::cloned_ref_to_slice_refs))]
24#![cfg_attr(test, allow(clippy::clone_on_copy))]
25#![cfg_attr(test, allow(clippy::useless_conversion))]
26#![cfg_attr(test, allow(clippy::unnecessary_mut_passed))]
27#![cfg_attr(test, allow(clippy::for_kv_map))]
28#![cfg_attr(test, allow(clippy::needless_borrow))]
29#![cfg_attr(test, allow(clippy::ptr_arg))]
30#![cfg_attr(test, allow(clippy::double_ended_iterator_last))]
31#![cfg_attr(test, allow(clippy::redundant_closure))]
32#![cfg_attr(test, allow(clippy::type_complexity))]
33#![cfg_attr(test, allow(clippy::too_many_arguments))]
34#![cfg_attr(test, allow(clippy::needless_borrows_for_generic_args))]
35#![cfg_attr(test, allow(clippy::items_after_test_module))]
36#![cfg_attr(test, allow(clippy::collapsible_match))]
37#![cfg_attr(test, allow(clippy::same_item_push))]
38#![cfg_attr(test, allow(clippy::doc_lazy_continuation))]
39#![cfg_attr(test, allow(clippy::assertions_on_constants))]
40#![cfg_attr(test, allow(clippy::iter_kv_map))]
41#![cfg_attr(test, allow(clippy::let_unit_value))]
42#![cfg_attr(test, allow(clippy::suspicious_open_options))]
43#![cfg_attr(test, allow(clippy::unnecessary_map_or))]
44#![cfg_attr(test, allow(dead_code))]
45#![cfg_attr(test, allow(clippy::unnecessary_unwrap))]
46#![cfg_attr(test, allow(irrefutable_let_patterns))]
47
48/// ABCI module
49pub mod abci;
50
51/// Errors module
52pub mod error;
53
54/// Execution module
55pub mod execution;
56
57/// Platform configuration
58pub mod config;
59
60/// Logging and tracing
61pub mod logging;
62
63/// Anything related to 3rd party RPC
64pub mod rpc;
65
66/// Core utilities
67pub mod core;
68
69/// Metrics subsystem
70pub mod metrics;
71
72/// Test helpers and fixtures
73#[cfg(any(feature = "mocks", test))]
74pub mod test;
75
76/// Mimic of block execution for tests
77#[cfg(any(feature = "mocks", test))]
78pub mod mimic;
79/// Platform module
80pub mod platform_types;
81/// Querying
82pub mod query;
83/// Various utils
84pub mod utils;
85
86/// Replay captured ABCI requests against drive-abci
87#[cfg(feature = "replay")]
88pub mod replay;
89/// Drive server
90pub mod server;
91/// Verification helpers
92pub mod verify;