A Python client for MontyCat, NoSQL store utilizing Data Mesh architecture.
Project description
MontyCat
MontyCat is a Python client for Montycat, a high-performance, distributed NoSQL store designed with a cutting-edge Data Mesh architecture. This client empowers developers to seamlessly manage and query their data while leveraging the unparalleled flexibility and scalability offered by NoSQL databases within a decentralized data ownership paradigm.
Key Features
- ⚡ High Performance: Harnesses MontyCat's advanced architecture for lightning-fast read and write operations.
- 🌐 Distributed Architecture: Effortlessly connects to a distributed NoSQL database, enabling dynamic horizontal scalability across diverse data domains.
- 🗂️ Data Mesh Design: Empowers cross-functional teams to own, manage, and serve their own data, enhancing collaboration and eliminating bottlenecks.
- 🔄 Asynchronous Support: Built on
asynciofor ultra-responsive, non-blocking operations, enabling high concurrency and real-time data processing. - 🧩 Meshing and Sharding: Efficiently orchestrates data across multiple nodes with robust support for data meshing and sharding, optimizing resource utilization.
- 🛡️ Memory Safety: Implements state-of-the-art memory management practices, minimizing the risk of memory-related issues and enhancing stability.
- 📊 Smart Data Governance: Integrates intelligent governance features to ensure data quality and compliance across the distributed architecture.
- 🤝 Seamless Integration: Offers a simple and intuitive API for effortless integration with Python applications, reducing time-to-value.
- 📚 Robust Documentation: Comprehensive and user-friendly documentation to accelerate onboarding and maximize productivity.
Installation
You can install Python client for Montycat using pip:
pip install montycat
```python
#models.py
from montycat import Engine, Store, Schema
connection = Engine(
host="127.0.0.1",
port=21210,
username="admin",
password="password",
store="main"
)
class Departments(Store.Persistent):
namespace = "departments"
class Managers(Store.InMemory):
namespace = "managers"
Departments.connect_engine(connection)
Managers.connect_engine(connection)
#migrations.py -- execute separately
from models.py import Departments, Managers
Departments.create_namespace()
Managers.create_namespace()
class Department(Schema):
name: str
employees: int
class Manager(Schema):
name: str
age: int
#***.py
from models.py import Departments, Managers, Department, Manager
department = Department(
name="Sales",
employees=10
).serialize()
manager = Manager(
name="John Doe",
age=46
).serialize()
#put into async function
res1 = await Departments.insert_custom_key_value(custom_key="Sales", value=department)
#{'success': True, 'payload': 192893812831283134324}
res2 = await Managers.insert_value(value=manager)
#{'success': True, 'payload': 192893812831283134324}
res3 = await Departments.get_value(custom_key="Sales")
#{'success': True, 'payload': {'name': 'Sales', 'employees': 10}}
res4 = await Managers.lookup_values_where(age=46)
#{'success': True, 'payload': [{'name': 'John Doe', 'age': 46}]}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
montycat-0.1.32.tar.gz
(17.8 kB
view details)
File details
Details for the file montycat-0.1.32.tar.gz.
File metadata
- Download URL: montycat-0.1.32.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecb2fb36e5dfcbbe36afdb328ca2b37bfb0c03d146272ea85b2fdde5ae16d6c6
|
|
| MD5 |
0ef5b69f11d0ab75e130fa1044cd41a6
|
|
| BLAKE2b-256 |
ce5384eeb5250acf4c6bff79f4148f40a7a13bb9ad83828f8307fdb921ecf89f
|