kedis-python 0.1.2__tar.gz → 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kedis_python-0.1.2 → kedis_python-0.1.4}/PKG-INFO +18 -1
- {kedis_python-0.1.2 → kedis_python-0.1.4}/README.md +17 -0
- kedis_python-0.1.4/kedis_python/commands.py +1154 -0
- kedis_python-0.1.4/kedis_python/hyperloglog.py +78 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/main.py +254 -97
- kedis_python-0.1.4/kedis_python/network.py +105 -0
- kedis_python-0.1.4/kedis_python/parser.py +307 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/server.py +206 -46
- kedis_python-0.1.4/kedis_python/store.py +1789 -0
- kedis_python-0.1.4/kedis_python/stream.py +416 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/ui.py +116 -9
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python.egg-info/PKG-INFO +18 -1
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python.egg-info/SOURCES.txt +19 -1
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python.egg-info/entry_points.txt +1 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/pyproject.toml +2 -1
- {kedis_python-0.1.2 → kedis_python-0.1.4}/tests/test_bench.py +2 -2
- kedis_python-0.1.4/tests/test_bitmap_persistence.py +268 -0
- kedis_python-0.1.4/tests/test_bitmaps.py +183 -0
- kedis_python-0.1.4/tests/test_docs_streams.py +91 -0
- kedis_python-0.1.4/tests/test_housekeeping.py +282 -0
- kedis_python-0.1.4/tests/test_hyperloglog.py +412 -0
- kedis_python-0.1.4/tests/test_inline_block.py +112 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/tests/test_lists.py +1 -1
- kedis_python-0.1.4/tests/test_parser_casing.py +87 -0
- kedis_python-0.1.4/tests/test_parser_harden.py +150 -0
- kedis_python-0.1.4/tests/test_stream_commands.py +299 -0
- kedis_python-0.1.4/tests/test_stream_core.py +219 -0
- kedis_python-0.1.4/tests/test_stream_groups_commands.py +433 -0
- kedis_python-0.1.4/tests/test_stream_groups_core.py +285 -0
- kedis_python-0.1.4/tests/test_stream_groups_server.py +438 -0
- kedis_python-0.1.4/tests/test_stream_groups_store.py +601 -0
- kedis_python-0.1.4/tests/test_stream_server.py +326 -0
- kedis_python-0.1.4/tests/test_stream_store.py +366 -0
- kedis_python-0.1.2/kedis_python/commands.py +0 -512
- kedis_python-0.1.2/kedis_python/network.py +0 -60
- kedis_python-0.1.2/kedis_python/parser.py +0 -132
- kedis_python-0.1.2/kedis_python/store.py +0 -873
- {kedis_python-0.1.2 → kedis_python-0.1.4}/LICENSE +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/__init__.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/benchmark.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/benchmark_asyncio.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/kesp_cli.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/replica.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/simulator.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python/skiplist.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python.egg-info/dependency_links.txt +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python.egg-info/requires.txt +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/kedis_python.egg-info/top_level.txt +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/setup.cfg +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/tests/test_kesp.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/tests/test_kesp2.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/tests/test_lru.py +0 -0
- {kedis_python-0.1.2 → kedis_python-0.1.4}/tests/test_replica.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kedis-python
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: A Redis-inspired in-memory store in Python.
|
|
5
5
|
Author: V SS Karthik
|
|
6
6
|
License-Expression: MIT
|
|
@@ -49,6 +49,7 @@ Dive into the internal grimoire to understand how Kedis achieves microsecond lat
|
|
|
49
49
|
* [Persistence & I/O Drivetrain](docs/persistence.md)
|
|
50
50
|
* [Command Spellbook](docs/commands.md)
|
|
51
51
|
* [TTL & Lifespan Mechanics](docs/ttl.md)
|
|
52
|
+
* [Streams & Consumer Groups](docs/streams.md)
|
|
52
53
|
* [Pub/Sub Broadcasts](docs/pubsub.md)
|
|
53
54
|
* [Benchmarks & Telemetry](docs/benchmarks.md)
|
|
54
55
|
* [Future Roadmap](docs/roadmap.md)
|
|
@@ -107,6 +108,20 @@ ZRANGE leaderboard
|
|
|
107
108
|
|
|
108
109
|
Implemented using a custom Skip List inspired by Redis sorted set internals, with rank-aware span tracking for fast positional queries.
|
|
109
110
|
|
|
111
|
+
### Streams & Consumer Groups
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
XADD orders * item book qty 2
|
|
115
|
+
XREAD BLOCK 5000 STREAMS orders $
|
|
116
|
+
|
|
117
|
+
XGROUP CREATE orders shipping 0
|
|
118
|
+
XREADGROUP GROUP shipping worker1 COUNT 10 STREAMS orders >
|
|
119
|
+
XPENDING orders shipping
|
|
120
|
+
XACK orders shipping 1718000000000-0
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Append-only event logs with blocking reads, and consumer groups that share a stream between workers with a pending list and acknowledgements. Streams persist through the AOF, `COMPACT` and snapshots, and replicate with the exact IDs and group state the master chose. See [Streams & Consumer Groups](docs/streams.md).
|
|
124
|
+
|
|
110
125
|
---
|
|
111
126
|
|
|
112
127
|
## ⏳ Expiration Support
|
|
@@ -290,6 +305,7 @@ The project includes automated tests covering:
|
|
|
290
305
|
* data structures
|
|
291
306
|
* persistence recovery
|
|
292
307
|
* expiration behavior
|
|
308
|
+
* streams and consumer groups, from the data structure up to live TCP sessions
|
|
293
309
|
|
|
294
310
|
Additional coverage is actively being expanded as the project evolves.
|
|
295
311
|
|
|
@@ -361,6 +377,7 @@ Current limitations include:
|
|
|
361
377
|
* limited fault tolerance compared to production databases
|
|
362
378
|
* no memory-based eviction ceiling (LRU tracks usage, but isn't yet tied to a hard memory limit)
|
|
363
379
|
* AOF persistence is not buffered — writes can trigger a sync depending on config
|
|
380
|
+
* consumer groups have no `XCLAIM`/`XAUTOCLAIM` yet; the full list of stream limits is in [docs/streams.md](docs/streams.md#-known-limits)
|
|
364
381
|
|
|
365
382
|
These limitations are intentional learning opportunities and areas of active development.
|
|
366
383
|
|
|
@@ -35,6 +35,7 @@ Dive into the internal grimoire to understand how Kedis achieves microsecond lat
|
|
|
35
35
|
* [Persistence & I/O Drivetrain](docs/persistence.md)
|
|
36
36
|
* [Command Spellbook](docs/commands.md)
|
|
37
37
|
* [TTL & Lifespan Mechanics](docs/ttl.md)
|
|
38
|
+
* [Streams & Consumer Groups](docs/streams.md)
|
|
38
39
|
* [Pub/Sub Broadcasts](docs/pubsub.md)
|
|
39
40
|
* [Benchmarks & Telemetry](docs/benchmarks.md)
|
|
40
41
|
* [Future Roadmap](docs/roadmap.md)
|
|
@@ -93,6 +94,20 @@ ZRANGE leaderboard
|
|
|
93
94
|
|
|
94
95
|
Implemented using a custom Skip List inspired by Redis sorted set internals, with rank-aware span tracking for fast positional queries.
|
|
95
96
|
|
|
97
|
+
### Streams & Consumer Groups
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
XADD orders * item book qty 2
|
|
101
|
+
XREAD BLOCK 5000 STREAMS orders $
|
|
102
|
+
|
|
103
|
+
XGROUP CREATE orders shipping 0
|
|
104
|
+
XREADGROUP GROUP shipping worker1 COUNT 10 STREAMS orders >
|
|
105
|
+
XPENDING orders shipping
|
|
106
|
+
XACK orders shipping 1718000000000-0
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Append-only event logs with blocking reads, and consumer groups that share a stream between workers with a pending list and acknowledgements. Streams persist through the AOF, `COMPACT` and snapshots, and replicate with the exact IDs and group state the master chose. See [Streams & Consumer Groups](docs/streams.md).
|
|
110
|
+
|
|
96
111
|
---
|
|
97
112
|
|
|
98
113
|
## ⏳ Expiration Support
|
|
@@ -276,6 +291,7 @@ The project includes automated tests covering:
|
|
|
276
291
|
* data structures
|
|
277
292
|
* persistence recovery
|
|
278
293
|
* expiration behavior
|
|
294
|
+
* streams and consumer groups, from the data structure up to live TCP sessions
|
|
279
295
|
|
|
280
296
|
Additional coverage is actively being expanded as the project evolves.
|
|
281
297
|
|
|
@@ -347,6 +363,7 @@ Current limitations include:
|
|
|
347
363
|
* limited fault tolerance compared to production databases
|
|
348
364
|
* no memory-based eviction ceiling (LRU tracks usage, but isn't yet tied to a hard memory limit)
|
|
349
365
|
* AOF persistence is not buffered — writes can trigger a sync depending on config
|
|
366
|
+
* consumer groups have no `XCLAIM`/`XAUTOCLAIM` yet; the full list of stream limits is in [docs/streams.md](docs/streams.md#-known-limits)
|
|
350
367
|
|
|
351
368
|
These limitations are intentional learning opportunities and areas of active development.
|
|
352
369
|
|