pub struct JetStream { /* private fields */ }
Expand description
A context for performing JetStream
operations.
Implementations
sourceimpl JetStream
impl JetStream
sourcepub fn new(connection: Connection, options: JetStreamOptions) -> Self
pub fn new(connection: Connection, options: JetStreamOptions) -> Self
Create a new JetStream
context.
sourcepub fn publish(&self, subject: &str, data: impl AsRef<[u8]>) -> Result<PublishAck>
pub fn publish(&self, subject: &str, data: impl AsRef<[u8]>) -> Result<PublishAck>
Publishes a message to JetStream
sourcepub fn publish_with_options(
&self,
subject: &str,
data: impl AsRef<[u8]>,
options: &PublishOptions
) -> Result<PublishAck>
pub fn publish_with_options(
&self,
subject: &str,
data: impl AsRef<[u8]>,
options: &PublishOptions
) -> Result<PublishAck>
Publishes a message to JetStream
with the given options.
sourcepub fn publish_message(&self, message: &Message) -> Result<PublishAck>
pub fn publish_message(&self, message: &Message) -> Result<PublishAck>
Publishes a Message
to JetStream
.
sourcepub fn publish_message_with_options(
&self,
message: &Message,
options: &PublishOptions
) -> Result<PublishAck>
pub fn publish_message_with_options(
&self,
message: &Message,
options: &PublishOptions
) -> Result<PublishAck>
Publishes a Message
to JetStream
with the given options.
sourcepub fn subscribe(&self, subject: &str) -> Result<PushSubscription>
pub fn subscribe(&self, subject: &str) -> Result<PushSubscription>
Create an ephemeral push consumer subscription.
Example
let subscription = context.subscribe("ephemeral")?;
println!("Received message {:?}", subscription.next());
sourcepub fn pull_subscribe(&self, subject: &str) -> Result<PullSubscription>
pub fn pull_subscribe(&self, subject: &str) -> Result<PullSubscription>
Creates a pull subscription.
Example
context.publish("next", b"foo")?;
}
let consumer = context.pull_subscribe("next")?;
consumer.fetch_with_handler(10, |message| {
println!("received message: {:?}", message);
Ok(())
})?;
sourcepub fn pull_subscribe_with_options(
&self,
subject: &str,
options: &PullSubscribeOptions
) -> Result<PullSubscription>
pub fn pull_subscribe_with_options(
&self,
subject: &str,
options: &PullSubscribeOptions
) -> Result<PullSubscription>
Creates a PullSubscription
with options.
sourcepub fn subscribe_with_options(
&self,
subject: &str,
options: &SubscribeOptions
) -> Result<PushSubscription>
pub fn subscribe_with_options(
&self,
subject: &str,
options: &SubscribeOptions
) -> Result<PushSubscription>
Creates a push consumer subscription with options.
If said consumer is named and already exists, this will attempt to bind this consumer to that one, else will attempt to create a new internally managed consumer resource.
Example
let sub = js.subscribe_with_options("foo", &SubscribeOptions::bind("existing_stream".to_string(), "existing_consumer".to_string()))?;
sourcepub fn queue_subscribe(
&self,
subject: &str,
queue: &str
) -> Result<PushSubscription>
pub fn queue_subscribe(
&self,
subject: &str,
queue: &str
) -> Result<PushSubscription>
Creates a push-based consumer subscription with a queue group. The queue group will be used as the durable name.
Example
let subscription = context.queue_subscribe("queue", "queue_group")?;
sourcepub fn queue_subscribe_with_options(
&self,
subject: &str,
queue: &str,
options: &SubscribeOptions
) -> Result<PushSubscription>
pub fn queue_subscribe_with_options(
&self,
subject: &str,
queue: &str,
options: &SubscribeOptions
) -> Result<PushSubscription>
Creates a push-based consumer subscription with a queue group and options.
If a durable name is not set within the options provided options then the queue group will be used as the durable name.
sourcepub fn add_stream<S>(&self, stream_config: S) -> Result<StreamInfo>where
StreamConfig: From<S>,
pub fn add_stream<S>(&self, stream_config: S) -> Result<StreamInfo>where
StreamConfig: From<S>,
Create a JetStream
stream.
sourcepub fn update_stream(&self, config: &StreamConfig) -> Result<StreamInfo>
pub fn update_stream(&self, config: &StreamConfig) -> Result<StreamInfo>
Update a JetStream
stream.
sourcepub fn stream_names(&self) -> PagedIterator<'_, String>ⓘNotable traits for PagedIterator<'a, T>impl<'a, T> Iterator for PagedIterator<'a, T>where
T: DeserializeOwned + Debug, type Item = Result<T>;
pub fn stream_names(&self) -> PagedIterator<'_, String>ⓘNotable traits for PagedIterator<'a, T>impl<'a, T> Iterator for PagedIterator<'a, T>where
T: DeserializeOwned + Debug, type Item = Result<T>;
T: DeserializeOwned + Debug, type Item = Result<T>;
List all JetStream
stream names. If you also want stream information,
use the list_streams
method instead.
sourcepub fn list_streams(&self) -> PagedIterator<'_, StreamInfo>ⓘNotable traits for PagedIterator<'a, T>impl<'a, T> Iterator for PagedIterator<'a, T>where
T: DeserializeOwned + Debug, type Item = Result<T>;
pub fn list_streams(&self) -> PagedIterator<'_, StreamInfo>ⓘNotable traits for PagedIterator<'a, T>impl<'a, T> Iterator for PagedIterator<'a, T>where
T: DeserializeOwned + Debug, type Item = Result<T>;
T: DeserializeOwned + Debug, type Item = Result<T>;
List all JetStream
streams.
sourcepub fn list_consumers<S>(
&self,
stream: S
) -> Result<PagedIterator<'_, ConsumerInfo>>where
S: AsRef<str>,
pub fn list_consumers<S>(
&self,
stream: S
) -> Result<PagedIterator<'_, ConsumerInfo>>where
S: AsRef<str>,
List JetStream
consumers for a stream.
sourcepub fn stream_info<S: AsRef<str>>(&self, stream: S) -> Result<StreamInfo>
pub fn stream_info<S: AsRef<str>>(&self, stream: S) -> Result<StreamInfo>
Query JetStream
stream information.
sourcepub fn purge_stream<S: AsRef<str>>(&self, stream: S) -> Result<PurgeResponse>
pub fn purge_stream<S: AsRef<str>>(&self, stream: S) -> Result<PurgeResponse>
Purge JetStream
stream messages.
sourcepub fn purge_stream_subject<S: AsRef<str>>(
&self,
stream: S,
filter_subject: &str
) -> Result<PurgeResponse>
pub fn purge_stream_subject<S: AsRef<str>>(
&self,
stream: S,
filter_subject: &str
) -> Result<PurgeResponse>
Purge stream messages matching a subject.
sourcepub fn get_message<S: AsRef<str>>(
&self,
stream: S,
seq: u64
) -> Result<StreamMessage>
pub fn get_message<S: AsRef<str>>(
&self,
stream: S,
seq: u64
) -> Result<StreamMessage>
Get a message from a stream.
sourcepub fn get_last_message<S: AsRef<str>>(
&self,
stream_name: S,
stream_subject: &str
) -> Result<StreamMessage>
pub fn get_last_message<S: AsRef<str>>(
&self,
stream_name: S,
stream_subject: &str
) -> Result<StreamMessage>
Get the last message from a stream by subject
sourcepub fn delete_message<S: AsRef<str>>(
&self,
stream: S,
sequence_number: u64
) -> Result<bool>
pub fn delete_message<S: AsRef<str>>(
&self,
stream: S,
sequence_number: u64
) -> Result<bool>
Delete message in a JetStream
stream.
sourcepub fn add_consumer<S, C>(&self, stream: S, config: C) -> Result<ConsumerInfo>where
S: AsRef<str>,
ConsumerConfig: From<C>,
pub fn add_consumer<S, C>(&self, stream: S, config: C) -> Result<ConsumerInfo>where
S: AsRef<str>,
ConsumerConfig: From<C>,
Create a JetStream
consumer.
sourcepub fn delete_consumer<S, C>(&self, stream: S, consumer: C) -> Result<bool>where
S: AsRef<str>,
C: AsRef<str>,
pub fn delete_consumer<S, C>(&self, stream: S, consumer: C) -> Result<bool>where
S: AsRef<str>,
C: AsRef<str>,
Delete a JetStream
consumer.
sourcepub fn consumer_info<S, C>(&self, stream: S, consumer: C) -> Result<ConsumerInfo>where
S: AsRef<str>,
C: AsRef<str>,
pub fn consumer_info<S, C>(&self, stream: S, consumer: C) -> Result<ConsumerInfo>where
S: AsRef<str>,
C: AsRef<str>,
Query JetStream
consumer information.
sourcepub fn account_info(&self) -> Result<AccountInfo>
pub fn account_info(&self) -> Result<AccountInfo>
Query JetStream
account information.
sourceimpl JetStream
impl JetStream
sourcepub fn key_value(&self, bucket: &str) -> Result<Store>
Available on crate feature unstable
only.
pub fn key_value(&self, bucket: &str) -> Result<Store>
unstable
only.Bind to an existing key-value store bucket.
Example
context.create_key_value(&Config {
bucket: "key_value".to_string(),
..Default::default()
})?;
let key_value = context.key_value("key_value")?;
sourceimpl JetStream
impl JetStream
sourcepub fn create_object_store(&self, config: &Config) -> Result<ObjectStore>
Available on crate feature unstable
only.
pub fn create_object_store(&self, config: &Config) -> Result<ObjectStore>
unstable
only.Creates a new object store bucket.
Example
let bucket = context.create_object_store(&Config {
bucket: "create_object_store".to_string(),
..Default::default()
})?;
sourcepub fn object_store(&self, bucket_name: &str) -> Result<ObjectStore>
Available on crate feature unstable
only.
pub fn object_store(&self, bucket_name: &str) -> Result<ObjectStore>
unstable
only.Bind to an existing object store bucket.
Example
context.create_object_store(&Config {
bucket: "object_store".to_string(),
..Default::default()
})?;
let bucket = context.object_store("object_store")?;