#![doc = include_str!("README.md")]
#![forbid(unsafe_code)]
mod broker;
mod claim;
mod clients;
mod context;
mod cursor;
#[cfg(feature = "dynamodb-lease")]
mod dynamo;
mod error;
#[cfg(feature = "testing")]
mod in_process;
mod lease;
mod message;
pub mod prelude;
mod publisher;
mod stream;
mod subscriber;
mod track;
#[doc(hidden)]
pub mod sealed {
#[diagnostic::on_unimplemented(
message = "`{Self}` is not a Kinesis publish policy",
note = "a Kinesis publish setting rides the position named right before it: \
`.out_reply(Publish::default()).partition_key(\"tenant-acme\")`"
)]
pub trait PolicyKey: Sized {
#[must_use]
fn with_partition_key(self, key: String) -> Self;
}
}
pub use broker::{ConnectedKinesisBroker, KinesisBroker};
pub use context::{KinesisBatchContext, KinesisContext, Position, SeekHandle};
#[cfg(feature = "dynamodb-lease")]
pub use dynamo::DynamoLeaseStore;
pub use error::KinesisError;
pub use lease::{LeaseError, LeaseKey, LeaseState, LeaseStore, MemoryLeaseStore, SHARD_END};
pub use message::{
KinesisMessage, KinesisPosition, PARTITION_KEY_HEADER, SEQUENCE_HEADER, SHARD_HEADER,
};
pub use publisher::{
KinesisPublish, KinesisPublishOptions, KinesisPublishSettings, KinesisPublishSteps,
KinesisPublisher,
};
pub use stream::{KinesisStream, KinesisSubscriberExt};
pub use subscriber::{KinesisSeeker, KinesisSubscriber};