Metadata-Version: 2.5
Name: hookly
Version: 0.1.1
Summary: Batteries-included backend toolkit for Python — API, DB and CRM, ready to call.
Project-URL: Homepage, https://github.com/Xar1ee/hookly
Project-URL: Repository, https://github.com/Xar1ee/hookly
Project-URL: Issues, https://github.com/Xar1ee/hookly/issues
Author-email: Safaraliyev Xushnud <xushnudbackend@gmail.com>
License: MIT
Keywords: api,backend,crm,framework,sqlite,toolkit
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == 'dev'
Description-Content-Type: text/markdown

# ⚡ Hookly

**Batteries-included backend toolkit for Python.**
Stop wiring up an API, a database layer and a CRM by hand — import Hookly and call it.

![PyPI](https://img.shields.io/badge/pypi-hookly-blue)
![Python](https://img.shields.io/badge/python-3.10%2B-blue)
![License](https://img.shields.io/badge/license-MIT-green)

---

## Why Hookly

Every backend needs the same handful of things: an API layer, a place to store
data, and something to track contacts, leads or tickets. Hookly ships all
three as ready-made modules that work together out of the box — you call
them, you don't rebuild them.

```python
from hookly import Database, CRM, API

db = Database("app.db")
crm = CRM(db)
api = API("my-service")

@api.get("/contacts")
def list_contacts():
    return crm.list_contacts()

@api.post("/contacts")
def new_contact():
    return crm.add_contact("Ali", phone="+998901234567").__dict__

api.run(port=8000)
```

That's a working API + database + CRM. No boilerplate.

---

## Install

```bash
pip install hookly
```

(local dev: `pip install -e ".[dev]"` from the project root)

---

## Modules

### `hookly.db` — SQLite without the ceremony

```python
from hookly import Database

db = Database("app.db")
db.create_table("users", {"id": "INTEGER PRIMARY KEY", "name": "TEXT"})
db.insert("users", name="Ali")
db.fetchall("SELECT * FROM users")
```

### `hookly.crm` — contacts and leads, ready to go

```python
from hookly import CRM

crm = CRM()
contact = crm.add_contact("Ali", email="ali@example.com")
crm.update_status(contact.id, "in_progress")
crm.list_contacts(status="in_progress")
```

### `hookly.api` — a tiny decorator-based router

```python
from hookly import API

api = API("my-service")

@api.get("/ping")
def ping():
    return {"status": "ok"}

api.run(port=8000)
```

---

## Roadmap

- [ ] Async support (`AsyncDatabase`, `AsyncAPI`)
- [ ] Auth module (`hookly.auth`)
- [ ] PostgreSQL backend for `hookly.db`
- [ ] CLI: `hookly new my-project`

---

## Philosophy

Hookly isn't trying to replace FastAPI or Django — it's for the moment
before that, when you just need something working *now*: a table, an
endpoint, a contact list. Grow out of it, swap in the big tools later.

---

## License

MIT
