#![cfg_attr(
feature = "nightly",
doc = include_str!("../../../DEVELOPER.md")
)]
#![doc = include_str!("../README.md")]
mod admin;
mod error;
mod fluvio;
mod offset;
mod producer;
mod sync;
pub mod config;
pub mod consumer;
pub mod metrics;
pub mod spu;
pub use error::FluvioError;
pub use config::{FluvioClusterConfig, FluvioConfig};
pub use producer::{
ProducerCallback, SharedProducerCallback, ProduceCompletionBatchEvent,
TopicProducerConfigBuilder, TopicProducerConfig, TopicProducer, TopicProducerPool, RecordKey,
ProduceOutput, FutureRecordMetadata, RecordMetadata, DeliverySemantic, RetryPolicy,
RetryStrategy, Partitioner, PartitionerConfig, ProducerError,
};
#[cfg(feature = "smartengine")]
pub use producer::{SmartModuleChainBuilder, SmartModuleConfig, SmartModuleInitialData};
pub use fluvio_spu_schema::Isolation;
pub use consumer::{
PartitionConsumer, ConsumerConfig, MultiplePartitionConsumer, PartitionSelectionStrategy,
SmartModuleInvocation, SmartModuleInvocationWasm, SmartModuleKind, SmartModuleContextData,
SmartModuleExtraParams,
};
pub use offset::Offset;
pub use crate::admin::FluvioAdmin;
pub use crate::fluvio::Fluvio;
pub use fluvio_compression::Compression;
pub use fluvio_types::PartitionId;
use tracing::instrument;
const MINIMUM_PLATFORM_VERSION: &str = "0.9.0";
pub(crate) const VERSION: &str = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/VERSION"));
#[instrument(skip(topic))]
pub async fn producer(
topic: impl Into<String>,
) -> anyhow::Result<TopicProducer<spu::SpuSocketPool>> {
let fluvio = Fluvio::connect().await?;
let producer = fluvio.topic_producer(topic).await?;
Ok(producer)
}
#[deprecated(
since = "0.21.8",
note = "use `Fluvio::consumer_with_config()` instead"
)]
#[instrument(skip(topic, partition))]
#[allow(deprecated)]
pub async fn consumer(
topic: impl Into<String>,
partition: PartitionId,
) -> anyhow::Result<PartitionConsumer> {
let fluvio = Fluvio::connect().await?;
let consumer = fluvio.partition_consumer(topic, partition).await?;
Ok(consumer)
}
pub mod metadata {
pub use fluvio_sc_schema::AdminSpec;
pub mod topic {
pub use fluvio_sc_schema::topic::*;
}
pub mod smartmodule {
pub use fluvio_sc_schema::smartmodule::*;
}
pub mod customspu {
pub use fluvio_sc_schema::customspu::*;
}
pub mod spu {
pub use fluvio_sc_schema::spu::*;
}
pub mod spg {
pub use fluvio_sc_schema::spg::*;
}
pub mod partition {
pub use fluvio_sc_schema::partition::*;
}
pub mod objects {
pub use fluvio_sc_schema::objects::*;
}
pub mod tableformat {
pub use fluvio_sc_schema::tableformat::*;
}
pub mod core {
pub use fluvio_sc_schema::core::*;
}
pub mod store {
pub use fluvio_sc_schema::store::*;
}
}
pub mod dataplane {
pub use fluvio_protocol::*;
}