<p align="center">
<img src="https://res.cloudinary.com/dclp2h92a/image/upload/v1756577773/ChatGPT_Image_Aug_30_2025_11_01_26_PM_i6o5k7.png" alt="Akron ORM Logo" width="180"/>
</p>
# Akron
Universal, framework-independent ORM for Python.
---
## Getting Started
```python
from pydantic import BaseModel
from akron import Akron
from akron.models import ModelMixin
class User(BaseModel, ModelMixin):
id: int
name: str
age: int
db = Akron("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
akron makemigrations users --db sqlite:///test.db --schema '{"id": "int", "name": "str"}'
akron migrate users --db sqlite:///test.db
akron create-table users --db sqlite:///test.db --schema '{"id": "int", "name": "str"}'
akron drop-table users --db sqlite:///test.db
akron inspect-schema users --db sqlite:///test.db
akron seed users --db sqlite:///test.db --data '{"id": 1, "name": "Alice"}'
akron raw-sql --db sqlite:///test.db --sql "SELECT * FROM users"
```
---
## Versioning & Changelog
- Current version: **v0.1.1**
- See `CHANGELOG.md` for updates.
---
## PyPI Installation
```bash
pip install akron
```
---
## License
[MIT](LICENSE)
Raw data
{
"_id": null,
"home_page": "https://github.com/Akash-nath29/akron",
"name": "akron",
"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/85/d5/d2278fe1b2ce70ea3d2bae9c7072d2d69d4596ee36f4023bdb254b430adf/akron-0.1.5.tar.gz",
"platform": null,
"description": "\r\n\r\n<p align=\"center\">\r\n\t<img src=\"https://res.cloudinary.com/dclp2h92a/image/upload/v1756577773/ChatGPT_Image_Aug_30_2025_11_01_26_PM_i6o5k7.png\" alt=\"Akron ORM Logo\" width=\"180\"/>\r\n</p>\r\n\r\n\r\n\r\n# Akron\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\n\r\nfrom akron import Akron\r\nfrom akron.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 = Akron(\"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\nakron makemigrations users --db sqlite:///test.db --schema '{\"id\": \"int\", \"name\": \"str\"}'\r\nakron migrate users --db sqlite:///test.db\r\nakron create-table users --db sqlite:///test.db --schema '{\"id\": \"int\", \"name\": \"str\"}'\r\nakron drop-table users --db sqlite:///test.db\r\nakron inspect-schema users --db sqlite:///test.db\r\nakron seed users --db sqlite:///test.db --data '{\"id\": 1, \"name\": \"Alice\"}'\r\nakron 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.1**\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 akron\r\n```\r\n\r\n---\r\n\r\n## License\r\n[MIT](LICENSE)\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Universal, framework-independent ORM for Python.",
"version": "0.1.5",
"project_urls": {
"Homepage": "https://github.com/Akash-nath29/akron"
},
"split_keywords": [
"orm",
"database",
"sql",
"nosql",
"sqlite",
"mysql",
"postgres",
"mongodb"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "51fdedb246c790aac1a329fdc4b3968469f6f16a1105fa0d113c37d5182b79ab",
"md5": "8f42fecdb1b573ab5be77c9e043a2a8d",
"sha256": "32e7c27f00592492258c86aa75ab1aeaa3ab039a8370916a98f8b648e451596f"
},
"downloads": -1,
"filename": "akron-0.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f42fecdb1b573ab5be77c9e043a2a8d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 15278,
"upload_time": "2025-08-31T17:27:28",
"upload_time_iso_8601": "2025-08-31T17:27:28.748452Z",
"url": "https://files.pythonhosted.org/packages/51/fd/edb246c790aac1a329fdc4b3968469f6f16a1105fa0d113c37d5182b79ab/akron-0.1.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "85d5d2278fe1b2ce70ea3d2bae9c7072d2d69d4596ee36f4023bdb254b430adf",
"md5": "5251f509d1c7810e3652f268783efe29",
"sha256": "2c0b863eb0e289c66f6615669768e638a964fddf6bdbbddf6b850814431c889f"
},
"downloads": -1,
"filename": "akron-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "5251f509d1c7810e3652f268783efe29",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 13693,
"upload_time": "2025-08-31T17:27:31",
"upload_time_iso_8601": "2025-08-31T17:27:31.397264Z",
"url": "https://files.pythonhosted.org/packages/85/d5/d2278fe1b2ce70ea3d2bae9c7072d2d69d4596ee36f4023bdb254b430adf/akron-0.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-31 17:27:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Akash-nath29",
"github_project": "akron",
"github_not_found": true,
"lcname": "akron"
}