# 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"
}