You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+30-7Lines changed: 30 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,8 +9,16 @@
9
9
10
10
> 📢 **Early Release**: This is an early release of async-cassandra. While it has been tested extensively, you may encounter edge cases. We welcome your feedback and contributions! Please report any issues on our [GitHub Issues](https://github.com/axonops/async-python-cassandra-client/issues) page.
11
11
12
+
## 📦 Repository Structure
13
+
14
+
This is a monorepo containing two related Python packages:
15
+
16
+
-**[async-cassandra](libs/async-cassandra/)** - The main async wrapper for the Cassandra Python driver, enabling async/await operations with Cassandra
17
+
-**[async-cassandra-bulk](libs/async-cassandra-bulk/)** - (🚧 Active Development) High-performance bulk operations extension for async-cassandra
18
+
12
19
## 📑 Table of Contents
13
20
21
+
-[📦 Repository Structure](#-repository-structure)
14
22
-[✨ Overview](#-overview)
15
23
-[🏗️ Why create this framework?](#️-why-create-this-framework)
16
24
-[Understanding Async vs Sync](#understanding-async-vs-sync)
@@ -40,7 +48,7 @@
40
48
41
49
## ✨ Overview
42
50
43
-
A Python library that enables the Cassandra driver to work seamlessly with async frameworks like FastAPI, aiohttp, and Quart. It provides an async/await interface that prevents blocking your application's event loop while maintaining full compatibility with the DataStax Python driver.
51
+
**async-cassandra** is a Python library that enables the Cassandra driver to work seamlessly with async frameworks like FastAPI, aiohttp, and Quart. It provides an async/await interface that prevents blocking your application's event loop while maintaining full compatibility with the DataStax Python driver.
44
52
45
53
When using the standard Cassandra driver in async applications, blocking operations can freeze your entire service. This wrapper solves that critical issue by bridging the gap between Cassandra's thread-based I/O and Python's async ecosystem, ensuring your web services remain responsive under load.
46
54
@@ -248,14 +256,21 @@ We understand this requirement may be inconvenient for some users, but it allows
248
256
249
257
## 🔧 Installation
250
258
259
+
### async-cassandra (Main Library)
260
+
251
261
```bash
252
262
# From PyPI
253
263
pip install async-cassandra
254
264
255
-
# From source
265
+
# From source (for development)
266
+
cd libs/async-cassandra
256
267
pip install -e .
257
268
```
258
269
270
+
### async-cassandra-bulk (Coming Soon)
271
+
272
+
> 🚧 **In Active Development**: async-cassandra-bulk is currently under development and not yet available on PyPI. It will provide high-performance bulk operations for async-cassandra.
273
+
259
274
## 📚 Quick Start
260
275
261
276
```python
@@ -313,16 +328,21 @@ We welcome contributions! Please see:
313
328
-[Metrics and Monitoring](docs/metrics-monitoring.md) - Track performance and health
314
329
315
330
### Examples
316
-
-[FastAPI Integration](examples/fastapi_app/README.md) - Complete REST API example
The project includes comprehensive examples demonstrating various features and use cases. Each example can be run using the provided Makefile, which automatically handles Cassandra setup if needed.
336
+
The async-cassandra library includes comprehensive examples demonstrating various features and use cases. Examples are located in the `libs/async-cassandra/examples/` directory.
322
337
323
-
### Available Examples
338
+
### Running Examples
324
339
325
-
Run any example with: `make example-<name>`
340
+
First, navigate to the async-cassandra directory:
341
+
```bash
342
+
cd libs/async-cassandra
343
+
```
344
+
345
+
Then run any example with: `make example-<name>`
326
346
327
347
-**`make example-basic`** - Basic connection and query execution
328
348
-**`make example-streaming`** - Memory-efficient streaming of large result sets with True Async Paging
@@ -339,6 +359,9 @@ Run any example with: `make example-<name>`
339
359
If you have Cassandra running elsewhere:
340
360
341
361
```bash
362
+
# From the libs/async-cassandra directory:
363
+
cd libs/async-cassandra
364
+
342
365
# Single node
343
366
CASSANDRA_CONTACT_POINTS=10.0.0.1 make example-streaming
# Reuse session for all requests - DO NOT close after each use
114
114
```
115
115
116
-
**Note**: While async-cassandra provides context manager support for convenience in scripts and tests, production applications should create clusters and sessions once at startup and reuse them throughout the application lifetime. See the [FastAPI example](../examples/fastapi_app/main.py) for the correct pattern.
116
+
**Note**: While async-cassandra provides context manager support for convenience in scripts and tests, production applications should create clusters and sessions once at startup and reuse them throughout the application lifetime. See the [FastAPI example](../libs/async-cassandra/examples/fastapi_app/main.py) for the correct pattern.
High-performance bulk operations for Apache Cassandra, built on [async-cassandra](https://pypi.org/project/async-cassandra/).
7
+
High-performance bulk operations extension for Apache Cassandra, built on [async-cassandra](https://pypi.org/project/async-cassandra/).
8
8
9
-
> 📢**Early Development**: This package is in early development. Features are being actively added.
9
+
> 🚧**Active Development**: This package is currently under active development and not yet feature-complete. The API may change as we work towards a stable release. For production use, we recommend using [async-cassandra](https://pypi.org/project/async-cassandra/) directly.
10
10
11
11
## 🎯 Overview
12
12
13
-
async-cassandra-bulk provides high-performance data import/export capabilities for Apache Cassandra databases. It leverages token-aware parallel processing to achieve optimal throughput while maintaining memory efficiency.
13
+
**async-cassandra-bulk** will provide high-performance data import/export capabilities for Apache Cassandra databases. Once complete, it will leverage token-aware parallel processing to achieve optimal throughput while maintaining memory efficiency.
Copy file name to clipboardExpand all lines: libs/async-cassandra/README_PYPI.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,11 +6,11 @@
6
6
7
7
> 📢 **Early Release**: This is an early release of async-cassandra. While it has been tested extensively, you may encounter edge cases. We welcome your feedback and contributions! Please report any issues on our [GitHub Issues](https://github.com/axonops/async-python-cassandra-client/issues) page.
8
8
9
-
> 🚀 **Looking for bulk operations?**Check out [async-cassandra-bulk](https://pypi.org/project/async-cassandra-bulk/)for high-performance data import/export capabilities.
9
+
> 🚀 **Looking for bulk operations?**[async-cassandra-bulk](https://pypi.org/project/async-cassandra-bulk/)is currently in active development and will provide high-performance data import/export capabilities.
10
10
11
11
## 🎯 Overview
12
12
13
-
A Python library that enables true async/await support for Cassandra database operations. This package wraps the official DataStax™ Cassandra driver to make it compatible with async frameworks like **FastAPI**, **aiohttp**, and **Quart**.
13
+
**async-cassandra** is the core library that enables true async/await support for Cassandra database operations. This package wraps the official DataStax™ Cassandra driver to make it compatible with async frameworks like **FastAPI**, **aiohttp**, and **Quart**.
14
14
15
15
When using the standard Cassandra driver in async applications, blocking operations can freeze your entire service. This wrapper solves that critical issue by bridging Cassandra's thread-based operations with Python's async ecosystem.
0 commit comments