kabu_core_components/
lib.rs1mod builder;
2mod kabu_builder;
3mod kabu_node;
4mod node;
5mod traits;
6
7pub use builder::{BuilderContext, Components, ComponentsBuilder, MevComponentChannels, MevComponents, MevComponentsBuilder};
8pub use kabu_builder::{KabuBuilder, KabuBuiltNode, KabuHandle};
9pub use kabu_node::PlaceholderComponent;
10pub use node::{DefaultKabuNodeComponentsBuilder, KabuComponentsSet, KabuNode, KabuNodeComponentsBuilder, KabuNodeTypes, WithKabuNode};
11pub use traits::{
12 BroadcasterBuilder, ConsensusBuilder, EstimatorBuilder, ExecutorBuilder, HealthMonitorBuilder as HealthMonitorBuilderTrait,
13 InitializerBuilder, MarketBuilder, MergerBuilder, MevNodeComponentsBuilder, MonitoringBuilder, NetworkBuilder, NodeComponentsBuilder,
14 PayloadBuilder, PoolBuilder, SignerBuilder as SignerBuilderTrait, StrategyBuilder, WebServerBuilder,
15};
16
17use eyre::Result;
18use reth_tasks::TaskExecutor;
19
20pub trait Component: Send + 'static {
22 fn spawn(self, executor: TaskExecutor) -> Result<()>
24 where
25 Self: Sized;
26
27 fn name(&self) -> &'static str;
29
30 fn check_readiness(&self) -> Result<()> {
32 Ok(())
33 }
34}