carotte
Types
Configuration builder for creating a RabbitMQ client.
Use default_client() to create a builder with sensible defaults,
then chain the with_* functions to customize the configuration.
pub opaque type Builder
Errors that can occur when interacting with RabbitMQ.
pub type CarotteError {
Blocked
Closed
AuthFailure(String)
ProcessNotFound
AlreadyRegistered(String)
NotFound(String)
AccessRefused(String)
PreconditionFailed(String)
ResourceLocked(String)
ChannelClosed(String)
ConnectionRefused(String)
ConnectionTimeout(String)
FrameError(String)
InternalError(String)
InvalidPath(String)
NoRoute(String)
NotAllowed(String)
NotImplemented(String)
UnexpectedFrame(String)
CommandInvalid(String)
UnknownError(String)
}
Constructors
-
BlockedThe connection is blocked by the server due to resource constraints
-
ClosedThe connection or channel has been closed
-
AuthFailure(String)Authentication failed with the provided credentials
-
ProcessNotFoundThe specified process could not be found
-
AlreadyRegistered(String)The resource is already registered with the given name
-
NotFound(String)The requested resource was not found
-
AccessRefused(String)Access to the resource was refused
-
PreconditionFailed(String)A precondition for the operation failed
-
ResourceLocked(String)The resource is locked and cannot be accessed
-
ChannelClosed(String)The channel has been closed
-
ConnectionRefused(String)Connection to the server was refused
-
ConnectionTimeout(String)Connection attempt timed out
-
FrameError(String)An error occurred while processing AMQP frames
-
InternalError(String)An internal server error occurred
-
InvalidPath(String)The provided path is invalid
-
NoRoute(String)No route exists to the specified exchange or queue
-
NotAllowed(String)The requested operation is not allowed
-
NotImplemented(String)The requested feature is not implemented
-
UnexpectedFrame(String)An unexpected frame was received
-
CommandInvalid(String)The AMQP command is invalid
-
UnknownError(String)An unknown error occurred
Values
pub fn close(client: Client) -> Result(Nil, CarotteError)
Close the RabbitMQ client connection. This will close all channels and the underlying AMQP connection.
pub fn default_client() -> Builder
Create a new client builder with default settings. Uses guest/guest credentials on localhost:5672.
Example
let client = carotte.default_client()
|> carotte.start()
pub fn start(builder: Builder) -> Result(Client, CarotteError)
Start a RabbitMQ client connection. Returns an actor.StartResult which contains the client on success.
Example
case carotte.start(builder) {
Ok(client) -> // Use the client
Error(carotte_error) -> // Handle connection error
}
pub fn with_channel_max(
builder: Builder,
channel_max: Int,
) -> Builder
Set the maximum number of channels (default: 2074)
pub fn with_connection_timeout(
builder: Builder,
connection_timeout: Int,
) -> Builder
Set the connection timeout in milliseconds (default: 60000)
pub fn with_frame_max(
builder: Builder,
frame_max: Int,
) -> Builder
Set the maximum frame size in bytes (0 = no limit)
pub fn with_heartbeat(
builder: Builder,
heartbeat: Int,
) -> Builder
Set the heartbeat interval in seconds (default: 10)
pub fn with_host(builder: Builder, host: String) -> Builder
Set the hostname or IP address of the RabbitMQ server
pub fn with_password(
builder: Builder,
password: String,
) -> Builder
Set the password for authentication
pub fn with_port(builder: Builder, port: Int) -> Builder
Set the port number for the RabbitMQ server (default: 5672)
pub fn with_username(
builder: Builder,
username: String,
) -> Builder
Set the username for authentication