Name | hooklet JSON |
Version |
0.5.8
JSON |
| download |
home_page | None |
Summary | An asynchronous, event-driven Python framework using NATS messaging system |
upload_time | 2025-07-12 04:43:14 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Hooklet
[](https://codecov.io/gh/yitech/hooklet)
Hooklet is an event-driven framework that enables building distributed systems using message broker architecture. The v3 version centralize different data transmission models (pub/sub, req/reply) with respect to different underlying implementations. (e.g. NATS, ~~ZeroMQ~~, native Python asyncio)
## Architecture
### Core Components
1. **Pilot**
- Abstract message broker layer
- Predefined/Customized header support
- Topic based data routing
2. **Node**
- High level data transmission model base on Pilot
## Testing
Hooklet includes both unit tests and integration tests. Integration tests require a NATS server with JetStream support.
### Running Tests
```bash
# Run all tests (unit + integration, auto-starts NATS with Docker)
./scripts/test.sh all
# Run only unit tests
./scripts/test.sh unittest
# Run only integration tests (auto-starts NATS with Docker)
./scripts/test.sh integration
# Clean test caches
./scripts/test.sh clean
```
### Integration Test Requirements
Integration tests need a NATS server running on `localhost:4222` with JetStream enabled. The test script will automatically:
1. Check if NATS is already running
2. If not, start NATS using `docker-compose up -d nats`
3. Run the integration tests
4. Clean up the Docker container if it was started by the script
### Manual NATS Setup
If you prefer to manage NATS manually:
```bash
# Option 2: Using Docker directly
docker run -d --name nats-server -p 4222:4222 -p 8222:8222 nats:latest -js
```
### CI/CD
Integration tests run automatically in GitHub Actions with a hosted NATS instance for every push and pull request to the `main` branch.
Raw data
{
"_id": null,
"home_page": null,
"name": "hooklet",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Yite <coastq22889@icloud.com>",
"download_url": "https://files.pythonhosted.org/packages/72/f4/8cf6374f77d5e477a50d9fda0e516e9b503d93170d925929691308a1cac9/hooklet-0.5.8.tar.gz",
"platform": null,
"description": "# Hooklet\n[](https://codecov.io/gh/yitech/hooklet)\n\n\nHooklet is an event-driven framework that enables building distributed systems using message broker architecture. The v3 version centralize different data transmission models (pub/sub, req/reply) with respect to different underlying implementations. (e.g. NATS, ~~ZeroMQ~~, native Python asyncio)\n\n## Architecture\n\n### Core Components\n\n1. **Pilot**\n - Abstract message broker layer\n - Predefined/Customized header support\n - Topic based data routing\n\n2. **Node**\n - High level data transmission model base on Pilot\n\n## Testing\n\nHooklet includes both unit tests and integration tests. Integration tests require a NATS server with JetStream support.\n\n### Running Tests\n\n```bash\n# Run all tests (unit + integration, auto-starts NATS with Docker)\n./scripts/test.sh all\n\n# Run only unit tests\n./scripts/test.sh unittest\n\n# Run only integration tests (auto-starts NATS with Docker)\n./scripts/test.sh integration\n\n# Clean test caches\n./scripts/test.sh clean\n```\n\n### Integration Test Requirements\n\nIntegration tests need a NATS server running on `localhost:4222` with JetStream enabled. The test script will automatically:\n\n1. Check if NATS is already running\n2. If not, start NATS using `docker-compose up -d nats`\n3. Run the integration tests\n4. Clean up the Docker container if it was started by the script\n\n### Manual NATS Setup\n\nIf you prefer to manage NATS manually:\n\n```bash\n# Option 2: Using Docker directly\ndocker run -d --name nats-server -p 4222:4222 -p 8222:8222 nats:latest -js\n```\n\n### CI/CD\n\nIntegration tests run automatically in GitHub Actions with a hosted NATS instance for every push and pull request to the `main` branch.\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "An asynchronous, event-driven Python framework using NATS messaging system",
"version": "0.5.8",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e4450cf74227cc32d3a9eb68b2a9604c94b1b8f7a610e672756071a109b71241",
"md5": "753d9afbf01dac8cef832900c3ab2974",
"sha256": "b11ebac34f4149e70d44f54604321ef2c6868690c91d1d83695465d8ec9e87f9"
},
"downloads": -1,
"filename": "hooklet-0.5.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "753d9afbf01dac8cef832900c3ab2974",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 21880,
"upload_time": "2025-07-12T04:43:13",
"upload_time_iso_8601": "2025-07-12T04:43:13.007633Z",
"url": "https://files.pythonhosted.org/packages/e4/45/0cf74227cc32d3a9eb68b2a9604c94b1b8f7a610e672756071a109b71241/hooklet-0.5.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "72f48cf6374f77d5e477a50d9fda0e516e9b503d93170d925929691308a1cac9",
"md5": "7619f478efb2d60e372599b9611a964e",
"sha256": "8a1aad901450e5eb157ab16b561107b8b14f60f34c4e6f30db2f73bd4d769d8d"
},
"downloads": -1,
"filename": "hooklet-0.5.8.tar.gz",
"has_sig": false,
"md5_digest": "7619f478efb2d60e372599b9611a964e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 24476,
"upload_time": "2025-07-12T04:43:14",
"upload_time_iso_8601": "2025-07-12T04:43:14.368310Z",
"url": "https://files.pythonhosted.org/packages/72/f4/8cf6374f77d5e477a50d9fda0e516e9b503d93170d925929691308a1cac9/hooklet-0.5.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 04:43:14",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "hooklet"
}