4 releases (2 breaking)
new 0.3.0 | Feb 18, 2025 |
---|---|
0.2.1 | Feb 10, 2025 |
0.2.0 | Feb 10, 2025 |
0.1.0 | Feb 9, 2025 |
#799 in Web programming
684 downloads per month
Used in 3 crates
(2 directly)
25KB
463 lines
[!NOTE] Originally the client was forked from
anthropic-sdk
which no longer seems to be maintained. There might still be some references, even though the code has been rewritten from scratch.
async-anthropic
A client for the anthropic messages api, written in Rust. There are plenty of clients on crates.io, but we figured we needed another one. Specifically, a straightforward builder api, robust error handling, and room to grow. Tests are also nice.
Features
- Core messages API
- Tool use
- Support all API parameters
- Automatic backoff
- Tracing
- Streaming
- Non-text messages
Installation
Add the project with cargo
:
cargo add async-anthropic
Usage
Basic Usage
For non-streaming responses, you can use the SDK as follows:
let client = Client::default();
let request = CreateMessagesRequestBuilder::default()
.model("claude-3-5-sonnet-20241022")
.messages(vec![MessageBuilder::default()
.role(MessageRole::User)
.content("Hello claude!!")
.build()
.unwrap()])
.build()
.unwrap();
let response = client.messages().create(request).await?;
println!("{:?}", response);
See /examples
for more examples.
Contributing
Contributions are welcome! This project was quickly drafted together to add anthropic support to other bosun projects, and several features are missing. If you'd like to contribute, please open an issue or a pull request.
Dependencies
~7–19MB
~250K SLoC