{"id":18018921,"url":"https://github.com/ngyn-rs/ngyn","last_synced_at":"2025-04-05T16:06:11.796Z","repository":{"id":214359541,"uuid":"678681421","full_name":"ngyn-rs/ngyn","owner":"ngyn-rs","description":"A modern, ergonomic web framework written in Rust for building high-performance web applications.","archived":false,"fork":false,"pushed_at":"2025-02-06T06:59:43.000Z","size":1597,"stargazers_count":43,"open_issues_count":9,"forks_count":3,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2025-03-29T15:05:26.398Z","etag":null,"topics":["backend","framework","http","http-server","hyper","macros-rust","middleware","rust","server","vercel","web"],"latest_commit_sha":null,"homepage":"https://ngyn.rs/docs","language":"Rust","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/ngyn-rs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2023-08-15T05:38:53.000Z","updated_at":"2025-01-29T06:22:40.000Z","dependencies_parsed_at":"2024-01-02T03:28:30.614Z","dependency_job_id":"45fc2a7e-914b-4c1e-af43-46b0f02f2877","html_url":"https://github.com/ngyn-rs/ngyn","commit_stats":{"total_commits":359,"total_committers":2,"mean_commits":179.5,"dds":"0.0027855153203342198","last_synced_commit":"44b28f87efc73ff0c53d82c3c459d9d9c47f3dae"},"previous_names":["ngyn-rs/ngyn"],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngyn-rs%2Fngyn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngyn-rs%2Fngyn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngyn-rs%2Fngyn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngyn-rs%2Fngyn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngyn-rs","download_url":"https://codeload.github.com/ngyn-rs/ngyn/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247361681,"owners_count":20926643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["backend","framework","http","http-server","hyper","macros-rust","middleware","rust","server","vercel","web"],"created_at":"2024-10-30T05:06:59.179Z","updated_at":"2025-04-05T16:06:11.778Z","avatar_url":"https://github.com/ngyn-rs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n![ngyn](https://avatars.githubusercontent.com/u/142031159?s=120\u0026v=4)\n\n# ngyn (pronounced \"engine\")\n[![Crates.io](https://img.shields.io/crates/v/ngyn.svg)](https://crates.io/crates/ngyn)\n[![Docs.rs](https://docs.rs/ngyn/badge.svg)](https://ngyn.rs)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE.md)\n![MSRV](https://img.shields.io/badge/MSRV-1.75-blue)\n[![Made in Nigeria](https://img.shields.io/badge/made%20in-nigeria-008751.svg?style=flat-square)](https://github.com/acekyd/made-in-nigeria)\n\nA modern, ergonomic web framework written in Rust for building high-performance web applications.\n\n[Documentation](https://ngyn.rs) | [Getting Started](#getting-started) | [Examples](#examples) | [Contributing](#contributing)\n\n\u003c/div\u003e\n\n## Overview\n\nNgyn is designed to make building web servers in Rust both enjoyable and productive. It combines ergonomic APIs with performance-focused design, making it suitable for everything from small APIs to large-scale web applications.\n\n## Features\n\n- **Intuitive Routing**: Simple, declarative routing patterns `(app.get(), /users/{id})` familiar to web developers\n- **Flexible Middleware**: Asynchronous middleware system for request/response processing\n- **Performance Focused**: Optimized for both development experience and runtime performance\n- **Modern Rust**: Takes advantage of Rust's type system and async features\n- **Optional Macros**: Enhance your route handlers with minimal boilerplate\n- **Platform Agnostic**: Built to work with various HTTP servers (currently supports Hyper)\n\n## Getting Started\n\nAdd ngyn to your `Cargo.toml`:\n\n```toml\n[dependencies]\nngyn = \"0.5\"\ntokio = { version = \"1\", features = [\"full\"] }\n```\n\nCreate a basic web server:\n\n```rust ignore\nuse ngyn::prelude::*;\n\n#[handler]\nfn hello() -\u003e \u0026'static str {\n    \"Hello World!\"\n}\n\n#[tokio::main]\nasync fn main() {\n    let mut app = HyperApplication::default();\n    \n    // Handle all routes and HTTP methods\n    app.any(\"*\", hello);\n    \n    println!(\"Server running at http://127.0.0.1:8080\");\n    let _ = app.listen(\"127.0.0.1:8080\").await;\n}\n```\n\n## Examples\n\nCheck out our examples directory for more use cases:\n- Basic routing\n- Middleware usage\n- Authentication\n- JSON APIs\n- WebSocket handling\n\n## Core Crates\n\n- [`ngyn`][1]: The main framework, reexports all other crates\n- [`ngyn_macros`][2]: Procedural macros for route handlers\n- [`ngyn_shared`][3]: Core traits and types\n- [`ngyn-hyper`][4]: Hyper server integration\n- [`ngyn-websocket`][5]: WebSocket support\n- [`ngyn-shuttle`][6]: Shuttle.rs deployment service integration\n- [`ngyn-vercel`][7]: Vercel deployment service integration\n\n## Roadmap\n\nNgyn is under active development, with the following features planned for future releases:\n- [x] Request and response body handling\n- [ ] Form parsing and validation\n- [ ] Cookies and sessions management\n- [x] Form Handling\n- [x] File uploads\n- [ ] Response Streaming\n- [x] WebSockets\n- [x] Async Middlewares\n- [x] Async Gates\n- [x] Static file serving\n- [ ] Internationalization and localization\n- [ ] Caching and compression\n- [ ] CLI tooling for project generation (In progress)\n- [ ] Rate limiting and security features (In progress)\n- [ ] Deployment service integrations (In progress)\n    - [x] Bare metal (Hyper)\n    - [x] Shuttle.rs\n    - [x] Vercel\n    - [ ] Netlify\n    - [ ] Cloudflare Workers\n- [ ] Improved documentation and examples (In progress)\n    - [x] GraphQL support\n    - [ ] Authentication and authorization\n- [ ] Error handling and logging\n- [ ] Testing utilities\n\n## Performance\n\nNgyn is designed to be performant while maintaining developer productivity. Some key performance features:\n- Zero-cost abstractions\n- Efficient routing algorithm\n- Minimal allocations\n- Async-first design\n\n## How to Contribute\n\nNgyn thrives on community support and contributions! Here’s how you can get involved:\n\n1. **Report Issues**: Found a bug? Let us know by opening an issue on GitHub.\n2. **Suggest Features**: Have an idea for an improvement? Share it with us!\n3. **Submit Pull Requests**: Fix bugs or implement new features to help make Ngyn even better.\n\n\u003e If Ngyn has been helpful, consider giving it a star on GitHub to support the project!\n\nPlease read our [Contributing Guide](CONTRIBUTING.md) for more details.\n\n## Community\n\n- [GitHub Discussions](https://github.com/ngyn-rs/ngyn/discussions)\n- [Stack Overflow](https://stackoverflow.com/questions/tagged/ngyn)\n\n## Status\n\nNgyn is under active development. While the core API is stabilizing, some features might change. Production use should be carefully evaluated.\n\n\n## License\nNgyn is licensed under the [MIT License](LICENSE.md). This allows you to use, modify, and distribute the framework freely in your projects.\n\n---\n\nWe can’t wait to see what you build with Ngyn! 🚀\n\n[1]:./crates/core\n[2]:./crates/macros\n[3]:./crates/shared\n[4]:./crates/hyper\n[5]:./crates/websocket\n[6]:./crates/shuttle\n[7]:./crates/vercel\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngyn-rs%2Fngyn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngyn-rs%2Fngyn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngyn-rs%2Fngyn/lists"}