realitydb


Namerealitydb JSON
Version 0.0.2 PyPI version JSON
download
home_pagehttps://perudevlabs.com
SummaryRPC, WebSocket Server, JSON RPC 2.0, OpenAPI, Swagger UI
upload_time2024-10-17 19:35:15
maintainerNone
docs_urlNone
authorOscar Bahamonde
requires_python<4.0,>=3.10
licenseMIT
keywords rpc websocket fastapi openapi swagger json-rpc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # RealityDB

![Cover](images/landscape.jpeg)

RealityDB is a document-oriented database built on top of `rocksdb`, enhanced by Python extensions such as `base64c`, `orjson`, and `rocksdict` for performance-critical operations. It leverages `pydantic` and `OpenAPI` specifications for seamless data management. By accepting a single `OpenAPI` specification, RealityDB can generate the corresponding Python classes and methods for data handling.

Inspired by AWS DynamoDB, RealityDB includes methods like `CreateTable`, `DeleteTable`, `GetItem`, `PutItem`, `DeleteItem`, `Scan`, `Query`, `BatchGetItem`, `BatchWriteItem`, and `UpdateItem` for efficient data storage and retrieval. It offers real-time capabilities using WebSockets for full-duplex communication.

Primarily intended for media-intensive applications—such as images, audio, video, 3D models, and other binary data—RealityDB meets real-time requirements through its optimized `base64c` and `orjson` extensions.

## Features

- [x] **DynamoDB API Compatibility**
  - Implements methods similar to AWS DynamoDB for seamless integration and data operations.
- [x] **Real-time Communication**
  - Utilizes WebSockets for full-duplex communication, enabling real-time data updates and notifications.
- [x] **OpenAPI Specification Migration**
  - Generates Python classes and methods from a single OpenAPI specification for streamlined data management.
- [ ] **OAuth2 Authentication**
  - Implements OAuth2 protocol for secure authentication and authorization.
- [ ] **Indexing of KeySchema Attributes**
  - Supports indexing of key schema attributes for faster and more efficient queries.
- [ ] **Publish/Subscribe Support**
  - Introduces a Pub/Sub model for real-time data changes and event notifications.
- [ ] **Global Distribution @Edge**
  - Enables global distribution and edge computing capabilities for low-latency access worldwide.
- [ ] **Zstd Compression**
  - Integrates Zstandard (zstd) compression for efficient data storage and transfer.
- [ ] **S3FS Integration with Edge Computing**
  - Integrates with S3FS to provide distributed file system capabilities in edge environments.
- [ ] **Authentication and Multi-tenancy**
  - Supports multi-tenant architectures with robust authentication mechanisms for data isolation and security.

## Installation

Install RealityDB using pip:

```bash
pip install realitydb
```

## Usage

Use your own OpenAPI specification to generate the corresponding Python classes and methods for data handling.

```bash
realitydb ./openapi.json
```

You will see the RPCServer running on `ws://localhost:8888` and the RPCClient ready to use.





            

