Skip to content

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.