MCPcopy Index your code
hub / github.com/amiquip/amiquip

github.com/amiquip/amiquip @0.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.4.0 ↗ · + Follow
418 symbols 1,009 edges 42 files 85 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

amiquip

Travis Build Status dependency status Latest Version Docs

amiquip is a RabbitMQ client written in pure Rust.

Usage

Add this to your Cargo.toml:

[dependencies]
amiquip = "0.4"

For usage, see the documentation and examples.

Minimum Support Rust Version

The minimum supported Rust version for amiquip 0.4 is currently Rust 1.40.0, but that may change with a patch release (and could change with a patch release to a dependency without our knowledge).

TLS Support

By default, amiquip enables TLS support via the native-tls crate. You can disable support for TLS by turning off default features:

[dependencies]
amiquip = { version = "0.4", default-features = false }

If you disable TLS support, the methods Connection::open, Connection::open_tuned, and Connection::open_tls_stream will no longer be available, as all three only allow secure connections. The methods Connection::insecure_open, Connection::insecure_open_tuned, and Connection::insecure_open_stream will still be available; these methods support unencrypted connections.

Integration Tests

amiquip contains integration tests that require a RabbitMQ server. To run these, set the AMIQUIP_TEST_URL environment variable to an amqp:// or amqps:// URL before running cargo test. For example, if you have a RabbitMQ instance running with the default guest account on your development machine:

bash$ AMIQUIP_TEST_URL=amqp://guest:guest@localhost cargo test

If the AMIQUIP_TEST_URL environment variable is not set, all integration tests will be skipped (and silently pass). If you run with --nocapture, you will see a warning printed on the first such skipped test:

bash$ cargo test -- nocapture
...
test integration_tests::exchange::test_declare ... AMIQUIP_TEST_URL not defined - skipping integration tests
...

License

This project is licensed under either of

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in amiquip by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Extension points exported contracts — how you extend this code

IntoAmqpClass (Interface)
(no doc) [6 implementers]
src/serialize.rs
FrameKind (Interface)
Dep. injection helper primarily for unit testing. [2 implementers]
src/frame_buffer.rs
IoStream (Interface)
Combination trait for readable, writable streams that can be polled by mio. [2 implementers]
src/stream/mod.rs
Sasl (Interface)
A trait encapsulating the operations required to authenticate to an AMQP server. # Warning SASL mechanisms that requir [1 …
src/auth.rs
ContentType (Interface)
(no doc) [3 implementers]
src/io_loop/content_collector.rs
TryFromAmqpFrame (Interface)
(no doc) [1 implementers]
src/serialize.rs
HandshakeStream (Interface)
(no doc) [1 implementers]
src/stream/mod.rs
TryFromAmqpClass (Interface)
(no doc)
src/serialize.rs

Core symbols most depended-on inside this repo

insert
called by 22
src/io_loop/channel_slots.rs
name
called by 19
src/exchange.rs
send
called by 18
src/io_loop/connection_state.rs
close
called by 15
src/channel.rs
call_nowait
called by 15
src/channel.rs
process
called by 15
src/confirm.rs
len
called by 14
src/serialize.rs
name
called by 14
src/queue.rs

Shape

Method 265
Function 85
Class 41
Enum 19
Interface 8

Languages

Rust100%

Modules by API surface

src/channel.rs42 symbols
src/connection.rs37 symbols
src/io_loop/mod.rs35 symbols
src/serialize.rs24 symbols
src/io_loop/io_loop_handle.rs23 symbols
src/exchange.rs21 symbols
src/connection_options.rs21 symbols
src/io_loop/channel_slots.rs19 symbols
src/frame_buffer.rs19 symbols
src/confirm.rs19 symbols
src/queue.rs18 symbols
src/io_loop/channel_handle.rs15 symbols

For agents

$ claude mcp add amiquip \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact