1#![recursion_limit = "1024"]
5#![cfg_attr(
6 not(test),
7 deny(
8 clippy::todo,
9 clippy::dbg_macro,
10 clippy::indexing_slicing,
11 clippy::get_unwrap
12 )
13)]
14#![cfg_attr(
15 doc,
16 deny(rustdoc::all),
17 allow(
18 rustdoc::private_intra_doc_links,
21 rustdoc::private_doc_tests,
23 rustdoc::missing_crate_level_docs
24 )
25)]
26
27cfg_if::cfg_if! {
28 if #[cfg(feature = "rustalloc")] {
29 } else if #[cfg(feature = "jemalloc")] {
30 use crate::cli_shared::tikv_jemallocator::Jemalloc;
31 #[global_allocator]
32 static GLOBAL: Jemalloc = Jemalloc;
33 } else if #[cfg(feature = "system-alloc")] {
34 use std::alloc::System;
35 #[global_allocator]
36 static GLOBAL: System = System;
37 }
38}
39
40mod auth;
41mod beacon;
42mod blocks;
43mod chain;
44mod chain_sync;
45mod cid_collections;
46mod cli;
47mod cli_shared;
48mod daemon;
49mod db;
50mod dev;
51mod documentation;
52mod eth;
53mod f3;
54mod fil_cns;
55mod genesis;
56mod health;
57mod interpreter;
58mod ipld;
59mod key_management;
60mod libp2p;
61mod libp2p_bitswap;
62mod lotus_json;
63mod message;
64mod message_pool;
65mod metrics;
66mod networks;
67mod rpc;
68mod shim;
69mod state_manager;
70mod state_migration;
71mod statediff;
72#[cfg(any(test, doc))]
73mod test_utils;
74mod tool;
75mod utils;
76mod wallet;
77
78mod prelude {
79 pub use crate::{
80 db::Blockstore,
81 utils::{ShallowClone, get_size::CidWrapper},
82 };
83 pub use ahash::{HashMapExt as _, HashSetExt as _};
84 pub use anyhow::Context as _;
85 pub use cid::Cid;
86 pub use itertools::Itertools as _;
87 pub use std::{ops::Deref as _, sync::Arc};
88}
89
90#[cfg(feature = "doctest-private")]
98#[doc(hidden)]
99pub mod doctest_private {
100 pub use crate::{
101 blocks::{CachingBlockHeader, Ticket, TipsetKey},
102 cli::humantoken::{TokenAmountPretty, parse},
103 shim::{
104 address::Address, crypto::Signature, econ::TokenAmount, error::ExitCode,
105 randomness::Randomness, sector::RegisteredSealProof, state_tree::ActorState,
106 version::NetworkVersion,
107 },
108 utils::io::progress_log::WithProgress,
109 utils::net::{DownloadFileOption, download_to},
110 utils::{encoding::blake2b_256, encoding::keccak_256, io::read_toml},
111 };
112}
113
114#[cfg(feature = "benchmark-private")]
117#[doc(hidden)]
118pub mod benchmark_private;
119
120#[cfg(feature = "interop-tests-private")]
123#[doc(hidden)]
124pub mod interop_tests_private {
125 pub mod libp2p {
126 pub use crate::libp2p::*;
127 }
128 pub mod libp2p_bitswap {
129 pub use crate::libp2p_bitswap::*;
130 }
131 pub mod beacon {
132 pub use crate::beacon::BeaconEntry;
133 }
134}
135
136pub use auth::{JWT_IDENTIFIER, verify_token};
138pub use cli::main::main as forest_main;
139pub use cli_shared::cli::{Client, Config};
140pub use daemon::main::main as forestd_main;
141pub use dev::main::main as forest_dev_main;
142pub use key_management::{
143 ENCRYPTED_KEYSTORE_NAME, FOREST_KEYSTORE_PHRASE_ENV, KEYSTORE_NAME, KeyStore, KeyStoreConfig,
144};
145pub use tool::main::main as forest_tool_main;
146pub use wallet::main::main as forest_wallet_main;