Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,32 @@ redisctl enterprise cluster get -o json | jq
redisctl enterprise cluster get -o yaml
```

### Python Bindings

Use the same APIs from Python via PyO3 bindings:

```bash
pip install redisctl
```

```python
from redisctl import CloudClient, EnterpriseClient

# Redis Cloud
cloud = CloudClient.from_env()
subs = cloud.subscriptions_sync()

# Redis Enterprise
enterprise = EnterpriseClient.from_env()
dbs = enterprise.databases_sync()

# Async support
async def main():
subs = await cloud.subscriptions()
```

[**Python Documentation →**](https://redis-field-engineering.github.io/redisctl-docs/developer/python/)

---

## Documentation
Expand Down
34 changes: 34 additions & 0 deletions crates/redisctl-python/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Changelog

All notable changes to the redisctl Python package will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.0] - 2026-01-23

### Added

- Initial release of Python bindings for Redis Cloud and Enterprise APIs
- `CloudClient` for Redis Cloud API
- Constructor with API key, secret, optional base URL and timeout
- `from_env()` factory method supporting multiple environment variable names
- Async methods: `subscriptions()`, `subscription()`, `databases()`, `database()`
- Sync methods: `subscriptions_sync()`, `subscription_sync()`, `databases_sync()`, `database_sync()`
- Raw API access: `get()`, `post()`, `put()`, `delete()` (async and sync variants)
- `EnterpriseClient` for Redis Enterprise API
- Constructor with base URL, username, password, optional insecure flag and timeout
- `from_env()` factory method
- Cluster methods: `cluster_info()`, `cluster_stats()`, `license()` (async and sync)
- Database methods: `databases()`, `database()`, `database_stats()` (async and sync)
- Node methods: `nodes()`, `node()`, `node_stats()` (async and sync)
- User methods: `users()`, `user()` (async and sync)
- Raw API access: `get()`, `post()`, `put()`, `delete()` (async and sync variants)
- `RedisCtlError` exception type for API errors
- Pre-built wheels for:
- macOS (x86_64 and arm64)
- Linux (x86_64 and aarch64, glibc)
- Windows (x86_64)
- Python version support: 3.9, 3.10, 3.11, 3.12, 3.13
9 changes: 9 additions & 0 deletions crates/redisctl/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Add Python bindings via PyO3 for `redis-cloud` and `redis-enterprise` libraries ([#578](https://github.com/redis-developer/redisctl/pull/578))
- `CloudClient` with async and sync methods for subscriptions and databases
- `EnterpriseClient` with async and sync methods for cluster, databases, nodes, and users
- Environment variable support via `from_env()` factory methods
- Raw API access for unsupported endpoints
- Available on PyPI: `pip install redisctl`

## [0.7.5](https://github.com/redis-developer/redisctl/compare/redisctl-v0.7.4...redisctl-v0.7.5) - 2026-01-14

### Added
Expand Down
26 changes: 24 additions & 2 deletions mkdocs-site/docs/developer/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,22 @@ Build with redisctl and contribute to the project.

## Using redisctl Libraries

redisctl is built as reusable Rust libraries:
redisctl is built as reusable libraries available for both Rust and Python:

### Rust Crates

| Crate | Description | docs.rs |
|-------|-------------|---------|
| `redis-cloud` | Redis Cloud API client | [docs](https://docs.rs/redis-cloud) |
| `redis-enterprise` | Redis Enterprise API client | [docs](https://docs.rs/redis-enterprise) |
| `redisctl-config` | Profile and credential management | [docs](https://docs.rs/redisctl-config) |

### Python Package

| Package | Description | PyPI |
|---------|-------------|------|
| `redisctl` | Python bindings for Redis Cloud & Enterprise | [pypi](https://pypi.org/project/redisctl/) |

### Example: Using redis-cloud

```rust
Expand All @@ -33,7 +41,21 @@ async fn main() -> anyhow::Result<()> {
}
```

[:octicons-arrow-right-24: Libraries Guide](libraries.md)
[:octicons-arrow-right-24: Rust Libraries Guide](libraries.md)

### Example: Using Python

```python
from redisctl import CloudClient

client = CloudClient.from_env()

subscriptions = client.subscriptions_sync()
for sub in subscriptions.get('subscriptions', []):
print(f"{sub['id']}: {sub['name']}")
```

[:octicons-arrow-right-24: Python Bindings Guide](python.md)

## Architecture

Expand Down
Loading
Loading