altcodepro-polydb-python 2.2.3__tar.gz → 2.2.5__tar.gz
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.
- altcodepro_polydb_python-2.2.5/PKG-INFO +489 -0
- altcodepro_polydb_python-2.2.5/README.md +404 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/pyproject.toml +2 -1
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/requirements.txt +49 -3
- altcodepro_polydb_python-2.2.5/src/altcodepro_polydb_python.egg-info/PKG-INFO +489 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/altcodepro_polydb_python.egg-info/SOURCES.txt +5 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/altcodepro_polydb_python.egg-info/requires.txt +4 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/AzureBlobStorageAdapter.py +52 -11
- altcodepro_polydb_python-2.2.5/src/polydb/adapters/BlockchainBlobAdapter.py +111 -0
- altcodepro_polydb_python-2.2.5/src/polydb/adapters/BlockchainKVAdapter.py +152 -0
- altcodepro_polydb_python-2.2.5/src/polydb/adapters/BlockchainQueueAdapter.py +116 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/GCPStorageAdapter.py +56 -10
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/S3Adapter.py +56 -8
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/S3CompatibleAdapter.py +62 -8
- altcodepro_polydb_python-2.2.5/src/polydb/adapters/VercelBlobAdapter.py +196 -0
- altcodepro_polydb_python-2.2.5/src/polydb/base/DataAccessRuntime.py +101 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/base/NoSQLKVAdapter.py +5 -1
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/base/ObjectStorageAdapter.py +19 -4
- altcodepro_polydb_python-2.2.5/src/polydb/cloudDatabaseFactory.py +224 -0
- altcodepro_polydb_python-2.2.5/src/polydb/models.py +101 -0
- altcodepro_polydb_python-2.2.5/tests/test_blockchain.py +106 -0
- altcodepro_polydb_python-2.2.3/PKG-INFO +0 -380
- altcodepro_polydb_python-2.2.3/README.md +0 -298
- altcodepro_polydb_python-2.2.3/src/altcodepro_polydb_python.egg-info/PKG-INFO +0 -380
- altcodepro_polydb_python-2.2.3/src/polydb/adapters/VercelBlobAdapter.py +0 -161
- altcodepro_polydb_python-2.2.3/src/polydb/cloudDatabaseFactory.py +0 -132
- altcodepro_polydb_python-2.2.3/src/polydb/models.py +0 -39
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/LICENSE +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/MANIFEST.in +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/example_usage.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/requirements-aws.txt +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/requirements-azure.txt +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/requirements-dev.txt +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/requirements-gcp.txt +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/requirements-generic.txt +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/setup.cfg +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/setup.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/altcodepro_polydb_python.egg-info/dependency_links.txt +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/altcodepro_polydb_python.egg-info/top_level.txt +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/__init__.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/AzureFileStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/AzureQueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/AzureTableStorageAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/DynamoDBAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/EFSAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/FirestoreAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/GCPPubSubAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/MongoDBAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/PostgreSQLAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/SQSAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/VercelKVAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/VercelQueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/adapters/__init__.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/advanced_query.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/audit/AuditStorage.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/audit/__init__.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/audit/context.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/audit/manager.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/audit/models.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/base/QueueAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/base/SharedFilesAdapter.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/base/__init__.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/batch.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/cache.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/databaseFactory.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/decorators.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/errors.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/json_safe.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/monitoring.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/multitenancy.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/py.typed +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/query.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/registry.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/retry.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/schema.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/security.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/types.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/utils.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/src/polydb/validation.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/tests/test_aws.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/tests/test_azure.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/tests/test_cloud_factory.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/tests/test_gcp.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/tests/test_mongodb.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/tests/test_multi_engine.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/tests/test_postgresql.py +0 -0
- {altcodepro_polydb_python-2.2.3 → altcodepro_polydb_python-2.2.5}/tests/test_vercel.py +0 -0
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: altcodepro-polydb-python
|
|
3
|
+
Version: 2.2.5
|
|
4
|
+
Summary: Production-ready multi-cloud database abstraction layer with connection pooling, retry logic, and thread safety
|
|
5
|
+
Author: AltCodePro
|
|
6
|
+
Project-URL: Homepage, https://github.com/altcodepro/polydb-python
|
|
7
|
+
Project-URL: Documentation, https://github.com/altcodepro/polydb-python#readme
|
|
8
|
+
Project-URL: Repository, https://github.com/altcodepro/polydb-python
|
|
9
|
+
Project-URL: Bug Tracker, https://github.com/altcodepro/polydb-python/issues
|
|
10
|
+
Keywords: database,cloud,multi-cloud,aws,azure,gcp,abstraction,nosql,sql,postgres,mongodb,dynamodb,s3
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Topic :: Database
|
|
14
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Operating System :: OS Independent
|
|
23
|
+
Requires-Python: >=3.8
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: psycopg2-binary>=2.9.11
|
|
27
|
+
Requires-Dist: tenacity>=9.1.4
|
|
28
|
+
Requires-Dist: redis>=6.4.0
|
|
29
|
+
Requires-Dist: python-dotenv>=1.1.1
|
|
30
|
+
Provides-Extra: aws
|
|
31
|
+
Requires-Dist: boto3>=1.42.47; extra == "aws"
|
|
32
|
+
Requires-Dist: botocore>=1.42.47; extra == "aws"
|
|
33
|
+
Provides-Extra: azure
|
|
34
|
+
Requires-Dist: azure-core>=1.38.1; extra == "azure"
|
|
35
|
+
Requires-Dist: azure-data-tables>=12.7.0; extra == "azure"
|
|
36
|
+
Requires-Dist: azure-storage-blob>=12.28.0; extra == "azure"
|
|
37
|
+
Requires-Dist: azure-storage-file-share>=12.24.0; extra == "azure"
|
|
38
|
+
Requires-Dist: azure-storage-queue>=12.15.0; extra == "azure"
|
|
39
|
+
Provides-Extra: gcp
|
|
40
|
+
Requires-Dist: google-api-core>=2.29.0; extra == "gcp"
|
|
41
|
+
Requires-Dist: google-auth>=2.48.0; extra == "gcp"
|
|
42
|
+
Requires-Dist: google-cloud-core>=2.5.0; extra == "gcp"
|
|
43
|
+
Requires-Dist: google-cloud-firestore>=2.23.0; extra == "gcp"
|
|
44
|
+
Requires-Dist: google-cloud-pubsub>=2.35.0; extra == "gcp"
|
|
45
|
+
Requires-Dist: google-cloud-storage>=3.9.0; extra == "gcp"
|
|
46
|
+
Provides-Extra: mongodb
|
|
47
|
+
Requires-Dist: pymongo>=4.16.0; extra == "mongodb"
|
|
48
|
+
Provides-Extra: rabbitmq
|
|
49
|
+
Requires-Dist: pika>=1.3.2; extra == "rabbitmq"
|
|
50
|
+
Provides-Extra: vercel
|
|
51
|
+
Requires-Dist: requests>=2.32.5; extra == "vercel"
|
|
52
|
+
Provides-Extra: bolckchain
|
|
53
|
+
Requires-Dist: ipfshttpclient>=0.7.0; extra == "bolckchain"
|
|
54
|
+
Requires-Dist: web3>=7.14.1; extra == "bolckchain"
|
|
55
|
+
Provides-Extra: generic
|
|
56
|
+
Requires-Dist: pymongo>=4.16.0; extra == "generic"
|
|
57
|
+
Requires-Dist: pika>=1.3.2; extra == "generic"
|
|
58
|
+
Requires-Dist: boto3>=1.42.47; extra == "generic"
|
|
59
|
+
Provides-Extra: all
|
|
60
|
+
Requires-Dist: boto3>=1.42.47; extra == "all"
|
|
61
|
+
Requires-Dist: botocore>=1.42.47; extra == "all"
|
|
62
|
+
Requires-Dist: azure-core>=1.38.1; extra == "all"
|
|
63
|
+
Requires-Dist: azure-data-tables>=12.7.0; extra == "all"
|
|
64
|
+
Requires-Dist: azure-storage-blob>=12.28.0; extra == "all"
|
|
65
|
+
Requires-Dist: azure-storage-file-share>=12.24.0; extra == "all"
|
|
66
|
+
Requires-Dist: azure-storage-queue>=12.15.0; extra == "all"
|
|
67
|
+
Requires-Dist: google-cloud-firestore>=2.23.0; extra == "all"
|
|
68
|
+
Requires-Dist: google-cloud-pubsub>=2.35.0; extra == "all"
|
|
69
|
+
Requires-Dist: google-cloud-storage>=3.9.0; extra == "all"
|
|
70
|
+
Requires-Dist: pymongo>=4.16.0; extra == "all"
|
|
71
|
+
Requires-Dist: pika>=1.3.2; extra == "all"
|
|
72
|
+
Requires-Dist: requests>=2.32.5; extra == "all"
|
|
73
|
+
Provides-Extra: dev
|
|
74
|
+
Requires-Dist: black>=26.1.0; extra == "dev"
|
|
75
|
+
Requires-Dist: flake8>=7.3.0; extra == "dev"
|
|
76
|
+
Requires-Dist: isort>=7.0.0; extra == "dev"
|
|
77
|
+
Requires-Dist: mypy>=1.19.1; extra == "dev"
|
|
78
|
+
Provides-Extra: test
|
|
79
|
+
Requires-Dist: pytest>=9.0.2; extra == "test"
|
|
80
|
+
Requires-Dist: pytest-asyncio>=1.2.0; extra == "test"
|
|
81
|
+
Requires-Dist: pytest-cov>=7.0.0; extra == "test"
|
|
82
|
+
Requires-Dist: pytest-mock>=3.15.1; extra == "test"
|
|
83
|
+
Requires-Dist: moto>=5.1.21; extra == "test"
|
|
84
|
+
Dynamic: license-file
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
# AltCodePro PolyDB
|
|
89
|
+
|
|
90
|
+
**AltCodePro PolyDB** is a production-ready **multi-cloud database abstraction layer for Python**.
|
|
91
|
+
|
|
92
|
+
It provides a **single unified API** for SQL, NoSQL, object storage, queues, and blockchain storage across major platforms including **AWS, Azure, GCP, Vercel, MongoDB, PostgreSQL, and Web3 networks**.
|
|
93
|
+
|
|
94
|
+
PolyDB enables developers to build **cloud-portable applications** without vendor lock-in.
|
|
95
|
+
|
|
96
|
+
It is designed for modern distributed systems that require:
|
|
97
|
+
|
|
98
|
+
* multi-cloud portability
|
|
99
|
+
* hybrid SQL + NoSQL architectures
|
|
100
|
+
* distributed storage routing
|
|
101
|
+
* event-driven queues
|
|
102
|
+
* object storage abstraction
|
|
103
|
+
* blockchain storage integration
|
|
104
|
+
* enterprise-grade reliability
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
# Architecture
|
|
109
|
+
|
|
110
|
+
PolyDB unifies multiple storage layers behind a single API.
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
PolyDB
|
|
114
|
+
│
|
|
115
|
+
┌──────────────┼──────────────┐
|
|
116
|
+
│ │ │
|
|
117
|
+
SQL DB NoSQL KV Queue
|
|
118
|
+
PostgreSQL Dynamo/Azure SQS/PubSub
|
|
119
|
+
│ │ │
|
|
120
|
+
└─────── Object Storage ─────┘
|
|
121
|
+
S3 / Blob
|
|
122
|
+
│
|
|
123
|
+
Blockchain
|
|
124
|
+
(KV / Blob / Queue)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
# Project Structure
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
polydb/
|
|
133
|
+
├ adapters/
|
|
134
|
+
│ ├ aws/
|
|
135
|
+
│ ├ azure/
|
|
136
|
+
│ ├ gcp/
|
|
137
|
+
│ ├ vercel/
|
|
138
|
+
│ └ blockchain/
|
|
139
|
+
│
|
|
140
|
+
├ core/
|
|
141
|
+
│ ├ database_factory.py
|
|
142
|
+
│ ├ query.py
|
|
143
|
+
│ ├ batch.py
|
|
144
|
+
│
|
|
145
|
+
├ security/
|
|
146
|
+
├ monitoring/
|
|
147
|
+
├ cache/
|
|
148
|
+
└ multitenancy/
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
# Key Features
|
|
154
|
+
|
|
155
|
+
## Multi-Cloud Support
|
|
156
|
+
|
|
157
|
+
Works across multiple cloud providers with automatic environment detection.
|
|
158
|
+
|
|
159
|
+
| Provider | NoSQL | Object Storage | Queue |
|
|
160
|
+
| ---------- | ----------------- | -------------- | ----------- |
|
|
161
|
+
| AWS | DynamoDB | S3 | SQS |
|
|
162
|
+
| Azure | Table Storage | Blob Storage | Azure Queue |
|
|
163
|
+
| GCP | Firestore | GCS | Pub/Sub |
|
|
164
|
+
| Vercel | KV (Redis) | Blob | Queue |
|
|
165
|
+
| MongoDB | MongoDB | — | — |
|
|
166
|
+
| PostgreSQL | SQL | S3-compatible | — |
|
|
167
|
+
| Blockchain | Smart Contract KV | IPFS | Event Queue |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
# ❤️ Support the Project
|
|
172
|
+
|
|
173
|
+
PolyDB is **free and open source**.
|
|
174
|
+
|
|
175
|
+
If you find this project useful, you can support continued development.
|
|
176
|
+
|
|
177
|
+
### Sponsor
|
|
178
|
+
|
|
179
|
+
[](https://github.com/sponsors)
|
|
180
|
+
|
|
181
|
+
Or support the project through AltCodePro:
|
|
182
|
+
|
|
183
|
+
[https://chatgpt.com/g/g-68d6efde65e0819192b9e130fb56b26b-altcodepro-gpt-idea-to-mvps-investor-docs](https://chatgpt.com/g/g-68d6efde65e0819192b9e130fb56b26b-altcodepro-gpt-idea-to-mvps-investor-docs)
|
|
184
|
+
|
|
185
|
+
Your support helps improve:
|
|
186
|
+
|
|
187
|
+
* multi-cloud database adapters
|
|
188
|
+
* blockchain storage integrations
|
|
189
|
+
* enterprise scalability features
|
|
190
|
+
* developer tooling and documentation
|
|
191
|
+
|
|
192
|
+
## Hybrid SQL + NoSQL
|
|
193
|
+
|
|
194
|
+
PolyDB allows applications to use **SQL and NoSQL together** without changing code.
|
|
195
|
+
|
|
196
|
+
Example architecture:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
Application
|
|
200
|
+
│
|
|
201
|
+
PolyDB DatabaseFactory
|
|
202
|
+
│
|
|
203
|
+
┌──────────────┬──────────────┐
|
|
204
|
+
│ │ │
|
|
205
|
+
SQL NoSQL Storage
|
|
206
|
+
(Postgres) (DynamoDB) (S3)
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Example:
|
|
210
|
+
|
|
211
|
+
```python
|
|
212
|
+
from polydb import DatabaseFactory
|
|
213
|
+
|
|
214
|
+
db = DatabaseFactory()
|
|
215
|
+
|
|
216
|
+
db.create(User, {"name": "Alice"})
|
|
217
|
+
db.read(User, {"email": "alice@email.com"})
|
|
218
|
+
db.update(User, 1, {"status": "active"})
|
|
219
|
+
db.delete(User, 1)
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Automatic Cloud Provider Detection
|
|
225
|
+
|
|
226
|
+
PolyDB automatically detects the cloud provider based on environment variables.
|
|
227
|
+
|
|
228
|
+
| Environment Variable | Provider |
|
|
229
|
+
| ------------------------------- | ---------- |
|
|
230
|
+
| AZURE_STORAGE_CONNECTION_STRING | Azure |
|
|
231
|
+
| AWS_ACCESS_KEY_ID | AWS |
|
|
232
|
+
| GOOGLE_CLOUD_PROJECT | GCP |
|
|
233
|
+
| VERCEL_ENV | Vercel |
|
|
234
|
+
| MONGODB_URI | MongoDB |
|
|
235
|
+
| POSTGRES_URL | PostgreSQL |
|
|
236
|
+
|
|
237
|
+
You can also manually set:
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
CLOUD_PROVIDER=aws
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
# Object Storage
|
|
246
|
+
|
|
247
|
+
PolyDB provides a unified API for cloud storage systems.
|
|
248
|
+
|
|
249
|
+
Supported backends:
|
|
250
|
+
|
|
251
|
+
* AWS S3
|
|
252
|
+
* Azure Blob Storage
|
|
253
|
+
* Google Cloud Storage
|
|
254
|
+
* Vercel Blob
|
|
255
|
+
* IPFS (Blockchain)
|
|
256
|
+
|
|
257
|
+
Example:
|
|
258
|
+
|
|
259
|
+
```python
|
|
260
|
+
storage = factory.get_object_storage()
|
|
261
|
+
|
|
262
|
+
storage.upload("file.txt", b"hello world")
|
|
263
|
+
storage.download("file.txt")
|
|
264
|
+
storage.delete("file.txt")
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
# Queue Abstraction
|
|
270
|
+
|
|
271
|
+
PolyDB supports distributed message queues.
|
|
272
|
+
|
|
273
|
+
Supported systems:
|
|
274
|
+
|
|
275
|
+
* AWS SQS
|
|
276
|
+
* Azure Queue
|
|
277
|
+
* Google Pub/Sub
|
|
278
|
+
* Vercel Queue
|
|
279
|
+
* Blockchain event queues
|
|
280
|
+
|
|
281
|
+
Example:
|
|
282
|
+
|
|
283
|
+
```python
|
|
284
|
+
queue = factory.get_queue()
|
|
285
|
+
|
|
286
|
+
queue.send_message("jobs", {"task": "process"})
|
|
287
|
+
msg = queue.receive_message("jobs")
|
|
288
|
+
queue.delete_message("jobs", msg)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
# Blockchain Storage
|
|
294
|
+
|
|
295
|
+
PolyDB includes experimental blockchain adapters.
|
|
296
|
+
|
|
297
|
+
Capabilities:
|
|
298
|
+
|
|
299
|
+
* Smart contract key-value storage
|
|
300
|
+
* IPFS blob storage
|
|
301
|
+
* Event-based queue systems
|
|
302
|
+
|
|
303
|
+
Supported networks:
|
|
304
|
+
|
|
305
|
+
* Ethereum
|
|
306
|
+
* Polygon
|
|
307
|
+
* BNB Chain
|
|
308
|
+
* Avalanche
|
|
309
|
+
* Local Ganache
|
|
310
|
+
|
|
311
|
+
Example:
|
|
312
|
+
|
|
313
|
+
```python
|
|
314
|
+
factory = CloudDatabaseFactory(provider="blockchain")
|
|
315
|
+
|
|
316
|
+
kv = factory.get_nosql_kv()
|
|
317
|
+
blob = factory.get_object_storage()
|
|
318
|
+
queue = factory.get_queue()
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
# Advanced Query Engine
|
|
324
|
+
|
|
325
|
+
PolyDB includes a LINQ-style query builder.
|
|
326
|
+
|
|
327
|
+
Supports:
|
|
328
|
+
|
|
329
|
+
* filtering
|
|
330
|
+
* ordering
|
|
331
|
+
* pagination
|
|
332
|
+
* projections
|
|
333
|
+
* count queries
|
|
334
|
+
|
|
335
|
+
Example:
|
|
336
|
+
|
|
337
|
+
```python
|
|
338
|
+
qb = QueryBuilder().where("age", Operator.GT, 18)
|
|
339
|
+
|
|
340
|
+
results = db.query_linq(User, qb)
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
# Batch Operations
|
|
346
|
+
|
|
347
|
+
High-performance bulk operations.
|
|
348
|
+
|
|
349
|
+
```python
|
|
350
|
+
db.batch.bulk_insert(User, users)
|
|
351
|
+
|
|
352
|
+
db.batch.bulk_update(User, updates)
|
|
353
|
+
|
|
354
|
+
db.batch.bulk_delete(User, ids)
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
# Multi-Tenancy
|
|
360
|
+
|
|
361
|
+
PolyDB supports SaaS-style tenant isolation.
|
|
362
|
+
|
|
363
|
+
Isolation strategies:
|
|
364
|
+
|
|
365
|
+
* shared schema
|
|
366
|
+
* separate schema
|
|
367
|
+
* separate database
|
|
368
|
+
|
|
369
|
+
Components:
|
|
370
|
+
|
|
371
|
+
* TenantRegistry
|
|
372
|
+
* TenantContext
|
|
373
|
+
* TenantIsolationEnforcer
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
# Caching
|
|
378
|
+
|
|
379
|
+
Built-in distributed caching using Redis.
|
|
380
|
+
|
|
381
|
+
Features:
|
|
382
|
+
|
|
383
|
+
* TTL caching
|
|
384
|
+
* LFU tracking
|
|
385
|
+
* cache warming
|
|
386
|
+
* cache invalidation
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
# Monitoring & Observability
|
|
391
|
+
|
|
392
|
+
PolyDB provides built-in metrics collection.
|
|
393
|
+
|
|
394
|
+
Tracks:
|
|
395
|
+
|
|
396
|
+
* query latency
|
|
397
|
+
* slow queries
|
|
398
|
+
* error rates
|
|
399
|
+
* cache hit rates
|
|
400
|
+
|
|
401
|
+
Prometheus export supported.
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
# Security
|
|
406
|
+
|
|
407
|
+
PolyDB includes enterprise-grade security features.
|
|
408
|
+
|
|
409
|
+
* field-level encryption
|
|
410
|
+
* row-level security
|
|
411
|
+
* audit logging
|
|
412
|
+
* tenant isolation
|
|
413
|
+
* data masking
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
# Installation
|
|
418
|
+
|
|
419
|
+
Install from PyPI:
|
|
420
|
+
|
|
421
|
+
```
|
|
422
|
+
pip install altcodepro-polydb-python
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
Optional dependencies:
|
|
426
|
+
|
|
427
|
+
```
|
|
428
|
+
pip install redis boto3 google-cloud-storage web3 ipfshttpclient
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
# Example
|
|
434
|
+
|
|
435
|
+
```python
|
|
436
|
+
from polydb import DatabaseFactory, polydb_model
|
|
437
|
+
|
|
438
|
+
@polydb_model
|
|
439
|
+
class User:
|
|
440
|
+
__polydb__ = {
|
|
441
|
+
"storage": "nosql"
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
db = DatabaseFactory()
|
|
445
|
+
|
|
446
|
+
db.create(User, {"name": "Alice"})
|
|
447
|
+
users = db.read(User, {"name": "Alice"})
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
# Why PolyDB
|
|
453
|
+
|
|
454
|
+
PolyDB replaces multiple infrastructure SDKs with one API.
|
|
455
|
+
|
|
456
|
+
| Traditional Approach | PolyDB |
|
|
457
|
+
| ------------------------------ | ----------------------- |
|
|
458
|
+
| Multiple cloud SDKs | One unified API |
|
|
459
|
+
| Provider lock-in | Multi-cloud portability |
|
|
460
|
+
| Separate queue/storage clients | Unified infrastructure |
|
|
461
|
+
| Complex data routing | Automatic routing |
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
# Roadmap
|
|
466
|
+
|
|
467
|
+
Planned features:
|
|
468
|
+
|
|
469
|
+
* GraphQL API layer
|
|
470
|
+
* distributed transactions
|
|
471
|
+
* vector database support
|
|
472
|
+
* AI retrieval pipelines
|
|
473
|
+
* edge database adapters
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
# License
|
|
478
|
+
|
|
479
|
+
MIT License
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
# Links
|
|
484
|
+
|
|
485
|
+
PyPI
|
|
486
|
+
[https://pypi.org/project/altcodepro-polydb-python/](https://pypi.org/project/altcodepro-polydb-python/)
|
|
487
|
+
|
|
488
|
+
Website
|
|
489
|
+
[https://chatgpt.com/g/g-68d6efde65e0819192b9e130fb56b26b-altcodepro-gpt-idea-to-mvps-investor-docs](https://chatgpt.com/g/g-68d6efde65e0819192b9e130fb56b26b-altcodepro-gpt-idea-to-mvps-investor-docs)
|