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 io_uring;
11pub mod message;
12pub mod metrics;
13pub mod offset;
14pub mod partition;
15pub mod quota;
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#[cfg(feature = "cedar")]
40pub use cedar_authz::{
41    AuthzContext, AuthzDecision, CedarAuthorizer, CedarError, CedarResult, RivvenAction,
42    RivvenResource,
43};
44
45// OIDC authentication (optional)
46#[cfg(feature = "oidc")]
47pub mod oidc;
48
49// TLS/mTLS support (optional)
50#[cfg(feature = "tls")]
51pub mod tls;
52
53pub use backpressure::{
54    AdaptiveRateLimiter, AdaptiveRateLimiterConfig, AdaptiveStatsSnapshot, BackpressureChannel,
55    ChannelStatsSnapshot, CircuitBreaker, CircuitBreakerConfig, CircuitBreakerStatsSnapshot,
56    CircuitState, CreditFlowControl, CreditStatsSnapshot, TokenBucket, TokenBucketStatsSnapshot,
57    WindowedRateTracker,
58};
59pub use bloom::{
60    AdaptiveBatcher, BatchConfig, BatcherStats, BloomFilter, CountingBloomFilter, HyperLogLog,
61    OffsetBloomFilter,
62};
63pub use buffer_pool::{BufferChain, BufferPool, BufferPoolConfig, PooledBuffer, SizeClass};
64pub use concurrent::{
65    AppendLogConfig, AppendOnlyLog, ConcurrentHashMap, ConcurrentSkipList, LockFreeQueue,
66    QueueStats,
67};
68pub use config::Config;
69pub use error::{Error, Result};
70pub use idempotent::{
71    IdempotentProducerManager, IdempotentProducerStats, PartitionProducerState, ProducerEpoch,
72    ProducerId, ProducerMetadata, SequenceNumber, SequenceResult, NO_SEQUENCE,
73};
74pub use message::Message;
75pub use offset::OffsetManager;
76pub use partition::Partition;
77pub use quota::{
78    EntityQuotaStats, QuotaConfig, QuotaEntity, QuotaEntityType, QuotaManager, QuotaResult,
79    QuotaStats, QuotaStatsSnapshot, QuotaType, DEFAULT_CONSUME_BYTES_RATE,
80    DEFAULT_PRODUCE_BYTES_RATE, DEFAULT_REQUEST_RATE, UNLIMITED,
81};
82pub use storage::{
83    ColdStorageBackend, ColdStorageConfig, HotTier, HotTierStats, LocalFsColdStorage,
84    SegmentMetadata, StorageTier, TieredStorage, TieredStorageConfig, TieredStorageStats,
85    TieredStorageStatsSnapshot, WarmTier, WarmTierStats,
86};
87pub use topic::{Topic, TopicManager};
88pub use topic_config::{
89    CleanupPolicy, CompressionType, ConfigValue, TopicConfig, TopicConfigManager,
90    DEFAULT_MAX_MESSAGE_BYTES, DEFAULT_RETENTION_BYTES, DEFAULT_RETENTION_MS,
91    DEFAULT_SEGMENT_BYTES, DEFAULT_SEGMENT_MS,
92};
93pub use transaction::{
94    AbortedTransaction, AbortedTransactionIndex, IsolationLevel, PendingWrite, Transaction,
95    TransactionCoordinator, TransactionId, TransactionMarker, TransactionOffsetCommit,
96    TransactionPartition, TransactionResult, TransactionState, TransactionStats,
97    TransactionStatsSnapshot, DEFAULT_TRANSACTION_TIMEOUT, MAX_PENDING_TRANSACTIONS,
98};
99pub use vectorized::{
100    BatchDecoder, BatchEncoder, BatchMessage, BatchProcessor, RecordBatch, RecordBatchIter,
101};
102pub use wal::{
103    GroupCommitWal, RecordType, SyncMode, WalConfig, WalReader, WalRecord, WalStatsSnapshot,
104};
105pub use zero_copy::{
106    BufferRef, BufferSlice, ConsumedMessage, SmallVec, ZeroCopyBuffer, ZeroCopyBufferPool,
107    ZeroCopyConsumer, ZeroCopyProducer,
108};
109
110pub use async_io::{AsyncFile, AsyncIo, AsyncIoConfig, AsyncSegment, BatchBuilder};
111pub use auth::{
112    AclEntry, AuthConfig, AuthError, AuthManager, AuthResult, AuthSession, PasswordHash,
113    Permission, Principal, PrincipalType, ResourceType, Role, SaslPlainAuth, SaslScramAuth,
114    ScramState,
115};
116pub use io_uring::{
117    is_io_uring_available, AsyncReader, AsyncWriter, BatchExecutor, BatchReadResult, BatchStats,
118    IoBatch, IoOperation, IoUringConfig, IoUringStats, IoUringStatsSnapshot, SegmentReader,
119    WalWriter,
120};
121pub use service_auth::{
122    ApiKey, AuthMethod, ServiceAccount, ServiceAuthConfig, ServiceAuthError, ServiceAuthManager,
123    ServiceAuthRequest, ServiceAuthResponse, ServiceAuthResult, ServiceSession,
124};
125pub use validation::{ValidationError, Validator};
126
127// TLS re-exports
128#[cfg(feature = "tls")]
129pub use tls::{
130    certificate_fingerprint, generate_self_signed, load_certificates, load_private_key,
131    CertificateSource, CertificateWatcher, MtlsMode, PrivateKeySource, TlsAcceptor,
132    TlsClientStream, TlsConfig, TlsConfigBuilder, TlsConnector, TlsError, TlsIdentity, TlsResult,
133    TlsSecurityAudit, TlsServerStream, TlsVersion,
134};