Struct nats::Options [−][src]
Connect options.
Implementations
impl Options
[src]
pub fn new() -> Options
[src]
Options
for establishing a new NATS Connection
.
Example
let options = nats::Options::new(); let nc = options.connect("demo.nats.io")?;
pub fn with_token(token: &str) -> Options
[src]
Authenticate with NATS using a token.
Example
let nc = nats::Options::with_token("t0k3n!") .connect("demo.nats.io")?;
pub fn with_user_pass(user: &str, password: &str) -> Options
[src]
Authenticate with NATS using a username and password.
Example
let nc = nats::Options::with_user_pass("derek", "s3cr3t!") .connect("demo.nats.io")?;
pub fn with_credentials(path: impl AsRef<Path>) -> Options
[src]
Authenticate with NATS using a .creds
file.
Example
let nc = nats::Options::with_credentials("path/to/my.creds") .connect("connect.ngs.global")?;
pub fn with_jwt<J, S>(jwt_cb: J, sig_cb: S) -> Options where
J: Fn() -> Result<String> + Send + Sync + 'static,
S: Fn(&[u8]) -> Vec<u8> + Send + Sync + 'static,
[src]
J: Fn() -> Result<String> + Send + Sync + 'static,
S: Fn(&[u8]) -> Vec<u8> + Send + Sync + 'static,
Authenticate with a function that loads user JWT and a signature function.
Example
let seed = "SUANQDPB2RUOE4ETUA26CNX7FUKE5ZZKFCQIIW63OX225F2CO7UEXTM7ZY"; let kp = nkeys::KeyPair::from_seed(seed).unwrap(); fn load_jwt() -> std::io::Result<String> { todo!() } let nc = nats::Options::with_jwt(load_jwt, move |nonce| kp.sign(nonce).unwrap()) .connect("localhost")?;
pub fn with_nkey<F>(nkey: &str, sig_cb: F) -> Options where
F: Fn(&[u8]) -> Vec<u8> + Send + Sync + 'static,
[src]
F: Fn(&[u8]) -> Vec<u8> + Send + Sync + 'static,
Authenticate with NATS using a public key and a signature function.
Example
let nkey = "UAMMBNV2EYR65NYZZ7IAK5SIR5ODNTTERJOBOF4KJLMWI45YOXOSWULM"; let seed = "SUANQDPB2RUOE4ETUA26CNX7FUKE5ZZKFCQIIW63OX225F2CO7UEXTM7ZY"; let kp = nkeys::KeyPair::from_seed(seed).unwrap(); let nc = nats::Options::with_nkey(nkey, move |nonce| kp.sign(nonce).unwrap()) .connect("localhost")?;
pub fn client_cert(
self,
cert: impl AsRef<Path>,
key: impl AsRef<Path>
) -> Options
[src]
self,
cert: impl AsRef<Path>,
key: impl AsRef<Path>
) -> Options
Set client certificate and private key files.
Example
let nc = nats::Options::new() .client_cert("client-cert.pem", "client-key.pem") .connect("nats://localhost:4443")?;
pub fn with_name(self, name: &str) -> Options
[src]
Add a name option to this configuration.
Example
let nc = nats::Options::new() .with_name("My App") .connect("demo.nats.io")?;
pub fn no_echo(self) -> Options
[src]
Select option to not deliver messages that we have published.
Example
let nc = nats::Options::new() .no_echo() .connect("demo.nats.io")?;
pub fn max_reconnects<T: Into<Option<usize>>>(
self,
max_reconnects: T
) -> Options
[src]
self,
max_reconnects: T
) -> Options
Set the maximum number of reconnect attempts. If no servers remain that are under this threshold, then no further reconnect shall be attempted. The reconnect attempt for a server is reset upon successfull connection. If None then there is no maximum number of attempts.
Example
let nc = nats::Options::new() .max_reconnects(3) .connect("demo.nats.io")?;
pub fn reconnect_buffer_size(self, reconnect_buffer_size: usize) -> Options
[src]
Set the maximum amount of bytes to buffer when accepting outgoing traffic in disconnected mode.
The default value is 8mb.
Example
let nc = nats::Options::new() .reconnect_buffer_size(64 * 1024) .connect("demo.nats.io")?;
pub fn connect(self, nats_url: &str) -> Result<Connection>
[src]
Establish a Connection
with a NATS server.
Multiple servers may be specified by separating them with commas.
Example
let options = nats::Options::new(); let nc = options.connect("demo.nats.io")?;
In the below case, the second server is configured
to use TLS but the first one is not. Using the
tls_required
method can ensure that all
servers are connected to with TLS, if that is
your intention.
let options = nats::Options::new(); let nc = options.connect("nats://demo.nats.io:4222,tls://demo.nats.io:4443")?;
pub fn disconnect_callback<F>(self, cb: F) -> Self where
F: Fn() + Send + Sync + 'static,
[src]
F: Fn() + Send + Sync + 'static,
Set a callback to be executed when connectivity to a server has been lost.
Example
let nc = nats::Options::new() .disconnect_callback(|| println!("connection has been lost")) .connect("demo.nats.io")?;
pub fn reconnect_callback<F>(self, cb: F) -> Self where
F: Fn() + Send + Sync + 'static,
[src]
F: Fn() + Send + Sync + 'static,
Set a callback to be executed when connectivity to a server has been reestablished.
Example
let nc = nats::Options::new() .reconnect_callback(|| println!("connection has been reestablished")) .connect("demo.nats.io")?;
pub fn jetstream_api_prefix(self, jetstream_prefix: String) -> Self
[src]
Set a custom JetStream
API prefix. This is useful
when using JetStream
through exports/imports.
Example
let nc = nats::Options::new() .jetstream_api_prefix("some_exported_prefix".to_string()) .connect("demo.nats.io")?; nc.drain().unwrap();
pub fn close_callback<F>(self, cb: F) -> Self where
F: Fn() + Send + Sync + 'static,
[src]
F: Fn() + Send + Sync + 'static,
Set a callback to be executed when the client has been closed due to exhausting reconnect retries to known servers or by completing a drain request.
Example
let nc = nats::Options::new() .close_callback(|| println!("connection has been closed")) .connect("demo.nats.io")?; nc.drain().unwrap();
pub fn reconnect_delay_callback<F>(self, cb: F) -> Self where
F: Fn(usize) -> Duration + Send + Sync + 'static,
[src]
F: Fn(usize) -> Duration + Send + Sync + 'static,
Set a callback to be executed for calculating the backoff duration to wait before a server reconnection attempt.
The function takes the number of reconnects as an argument
and returns the Duration
that should be waited before
making the next connection attempt.
It is recommended that some random jitter is added to
your returned Duration
.
Example
let nc = nats::Options::new() .reconnect_delay_callback(|c| Duration::from_millis(std::cmp::min((c * 100) as u64, 8000))) .connect("demo.nats.io")?;
pub fn tls_required(self, tls_required: bool) -> Options
[src]
Setting this requires that TLS be set for all server connections.
If you only want to use TLS for some server connections, you may
declare them separately in the connect string by prefixing them
with tls://host:port
instead of nats://host:port
.
Examples
let nc = nats::Options::new() .tls_required(true) .connect("tls://demo.nats.io:4443")?;
pub fn add_root_certificate(self, path: impl AsRef<Path>) -> Options
[src]
Adds a root certificate file.
The file must be PEM encoded. All certificates in the file will be used.
Examples
let nc = nats::Options::new() .add_root_certificate("my-certs.pem") .connect("tls://demo.nats.io:4443")?;
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Options
impl Send for Options
impl Sync for Options
impl Unpin for Options
impl !UnwindSafe for Options
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,