{"id":27249558,"url":"https://github.com/glandjs/http","last_synced_at":"2026-03-06T14:01:59.608Z","repository":{"id":287219025,"uuid":"961933935","full_name":"glandjs/http","owner":"glandjs","description":"HTTP adapter layer for Gland.","archived":false,"fork":false,"pushed_at":"2025-05-17T07:26:52.000Z","size":149,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-27T05:52:19.572Z","etag":null,"topics":["express","fastify","gland","glandjs","http"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glandjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-07T11:53:56.000Z","updated_at":"2025-05-17T07:25:56.000Z","dependencies_parsed_at":"2025-04-12T03:19:28.806Z","dependency_job_id":null,"html_url":"https://github.com/glandjs/http","commit_stats":null,"previous_names":["glandjs/http"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/glandjs/http","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glandjs%2Fhttp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glandjs%2Fhttp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glandjs%2Fhttp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glandjs%2Fhttp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glandjs","download_url":"https://codeload.github.com/glandjs/http/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glandjs%2Fhttp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30180638,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T12:39:21.703Z","status":"ssl_error","status_checked_at":"2026-03-06T12:36:09.819Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["express","fastify","gland","glandjs","http"],"created_at":"2025-04-11T00:18:07.540Z","updated_at":"2026-03-06T14:01:59.593Z","avatar_url":"https://github.com/glandjs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"#\" target=\"blank\"\u003e\u003cimg src=\"https://github.com/glandjs/glandjs.github.io/blob/main/public/logo.png\" width=\"200\" alt=\"Gland Logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://npmjs.com/package/@glandjs/http\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@glandjs/http.svg\" alt=\"NPM Version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://npmjs.com/package/@glandjs/http\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/@glandjs/http.svg\" alt=\"Package License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://npmjs.com/package/@glandjs/http\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/@glandjs/http.svg\" alt=\"NPM Downloads\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e@glandjs/http\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eAn HTTP transport layer built on Gland's event-driven architecture – fully pluggable, protocol-agnostic, and minimal.\u003c/p\u003e\n\n## Description\n\n\u003e What if HTTP was just another event?\n\n**@glandjs/http** is the official HTTP adapter for the Gland architecture. It implements an extensible and modular layer that transforms incoming HTTP requests into Gland-compatible events and routes them to the appropriate channel for processing.\n\nUnlike traditional HTTP routers, this package does not define “controllers” or “routes” in a conventional sense. Instead, it seamlessly integrates with the Gland event system, allowing you to treat HTTP interactions just like any other message within the system.\n\n## Features\n\n- 🚦 Lightweight HTTP server (Express, Fastify support planned)\n- 🔌 Pluggable HTTP broker with full channel support\n- 📦 Built-in request lifecycle hooks\n- ⚙️ Fully integrated with Gland DI container and event broker\n- 🛡️ Supports middleware-style interceptors via event channels\n- 🌐 Easily extendable to support REST APIs, RPC over HTTP, etc.\n\n## Philosophy\n\nHTTP is just a transport layer.\n\n`@glandjs/http` treats HTTP not as a monolithic interface but as a message-based protocol. Instead of focusing on REST conventions, it listens to HTTP events, converts them to internal messages, and passes them through the same event-driven lifecycle used throughout Gland.\n\nBy abstracting away the server and routing logic, we allow developers to focus on core application behavior and reuse the same channel logic across different protocols (WebSocket, RPC, etc.).\n\n---\n\n## Documentation\n\n- [Official Documentation](#)\n- [Channel API Reference](#)\n- [Example Projects](#)\n- [Contributing Guide](./docs/CONTRIBUTING.md)\n\n---\n\n## Contributing\n\nWe welcome contributions to help improve `@glandjs/http` and strengthen Gland's transport ecosystem.\n\nTo contribute:\n\n1. Fork this repository.\n2. Follow the [CONTRIBUTING.md](./docs/CONTRIBUTING.md) guidelines.\n3. Use the appropriate [Issue templates](./.github/ISSUE_TEMPLATE) for bug reports and feature requests.\n4. Follow our [Pull Request template](./.github/PULL_REQUEST_TEMPLATE.md) when submitting PRs.\n\n---\n\n## License\n\nLicensed under the MIT License. See the [LICENSE](./LICENSE) file for full details.\n\n---\n\n## Related Packages\n\n- [`@glandjs/core`](https://npmjs.com/package/@glandjs/core) – Core application \u0026 DI\n- [`@glandjs/events`](https://npmjs.com/package/@glandjs/events) – Event bus and broker infrastructure\n- [`@glandjs/common`](https://npmjs.com/package/@glandjs/common) – Shared decorators and utilities\n\n---\n\n## Stay in Touch\n\n- Discord Community: https://discord.gg/GtRtkrEYwR\n- GitHub Discussions: https://github.com/orgs/glandjs/discussions\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglandjs%2Fhttp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglandjs%2Fhttp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglandjs%2Fhttp/lists"}