Raw data

            {
    "_id": null,
    "home_page": "https://perudevlabs.com",
    "name": "realitydb",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "RPC, WebSocket, FastAPI, OpenAPI, Swagger, JSON-RPC",
    "author": "Oscar Bahamonde",
    "author_email": "oscar@perudevlabs.com",
    "download_url": "https://files.pythonhosted.org/packages/90/66/2ad6cae91aa5d91f41603aa7545f13ae6056d2144c9173b6a1f688d2a2cb/realitydb-0.0.2.tar.gz",
    "platform": null,
    "description": "# RealityDB\n\n![Cover](images/landscape.jpeg)\n\nRealityDB is a document-oriented database built on top of `rocksdb`, enhanced by Python extensions such as `base64c`, `orjson`, and `rocksdict` for performance-critical operations. It leverages `pydantic` and `OpenAPI` specifications for seamless data management. By accepting a single `OpenAPI` specification, RealityDB can generate the corresponding Python classes and methods for data handling.\n\nInspired by AWS DynamoDB, RealityDB includes methods like `CreateTable`, `DeleteTable`, `GetItem`, `PutItem`, `DeleteItem`, `Scan`, `Query`, `BatchGetItem`, `BatchWriteItem`, and `UpdateItem` for efficient data storage and retrieval. It offers real-time capabilities using WebSockets for full-duplex communication.\n\nPrimarily intended for media-intensive applications\u2014such as images, audio, video, 3D models, and other binary data\u2014RealityDB meets real-time requirements through its optimized `base64c` and `orjson` extensions.\n\n## Features\n\n- [x] **DynamoDB API Compatibility**\n  - Implements methods similar to AWS DynamoDB for seamless integration and data operations.\n- [x] **Real-time Communication**\n  - Utilizes WebSockets for full-duplex communication, enabling real-time data updates and notifications.\n- [x] **OpenAPI Specification Migration**\n  - Generates Python classes and methods from a single OpenAPI specification for streamlined data management.\n- [ ] **OAuth2 Authentication**\n  - Implements OAuth2 protocol for secure authentication and authorization.\n- [ ] **Indexing of KeySchema Attributes**\n  - Supports indexing of key schema attributes for faster and more efficient queries.\n- [ ] **Publish/Subscribe Support**\n  - Introduces a Pub/Sub model for real-time data changes and event notifications.\n- [ ] **Global Distribution @Edge**\n  - Enables global distribution and edge computing capabilities for low-latency access worldwide.\n- [ ] **Zstd Compression**\n  - Integrates Zstandard (zstd) compression for efficient data storage and transfer.\n- [ ] **S3FS Integration with Edge Computing**\n  - Integrates with S3FS to provide distributed file system capabilities in edge environments.\n- [ ] **Authentication and Multi-tenancy**\n  - Supports multi-tenant architectures with robust authentication mechanisms for data isolation and security.\n\n## Installation\n\nInstall RealityDB using pip:\n\n```bash\npip install realitydb\n```\n\n## Usage\n\nUse your own OpenAPI specification to generate the corresponding Python classes and methods for data handling.\n\n```bash\nrealitydb ./openapi.json\n```\n\nYou will see the RPCServer running on `ws://localhost:8888` and the RPCClient ready to use.\n\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "RPC, WebSocket Server, JSON RPC 2.0, OpenAPI, Swagger UI",
    "version": "0.0.2",
    "project_urls": {
        "Documentation": "https://realitydb-docs.perudevlabs.com",
        "Homepage": "https://perudevlabs.com",
        "Repository": "https://github.com/perudevlabs/realitydb"
    },
    "split_keywords": [
        "rpc",
        " websocket",
        " fastapi",
        " openapi",
        " swagger",
        " json-rpc"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d2eaf85d3a49ec66dbc1f43bc7c19dc3a4e6aa80f9762025aa280ca120572406",
                "md5": "8f4e15d127cb5e94095651583da6b490",
                "sha256": "0189b8ceccc0bda96661a97b383aaa7aa2ccf6909ac322197119b542d7e9a605"
            },
            "downloads": -1,
            "filename": "realitydb-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8f4e15d127cb5e94095651583da6b490",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 12745,
            "upload_time": "2024-10-17T19:35:14",
            "upload_time_iso_8601": "2024-10-17T19:35:14.238014Z",
            "url": "https://files.pythonhosted.org/packages/d2/ea/f85d3a49ec66dbc1f43bc7c19dc3a4e6aa80f9762025aa280ca120572406/realitydb-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "90662ad6cae91aa5d91f41603aa7545f13ae6056d2144c9173b6a1f688d2a2cb",
                "md5": "c94afbf2349aac1165859cf355c029ea",
                "sha256": "4cd4f005eb12261317423e0c6584fa4c2e23cc6f02249ebdace8f25e87c9c6f3"
            },
            "downloads": -1,
            "filename": "realitydb-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "c94afbf2349aac1165859cf355c029ea",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 11987,
            "upload_time": "2024-10-17T19:35:15",
            "upload_time_iso_8601": "2024-10-17T19:35:15.223928Z",
            "url": "https://files.pythonhosted.org/packages/90/66/2ad6cae91aa5d91f41603aa7545f13ae6056d2144c9173b6a1f688d2a2cb/realitydb-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-17 19:35:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "perudevlabs",
    "github_project": "realitydb",
    "github_not_found": true,
    "lcname": "realitydb"
}
        
Elapsed time: 0.89883s