Skip to main content

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 asyncio for 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):
    keyspace = "departments"

class Managers(Store.InMemory):
    keyspace = "managers"

Departments.connect_engine(connection)
Managers.connect_engine(connection)

#migrations.py -- execute separately 
from models.py import Departments, Managers

Departments.create_keyspace()
Managers.create_keyspace()

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


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.39.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

montycat-0.1.39-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file montycat-0.1.39.tar.gz.

File metadata

  • Download URL: montycat-0.1.39.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for montycat-0.1.39.tar.gz
Algorithm Hash digest
SHA256 8498ea9a70757565a42ed7c9d43867b51950e2f47fb4a7e8ff19a26a57867c3a
MD5 875a77f5b7ce44c023728c3178e30fbf
BLAKE2b-256 43dbbc5852594b78533f509bf546c9614ee83c36259c3240fffa4ec5ed5123bf

See more details on using hashes here.

File details

Details for the file montycat-0.1.39-py3-none-any.whl.

File metadata

  • Download URL: montycat-0.1.39-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for montycat-0.1.39-py3-none-any.whl
Algorithm Hash digest
SHA256 56e5b840ff1bd8bd2ee23f1b0bc95a6c4d31a730a30dd6d248f3348b38ef1007
MD5 fe9b2a7f3f7734350484f15525744cf2
BLAKE2b-256 172c797c646d45e53be5f34e5d53e30c51abd83b420c6e4e49728ac333aa3ce8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page