# S3NoSQLDB
A NoSQL Database Implementation using Amazon S3 for storage.
## Features
- Create and manage collections in S3 buckets
- Batch document insertion with automatic ID generation
- Concurrent processing using ThreadPoolExecutor
- Query documents using custom filter functions
- Parquet file format with gzip compression
## Installation
```bash
pip install s3nosqldb
```
## Quick Start
```python
from s3nosqldb import S3NoSQLDB
# Initialize the database
db = S3NoSQLDB(
bucket_name="your-bucket-name",
base_path="optional/path",
batch_size=50000,
max_workers=4
)
# Create a collection
db.create_collection("users", id_field="user_id", auto_generate_id=True)
# Insert documents
users = [
{"name": "John Doe", "age": 30},
{"name": "Jane Smith", "age": 25}
]
db.insert_batch("users", users)
# Query documents
def age_filter(doc):
return doc["age"] > 25
results = db.query("users", filter_fn=age_filter)
```
## Development
1. Clone the repository:
```bash
git clone https://github.com/yourusername/s3nosqldb.git
cd s3nosqldb
```
2. Create a virtual environment and install dependencies:
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e .[dev]
```
3. Run tests:
```bash
pytest
```
## License
This project is licensed under the MIT License - see the LICENSE file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/yourusername/s3nosqldb",
"name": "s3nosqldb",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Your Name",
"author_email": "your.email@example.com",
"download_url": "https://files.pythonhosted.org/packages/55/31/ebb59c304b2f8c559ab98ea63ec7938e064a80836b8cc06fa6467f306d14/s3nosqldb-0.1.0.tar.gz",
"platform": null,
"description": "# S3NoSQLDB\n\nA NoSQL Database Implementation using Amazon S3 for storage.\n\n## Features\n\n- Create and manage collections in S3 buckets\n- Batch document insertion with automatic ID generation\n- Concurrent processing using ThreadPoolExecutor\n- Query documents using custom filter functions\n- Parquet file format with gzip compression\n\n## Installation\n\n```bash\npip install s3nosqldb\n```\n\n## Quick Start\n\n```python\nfrom s3nosqldb import S3NoSQLDB\n\n# Initialize the database\ndb = S3NoSQLDB(\n bucket_name=\"your-bucket-name\",\n base_path=\"optional/path\",\n batch_size=50000,\n max_workers=4\n)\n\n# Create a collection\ndb.create_collection(\"users\", id_field=\"user_id\", auto_generate_id=True)\n\n# Insert documents\nusers = [\n {\"name\": \"John Doe\", \"age\": 30},\n {\"name\": \"Jane Smith\", \"age\": 25}\n]\ndb.insert_batch(\"users\", users)\n\n# Query documents\ndef age_filter(doc):\n return doc[\"age\"] > 25\n\nresults = db.query(\"users\", filter_fn=age_filter)\n```\n\n## Development\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/s3nosqldb.git\ncd s3nosqldb\n```\n\n2. Create a virtual environment and install dependencies:\n```bash\npython -m venv venv\nsource venv/bin/activate # On Windows: venv\\Scripts\\activate\npip install -e .[dev]\n```\n\n3. Run tests:\n```bash\npytest\n```\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n",
"bugtrack_url": null,
"license": null,
"summary": "A NoSQL Database Implementation using Amazon S3",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/yourusername/s3nosqldb"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9fe4c2c66dd9fc4d5c46878a6186dacb68dc37d84dc81f1aa44c1e24508b00d8",
"md5": "042b798e0239dd531984b386b9bcc3c1",
"sha256": "97c10f5db61d52c6aff81c1eaaed7c07f1e9a58de1d1fc182600304c43668dbb"
},
"downloads": -1,
"filename": "s3nosqldb-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "042b798e0239dd531984b386b9bcc3c1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 5354,
"upload_time": "2024-10-31T17:00:34",
"upload_time_iso_8601": "2024-10-31T17:00:34.195574Z",
"url": "https://files.pythonhosted.org/packages/9f/e4/c2c66dd9fc4d5c46878a6186dacb68dc37d84dc81f1aa44c1e24508b00d8/s3nosqldb-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5531ebb59c304b2f8c559ab98ea63ec7938e064a80836b8cc06fa6467f306d14",
"md5": "17372395b437e1a738c9e9550a3e8756",
"sha256": "5957ae60868f24357efc4d655970ea8ae221e0d7ae6e267228b91106db761727"
},
"downloads": -1,
"filename": "s3nosqldb-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "17372395b437e1a738c9e9550a3e8756",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 5576,
"upload_time": "2024-10-31T17:00:35",
"upload_time_iso_8601": "2024-10-31T17:00:35.883197Z",
"url": "https://files.pythonhosted.org/packages/55/31/ebb59c304b2f8c559ab98ea63ec7938e064a80836b8cc06fa6467f306d14/s3nosqldb-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-31 17:00:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yourusername",
"github_project": "s3nosqldb",
"github_not_found": true,
"lcname": "s3nosqldb"
}