rboto
rboto provides typed, async-only Python clients for AWS services. Create a client, await an operation, and read the response through typed attributes.
import asyncio
from rboto import STSClient
async def main() -> None:
client = STSClient(region="us-east-1")
response = await client.get_caller_identity()
print(response.account)
print(response.arn)
if __name__ == "__main__":
asyncio.run(main())
This request prints the account and principal used by your application. It needs configured credentials and does not create resources.
rboto is under development. Packages have not yet been published to PyPI. Follow Getting started to install a client from source.
Choose your clients
Each service has its own package. An application using S3 and DynamoDB needs those
two clients and the small rboto facade.
| Task | Clients | Guide |
|---|---|---|
| Upload or download objects | S3Client() |
S3 |
| Read and write items | DynamoDBClient() |
DynamoDB |
| Publish notifications or process queue messages | SNSClient(), SQSClient() |
Messaging |
| Invoke functions or models | LambdaClient(), BedrockRuntimeClient() |
Lambda and Bedrock |
| Route events or schedule work | EventBridgeClient(), EventBridgeSchedulerClient(), EventBridgePipesClient() |
Events and schedules |
| Read configuration, encrypt values, start workflows, send email | SSMClient(), KMSClient(), StepFunctionsClient(), SESV2Client() |
Application services |
The client catalog lists every service, its package, and its factory.
Using the API
Every service operation requires await. In a script, start the event loop
once with asyncio.run(). In an async application, use the existing loop.
See Async-only.
Inputs use keyword arguments and typed dictionaries. Regular responses expose
read-only attributes such as response.account. See Types and responses.
Clients are reusable. Configuration loads on first use. Keep clients around for later requests. See Configuration and credentials.
Streams are consumed as you read them. Use async for for chunks or events,
and .read() for byte streams that fit in memory. See Streaming.
Signing, credential providers, retries, and HTTP requests use the AWS SDK for Rust. The guides describe the Python API and the settings rboto currently exposes.