{"id":46540211,"url":"https://github.com/yelix-cloud/yelix","last_synced_at":"2026-05-11T08:21:30.717Z","repository":{"id":279862151,"uuid":"940244334","full_name":"yelix-cloud/yelix","owner":"yelix-cloud","description":"Yelix is a powerful web server framework built specifically for Deno, leveraging the Hono in the background. It simplifies backend development with automated features, including built-in data validation, OpenAPI 3.1 support, and auto-generated backend documentation.","archived":false,"fork":false,"pushed_at":"2025-05-01T18:43:55.000Z","size":286,"stargazers_count":10,"open_issues_count":8,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-13T10:49:34.869Z","etag":null,"topics":["deno","web-framework","webserver"],"latest_commit_sha":null,"homepage":"https://docs.yelix.dev","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/yelix-cloud.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-27T21:07:31.000Z","updated_at":"2025-10-01T13:59:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"f18e2a2e-db8e-4580-a126-6521c1904b5e","html_url":"https://github.com/yelix-cloud/yelix","commit_stats":null,"previous_names":["groophylifefor/yelix","yelixjs/yelix","yelix-cloud/yelix"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yelix-cloud/yelix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yelix-cloud%2Fyelix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yelix-cloud%2Fyelix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yelix-cloud%2Fyelix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yelix-cloud%2Fyelix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yelix-cloud","download_url":"https://codeload.github.com/yelix-cloud/yelix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yelix-cloud%2Fyelix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30204446,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["deno","web-framework","webserver"],"created_at":"2026-03-07T01:01:10.341Z","updated_at":"2026-03-07T01:01:11.335Z","avatar_url":"https://github.com/yelix-cloud.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yelix\n\n[![JSR](https://jsr.io/badges/@murat/yelix)](https://jsr.io/@murat/yelix/)\n\nYelix is a powerful web server framework built specifically for\n[Deno](https://deno.land/), leveraging the [Hono](https://hono.dev/) framework\nin the background. It simplifies backend development with automated features,\nincluding built-in data validation, OpenAPI 3.1 support, and auto-generated\nbackend documentation.\n\n## Features\n\n- **Hono-based routing** – Fast and lightweight request handling.\n- **Automatic data validation** – Supports query and body validation using\n  [Zod](https://zod.dev/).\n- **OpenAPI 3.1 integration** – Auto-generates API documentation.\n- **Backend documentation generation** – Creates comprehensive API docs with\n  minimal setup.\n- **Optional automation** – Features can be enabled or disabled as needed.\n- **Deno-native** – Designed specifically for Deno with TypeScript support.\n- **API folder structure** - Load endpoints from dedicated folders.\n\n## Installation\n\n```sh\ndeno add jsr:@murat/yelix\n```\n\n## Getting Started\n\n### Prerequisites\n\n- [Deno](https://deno.land/) installed on your system\n\n### Create a New Project\n\nGenerate a new Yelix project with a single command:\n\n```sh\ndeno run --allow-write --allow-read https://yelix-docs.deno.dev/yelix-template.ts\n```\n\nThis will create a new project with the following structure:\n\n```\napi/\n└── hello.ts\ndeno.json\nmain.ts\n```\n\n### Example Endpoint\n\nHere's how a basic endpoint looks in Yelix (`api/hello.ts`):\n\n```typescript\nimport type { Ctx } from \"jsr:@murat/yelix\";\n\nexport async function GET(ctx: Ctx) {\n  return await ctx.text(\"Hello World!\", 200);\n}\n\nexport const path = \"/api/hello\";\n```\n\n### Running Your Server\n\nStart the development server:\n\n```sh\ndeno task dev\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eTechnical Information\u003c/summary\u003e\n\n### Generated Files\n\nWhen you run `deno task dev`, actually, it runs\n\n```\ndeno run --watch --allow-run --allow-net --allow-read --allow-env https://docs.yelix.dev/dev.ts\n```\n\n## What Happens Behind the Scenes\n\nWhen you run this command:\n\n1. **Run dev.ts via Dev task**: When you run `deno task dev`, it executes the\n   `dev.ts` script.\n2.\n   1. **Endpoint Resolution**: The `resolveEndpoints.ts` script scans your `api`\n      directory and generates proper static imports in `endpoints.ts`.\n3.\n   2. **Server Startup**: The Yelix server (`main.ts`) loads these endpoints and\n      starts listening for requests\n4.\n   3. **File Watching**: Two watchers run simultaneously:\n      - One watches the `api` folder and regenerates `endpoints.ts` when files\n        change\n      - Another watches your entire project and restarts the server when needed\n5.\n   4. **Sibling closure**: When your `main.ts` process is terminated, the\n      resolver process is also terminated. This ensures that all processes are\n      properly cleaned up.\n\n## Technical Implementation\n\nThe `dev.ts` script orchestrates this process by:\n\n- Spawning the resolver process with file watching enabled\n- Running the main server with the `--watch` flag for hot reloading\n- Managing process lifecycle and termination\n\nThe resolver handles the critical task of transforming your directory structure\ninto Deno Deploy-compatible static imports, creating entries like:\n\n```typescript\n// In endpoints.ts (auto-generated)\nconst endpoints = [\n  await import(\"./api/hello.ts\"),\n  await import(\"./api/users.ts\"),\n  // All your API endpoints are automatically included\n];\n```\n\n## Why This Matters\n\nDeno Deploy has a strict requirement: imports must be static string literals.\nThis architecture automatically handles this constraint while providing a\nseamless development experience where you can add new API endpoints without\nmanually updating imports.\n\nYou can focus on building your API endpoints while the system handles the\ndeployment compatibility for you.\n\n\u003c/details\u003e\n\nVisit `http://localhost:3030/api/hello` to see your endpoint in action.\n\n## Deployment Notes\n\n⚠️ **Caution**: Deno Deploy doesn't support the `loadEndpointsFromFolder` method\ndue to security restrictions around dynamic importing. When deploying to Deno\nDeploy, use the `loadEndpoints` method instead.\n\n## Contributing\n\nContributions are welcome! Feel free to submit issues or pull requests to\nimprove Yelix.\n\n## Early Supporters\n\n[@erenkulaksiz](https://github.com/erenkulaksiz),\n[@mertssmnoglu](https://github.com/mertssmnoglu)\n\n## License\n\nYelix is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyelix-cloud%2Fyelix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyelix-cloud%2Fyelix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyelix-cloud%2Fyelix/lists"}