<p align="center">
<img src="logo.png" alt="Mosaic ORM Logo" width="180"/>
</p>
# MosaicDB
Universal, framework-independent ORM for Python.
---
## Getting Started
```python
from pydantic import BaseModel
from mosaicdb import Mosaic
from mosaicdb.models import ModelMixin
class User(BaseModel, ModelMixin):
id: int
name: str
age: int
db = Mosaic("sqlite:///test.db")
User.create_table(db)
User.insert(db, User(id=1, name="Alice", age=30))
users = User.find(db)
print(users)
```
---
## Features Table
| Feature | Supported |
|------------------------|-----------|
| Simple Syntax | ✅ |
| Multi-DB Support | ✅ |
| Multi-Table/FK | ✅ |
| Auto Migrations | ✅ |
| CLI | ✅ |
| Typesafe Models | ✅ |
| NoSQL (MongoDB) | ✅ |
| Error Handling | ✅ |
| Test Coverage | ✅ |
---
## Database Support Matrix
| Database | CRUD | FKs | Migrations | CLI | Typesafe Models |
|-------------|------|-----|------------|-----|-----------------|
| SQLite | ✅ | ✅ | ✅ | ✅ | ✅ |
| MySQL | ✅ | ✅ | ✅ | ✅ | ✅ |
| PostgreSQL | ✅ | ✅ | ✅ | ✅ | ✅ |
| MongoDB | ✅ | ❌ | Schemaless | ✅ | ✅ |
---
## CLI Command Examples
```bash
mosaicdb makemigrations users --db sqlite:///test.db --schema '{"id": "int", "name": "str"}'
mosaicdb migrate users --db sqlite:///test.db
mosaicdb create-table users --db sqlite:///test.db --schema '{"id": "int", "name": "str"}'
mosaicdb drop-table users --db sqlite:///test.db
mosaicdb inspect-schema users --db sqlite:///test.db
mosaicdb seed users --db sqlite:///test.db --data '{"id": 1, "name": "Alice"}'
mosaicdb raw-sql --db sqlite:///test.db --sql "SELECT * FROM users"
```
---
## Versioning & Changelog
- Current version: **v0.1.0-alpha**
- See `CHANGELOG.md` for updates.
---
## PyPI Installation
```bash
pip install mosaicdb
```
---
## License
MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/Akash-nath29/mosaic",
"name": "mosaicdb",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "orm database sql nosql sqlite mysql postgres mongodb",
"author": "Akash Nath",
"author_email": "anath5440@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/e4/2e/c09600c05351097a7e45c60f29b7a7968231baa6077f042e58f802530b7d/mosaicdb-0.1.1.tar.gz",
"platform": null,
"description": "\r\n\r\n<p align=\"center\">\r\n\t<img src=\"logo.png\" alt=\"Mosaic ORM Logo\" width=\"180\"/>\r\n</p>\r\n\r\n\r\n# MosaicDB\r\n\r\nUniversal, framework-independent ORM for Python.\r\n\r\n---\r\n\r\n## Getting Started\r\n\r\n```python\r\nfrom pydantic import BaseModel\r\nfrom mosaicdb import Mosaic\r\nfrom mosaicdb.models import ModelMixin\r\n\r\nclass User(BaseModel, ModelMixin):\r\n\tid: int\r\n\tname: str\r\n\tage: int\r\n\r\ndb = Mosaic(\"sqlite:///test.db\")\r\nUser.create_table(db)\r\nUser.insert(db, User(id=1, name=\"Alice\", age=30))\r\nusers = User.find(db)\r\nprint(users)\r\n```\r\n\r\n---\r\n\r\n## Features Table\r\n| Feature | Supported |\r\n|------------------------|-----------|\r\n| Simple Syntax | \u2705 |\r\n| Multi-DB Support | \u2705 |\r\n| Multi-Table/FK | \u2705 |\r\n| Auto Migrations | \u2705 |\r\n| CLI | \u2705 |\r\n| Typesafe Models | \u2705 |\r\n| NoSQL (MongoDB) | \u2705 |\r\n| Error Handling | \u2705 |\r\n| Test Coverage | \u2705 |\r\n\r\n---\r\n\r\n## Database Support Matrix\r\n| Database | CRUD | FKs | Migrations | CLI | Typesafe Models |\r\n|-------------|------|-----|------------|-----|-----------------|\r\n| SQLite | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\r\n| MySQL | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\r\n| PostgreSQL | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\r\n| MongoDB | \u2705 | \u274c | Schemaless | \u2705 | \u2705 |\r\n\r\n---\r\n\r\n## CLI Command Examples\r\n\r\n```bash\r\nmosaicdb makemigrations users --db sqlite:///test.db --schema '{\"id\": \"int\", \"name\": \"str\"}'\r\nmosaicdb migrate users --db sqlite:///test.db\r\nmosaicdb create-table users --db sqlite:///test.db --schema '{\"id\": \"int\", \"name\": \"str\"}'\r\nmosaicdb drop-table users --db sqlite:///test.db\r\nmosaicdb inspect-schema users --db sqlite:///test.db\r\nmosaicdb seed users --db sqlite:///test.db --data '{\"id\": 1, \"name\": \"Alice\"}'\r\nmosaicdb raw-sql --db sqlite:///test.db --sql \"SELECT * FROM users\"\r\n```\r\n\r\n---\r\n\r\n## Versioning & Changelog\r\n- Current version: **v0.1.0-alpha**\r\n- See `CHANGELOG.md` for updates.\r\n\r\n---\r\n\r\n\r\n## PyPI Installation\r\n\r\n```bash\r\npip install mosaicdb\r\n```\r\n\r\n---\r\n\r\n## License\r\nMIT\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Universal, framework-independent ORM for Python.",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/Akash-nath29/mosaic"
},
"split_keywords": [
"orm",
"database",
"sql",
"nosql",
"sqlite",
"mysql",
"postgres",
"mongodb"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "66202a83b4337b717ec5f90fe04ea666d1cc0c780434d8da92e84b1ca84619b5",
"md5": "1c748b4af807f11dca400089cbce246a",
"sha256": "825d920cc2399a00dfc85e722934875ea1645d5f49728a9c43bf5af4a9dfff08"
},
"downloads": -1,
"filename": "mosaicdb-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1c748b4af807f11dca400089cbce246a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 8832,
"upload_time": "2025-08-30T17:53:08",
"upload_time_iso_8601": "2025-08-30T17:53:08.038825Z",
"url": "https://files.pythonhosted.org/packages/66/20/2a83b4337b717ec5f90fe04ea666d1cc0c780434d8da92e84b1ca84619b5/mosaicdb-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e42ec09600c05351097a7e45c60f29b7a7968231baa6077f042e58f802530b7d",
"md5": "461342c5d9102061a2bfab542ba1e94b",
"sha256": "c7f8bdedf9fabb8baac7af25c6238ea33812b417e5373792a128e1434af135c2"
},
"downloads": -1,
"filename": "mosaicdb-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "461342c5d9102061a2bfab542ba1e94b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 10691,
"upload_time": "2025-08-30T17:53:09",
"upload_time_iso_8601": "2025-08-30T17:53:09.453047Z",
"url": "https://files.pythonhosted.org/packages/e4/2e/c09600c05351097a7e45c60f29b7a7968231baa6077f042e58f802530b7d/mosaicdb-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-30 17:53:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Akash-nath29",
"github_project": "mosaic",
"github_not_found": true,
"lcname": "mosaicdb"
}