evoid-scylla
ScyllaDB/Cassandra storage engine — Intent Handler system
Quick Start • Intent Handler • Config • API
Quick Start
uv add evoid-scylla
Method 1: Intent Handler (Recommended)
from evoid_scylla import register_handlers
from evoid.core.storage import storage_read, storage_write, storage_delete
# Register ScyllaDB as storage handler
register_handlers(
contact_points=["127.0.0.1"],
port=9042,
keyspace="evoid",
)
# Use high-level API
await storage_write("user:1", {"name": "Alice"})
user = await storage_read("user:1")
await storage_delete("user:1")
Method 2: Direct API
from evoid_scylla import create_storage
storage = create_storage(contact_points=["127.0.0.1"], port=9042)
await storage.write("user:1", {"name": "Alice"})
user = await storage.read("user:1")
Intent Handler
evoid-scylla registers these Intent handlers:
| Intent | Handler | Description |
|---|---|---|
storage.read |
handle_read |
Read from ScyllaDB |
storage.write |
handle_write |
Write to ScyllaDB |
storage.delete |
handle_delete |
Delete from ScyllaDB |
storage.health |
handle_health |
Check connection |
Configuration
TOML
[engines]
storage = "scylla"
[engines.options.scylla]
contact_points = ["127.0.0.1"]
port = 9042
keyspace = "evoid"
API
register_handlers(contact_points, port, keyspace)
Register ScyllaDB as Intent handlers.
| Parameter | Type | Default | Description |
|---|---|---|---|
contact_points |
list[str] |
["127.0.0.1"] |
Cassandra/ScyllaDB nodes |
port |
int |
9042 |
Native transport port |
keyspace |
str |
evoid |
Keyspace name |
create_storage(contact_points, port, keyspace) -> ScyllaStorage
Factory function for direct API access.
DI Integration
When you call register_handlers(), ScyllaDB is auto-registered as storage.scylla in evoid-di:
from evoid_di import di
# After register_handlers(), set up fallback chain:
di.set_fallback("storage.scylla", ["storage.sqlite", "cache.redis"])
# Auto-fallback on failure:
storage = di.resolve_with_fallback("storage.scylla")
Dependencies
evoid>=0.4.0cassandra-driver>=3.29.0
Links
License
MIT
Release files for evoid-scylla 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| evoid_scylla-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / evoid_scylla-0.2.0-py3-none-any.whl
| Download URL | evoid_scylla-0.2.0-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a661c8603860ba80b568558ad4c4b3e3fc83f4949a692c8139e6472696886ed3
|
|
BLAKE2b-256 checksum How to use checksums |
c5ed1811ac5cf97deb6023a22ffa38109494429f75e92e5006537e2158d8655d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|