Skip to main content

rivven_core/
lib.rs

1pub mod auth;
2pub mod backpressure;
3pub mod bloom;
4pub mod buffer_pool;
5pub mod concurrent;
6pub mod config;
7pub mod consumer_group;
8pub mod error;
9pub mod idempotent;
10pub mod message;
11pub mod metrics;
12pub mod offset;
13pub mod partition;
14pub mod quota;
15pub mod schema_registry;
16pub mod serde_utils;
17pub mod service_auth;
18pub mod storage;
19pub mod topic;
20pub mod topic_config;
21pub mod transaction;
22pub mod validation;
23pub mod vectorized;
24pub mod wal;
25pub mod zero_copy;
26
27#[cfg(feature = "compression")]
28pub mod compression;
29
30pub mod async_io;
31
32// Encryption at rest (optional but default)
33#[cfg(feature = "encryption")]
34pub mod encryption;
35
36// Cedar authorization (optional)
37#[cfg(feature = "cedar")]
38pub mod cedar_authz;
39
40// OIDC authentication (optional)
41#[cfg(feature = "oidc")]
42pub mod oidc;
43
44// TLS/mTLS support (optional)
45#[cfg(feature = "tls")]
46pub mod tls;
47
48pub use backpressure::{
49    AdaptiveRateLimiter, AdaptiveRateLimiterConfig, AdaptiveStatsSnapshot, BackpressureChannel,
50    ChannelStatsSnapshot, CircuitBreaker, CircuitBreakerConfig, CircuitBreakerStatsSnapshot,
51    CircuitState, CreditFlowControl, CreditStatsSnapshot, TokenBucket, TokenBucketStatsSnapshot,
52    WindowedRateTracker,
53};
54pub use bloom::{
55    AdaptiveBatcher, BatchConfig, BatcherStats, BloomFilter, CountingBloomFilter, HyperLogLog,
56    OffsetBloomFilter,
57};
58pub use buffer_pool::{BufferChain, BufferPool, BufferPoolConfig, PooledBuffer, SizeClass};
59pub use concurrent::{
60    AppendLogConfig, AppendOnlyLog, ConcurrentHashMap, ConcurrentSkipList, LockFreeQueue,
61    QueueStats,
62};
63pub use config::Config;
64pub use error::{Error, Result};
65pub use idempotent::{
66    IdempotentProducerManager, IdempotentProducerStats, PartitionProducerState, ProducerEpoch,
67    ProducerId, ProducerMetadata, SequenceNumber, SequenceResult, NO_SEQUENCE,
68};
69pub use message::Message;
70pub use offset::OffsetManager;
71pub use partition::Partition;
72pub use quota::{
73    EntityQuotaStats, QuotaConfig, QuotaEntity, QuotaEntityType, QuotaManager, QuotaResult,
74    QuotaStats, QuotaStatsSnapshot, QuotaType, DEFAULT_CONSUME_BYTES_RATE,
75    DEFAULT_PRODUCE_BYTES_RATE, DEFAULT_REQUEST_RATE, UNLIMITED,
76};
77pub use schema_registry::{MemorySchemaRegistry, SchemaRegistry};
78pub use storage::{
79    ColdStorageBackend, ColdStorageConfig, HotTier, HotTierStats, LocalFsColdStorage,
80    SegmentMetadata, StorageTier, TieredStorage, TieredStorageConfig, TieredStorageStats,
81    TieredStorageStatsSnapshot, WarmTier, WarmTierStats,
82};
83pub use topic::{Topic, TopicManager};
84pub use topic_config::{
85    CleanupPolicy, CompressionType, ConfigValue, TopicConfig, TopicConfigManager,
86    DEFAULT_MAX_MESSAGE_BYTES, DEFAULT_RETENTION_BYTES, DEFAULT_RETENTION_MS,
87    DEFAULT_SEGMENT_BYTES, DEFAULT_SEGMENT_MS,
88};
89pub use transaction::{
90    PendingWrite, Transaction, TransactionCoordinator, TransactionId, TransactionMarker,
91    TransactionOffsetCommit, TransactionPartition, TransactionResult, TransactionState,
92    TransactionStats, TransactionStatsSnapshot, DEFAULT_TRANSACTION_TIMEOUT,
93    MAX_PENDING_TRANSACTIONS,
94};
95pub use vectorized::{
96    BatchDecoder, BatchEncoder, BatchMessage, BatchProcessor, RecordBatch, RecordBatchIter,
97};
98pub use wal::{
99    GroupCommitWal, RecordType, SyncMode, WalConfig, WalReader, WalRecord, WalStatsSnapshot,
100};
101pub use zero_copy::{
102    BufferRef, BufferSlice, ConsumedMessage, SmallVec, ZeroCopyBuffer, ZeroCopyBufferPool,
103    ZeroCopyConsumer, ZeroCopyProducer,
104};
105
106pub use async_io::{AsyncFile, AsyncIo, AsyncIoConfig, AsyncSegment, BatchBuilder};
107pub use auth::{
108    AclEntry, AuthConfig, AuthError, AuthManager, AuthResult, AuthSession, PasswordHash,
109    Permission, Principal, PrincipalType, ResourceType, Role, SaslPlainAuth, SaslScramAuth,
110    ScramState,
111};
112pub use service_auth::{
113    ApiKey, AuthMethod, ServiceAccount, ServiceAuthConfig, ServiceAuthError, ServiceAuthManager,
114    ServiceAuthRequest, ServiceAuthResponse, ServiceAuthResult, ServiceSession,
115};
116pub use validation::{ValidationError, Validator};
117
118// TLS re-exports
119#[cfg(feature = "tls")]
120pub use tls::{
121    certificate_fingerprint, generate_self_signed, load_certificates, load_private_key,
122    CertificateSource, CertificateWatcher, MtlsMode, PrivateKeySource, TlsAcceptor,
123    TlsClientStream, TlsConfig, TlsConfigBuilder, TlsConnector, TlsError, TlsIdentity, TlsResult,
124    TlsSecurityAudit, TlsServerStream, TlsVersion,
125};