redis-dict 3.2.2__py3-none-any.whl → 3.2.4__py3-none-any.whl
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.
- {redis_dict-3.2.2.dist-info → redis_dict-3.2.4.dist-info}/METADATA +23 -8
- {redis_dict-3.2.2.dist-info → redis_dict-3.2.4.dist-info}/RECORD +5 -5
- {redis_dict-3.2.2.dist-info → redis_dict-3.2.4.dist-info}/LICENSE +0 -0
- {redis_dict-3.2.2.dist-info → redis_dict-3.2.4.dist-info}/WHEEL +0 -0
- {redis_dict-3.2.2.dist-info → redis_dict-3.2.4.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: redis-dict
|
3
|
-
Version: 3.2.
|
3
|
+
Version: 3.2.4
|
4
4
|
Summary: Dictionary with Redis as storage backend
|
5
5
|
Author-email: Melvin Bijman <bijman.m.m@gmail.com>
|
6
6
|
License: MIT
|
@@ -76,12 +76,18 @@ Requires-Dist: twine; extra == "build"
|
|
76
76
|
[](https://github.com/Attumm/redis-dict/actions/workflows/ci.yml)
|
77
77
|
[](https://codecov.io/gh/Attumm/redis-dict)
|
78
78
|
[](https://attumm.github.io/redis-dict/)
|
79
|
+
[](https://github.com/Attumm/redis-dict/actions/workflows/valkey_support.yml)
|
79
80
|
[](https://pepy.tech/project/redis-dict)
|
80
81
|
|
81
82
|
RedisDict is a Python library that offers a convenient and familiar interface for interacting with Redis, treating it as if it were a Python dictionary. Its goal is to help developers write clean, Pythonic code while using Redis as a storage solution for seamless distributed computing. Redis-Dict utilizes Redis as a key-value store and supports various data types, including strings, integers, floats, booleans, lists, and dictionaries. Additionally, developers can extend RedisDict to work with custom objects.
|
82
83
|
|
83
84
|
The library includes utility functions for more complex use cases such as caching, batching, and more. By leveraging Redis for efficient key-value storage, RedisDict enables high-performance data management, maintaining efficiency even with large datasets and Redis instances.
|
84
85
|
|
86
|
+
|
87
|
+
[Usage](#Usage) | [Types](#Types) | [Expiration](#Expiration) | [Batching](#Batching) | [Custom Types](#Custom-Types) | [Security](#Security)
|
88
|
+
|
89
|
+
---
|
90
|
+
|
85
91
|
## Features
|
86
92
|
|
87
93
|
* Dictionary-like interface: Use familiar Python dictionary syntax to interact with Redis.
|
@@ -94,7 +100,7 @@ The library includes utility functions for more complex use cases such as cachin
|
|
94
100
|
* Custom data: types: Add custom types encoding/decoding to store your data types.
|
95
101
|
* Encryption: allows for storing data encrypted, while retaining the simple dictionary interface.
|
96
102
|
|
97
|
-
##
|
103
|
+
## Usage
|
98
104
|
|
99
105
|
```bash
|
100
106
|
pip install redis-dict
|
@@ -349,7 +355,7 @@ print(dic)
|
|
349
355
|
```
|
350
356
|
|
351
357
|
### Additional Examples
|
352
|
-
For more advanced examples of RedisDict, please refer to the unit-test files in the repository. All features and functionalities are thoroughly tested in [unit tests (here)](https://github.com/Attumm/redis-dict/blob/main/tests/unit/tests.py#L1) Or take a look at load test for batching [load test](https://github.com/Attumm/redis-dict/blob/main/tests/load/
|
358
|
+
For more advanced examples of RedisDict, please refer to the unit-test files in the repository. All features and functionalities are thoroughly tested in [unit tests (here)](https://github.com/Attumm/redis-dict/blob/main/tests/unit/tests.py#L1) Or take a look at load test for batching [load test](https://github.com/Attumm/redis-dict/blob/main/tests/load/tests_load.py#L1).
|
353
359
|
The unit-tests can be as used as a starting point.
|
354
360
|
|
355
361
|
### Nested types
|
@@ -374,6 +380,7 @@ encoded = json.dumps(data, cls=RedisDictJSONEncoder)
|
|
374
380
|
result = json.loads(encoded, cls=RedisDictJSONDecoder)
|
375
381
|
```
|
376
382
|
|
383
|
+
## Custom Types
|
377
384
|
### Extending RedisDict with Custom Types
|
378
385
|
|
379
386
|
RedisDict supports custom type serialization. Here's how to add a new type:
|
@@ -423,14 +430,22 @@ dic["3"] = "three"
|
|
423
430
|
assert list(dic.keys()) == ["1", "2", "3"]
|
424
431
|
```
|
425
432
|
|
426
|
-
For more information on [extending types](https://github.com/Attumm/redis-dict/blob/main/tests/unit/
|
427
|
-
|
433
|
+
For more information on [extending types](https://github.com/Attumm/redis-dict/blob/main/tests/unit/tests_extend_types.py).
|
434
|
+
|
435
|
+
## Security
|
436
|
+
|
437
|
+
Security is an important aspect of production projects. Redis-dict was developed within a strict compliance environment.
|
438
|
+
Best practice in Redis is to use passwords and network encryption through TLS. However, Redis-dict offers an additional feature by using extended types.
|
439
|
+
It is possible to store the values of keys encrypted. The values are encrypted with AES GCM, which is currently considered best practice for security.
|
440
|
+
|
441
|
+
### Storage Encryption
|
442
|
+
For storing data values encrypted can be achieved using encrypted values, more documentation on that later.
|
443
|
+
For now code example within this test file. [encrypted test](https://github.com/Attumm/redis-dict/blob/main/tests/unit/tests_encrypt.py).
|
444
|
+
|
445
|
+
### Encryption Network
|
428
446
|
Setup guide for configuring and utilizing encrypted Redis TLS for redis-dict.
|
429
447
|
[Setup guide](https://github.com/Attumm/redis-dict/blob/main/docs/tutorials/encrypted_redis.MD)
|
430
448
|
|
431
|
-
### Redis Storage Encryption
|
432
|
-
For storing encrypted data values, it's possible to use extended types. Take a look at this [encrypted test](https://github.com/Attumm/redis-dict/blob/main/tests/unit/encrypt_tests.py).
|
433
|
-
|
434
449
|
### Tests
|
435
450
|
The RedisDict library includes a comprehensive suite of tests that ensure its correctness and resilience. The test suite covers various data types, edge cases, and error handling scenarios. It also employs the Hypothesis library for property-based testing, which provides fuzz testing to evaluate the implementation
|
436
451
|
|
@@ -3,8 +3,8 @@ redis_dict/core.py,sha256=E9mry6BqFnMjxuPtYBfQfuUPzWNzF65_dILMa-VgI4A,36994
|
|
3
3
|
redis_dict/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
redis_dict/python_dict.py,sha256=FLsvxOfgkzsBJdRMkMrZw3w1usoGs-0FEL-j_ckfKts,12829
|
5
5
|
redis_dict/type_management.py,sha256=ruyqswKqfte_G-ClTlV6ZuTmrTVkSsHFCy9LEdgblac,7700
|
6
|
-
redis_dict-3.2.
|
7
|
-
redis_dict-3.2.
|
8
|
-
redis_dict-3.2.
|
9
|
-
redis_dict-3.2.
|
10
|
-
redis_dict-3.2.
|
6
|
+
redis_dict-3.2.4.dist-info/LICENSE,sha256=-QiLwYznh_vNUSz337k0faP9Jl0dgtCIHVZ39Uyl6cA,1070
|
7
|
+
redis_dict-3.2.4.dist-info/METADATA,sha256=92s7Nj78YPageZxqbMiDKL72mS0a68rb6aAce8WjcWs,18853
|
8
|
+
redis_dict-3.2.4.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
9
|
+
redis_dict-3.2.4.dist-info/top_level.txt,sha256=Wyp5Xvq_imoxvu-c-Le1rbTZ3pYM5BF440H9YAcgBZ8,11
|
10
|
+
redis_dict-3.2.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|