hooklet


Namehooklet JSON
Version 0.5.8 PyPI version JSON
download
home_pageNone
SummaryAn asynchronous, event-driven Python framework using NATS messaging system
upload_time2025-07-12 04:43:14
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Hooklet
[![codecov](https://codecov.io/gh/yitech/hooklet/graph/badge.svg?token=3kf2NZNMKe)](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[![codecov](https://codecov.io/gh/yitech/hooklet/graph/badge.svg?token=3kf2NZNMKe)](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"
}
        
Elapsed time: 0.45714s