16个版本
新 0.4.4 | 2024年8月24日 |
---|---|
0.4.1 | 2024年7月7日 |
0.3.0 | 2023年12月27日 |
0.2.8 | 2023年11月26日 |
410 在 HTTP服务器
271 每月下载次数
用于 ngyn-swagger
67KB
827 行
ngyn (en·jn
)
一个用于构建可扩展Web服务器的Rust进度框架,采用有观点的架构。
关于Ngyn的更多信息可以在文档中找到。
特性
- 用于组织应用程序为可重用组件的宏API
- 异步中间件用于处理请求和响应
- 异步路由支持,用于定义路由
- 平台无关,支持多个库和框架
请注意,Ngyn仍处于开发早期阶段,API可能会有所变化。
示例
此示例演示了如何使用Ngyn和Hyper平台创建简单的Web服务器。
[dependencies]
ngyn = { version = "0.4" }
以下是代码
use ngyn::prelude::*;
use ngyn_hyper::HyperApplication;
#[controller]
struct MyController;
#[routes]
impl MyController {
#[get("/")]
fn index(&self) -> String {
"Hello World!".to_string()
}
#[get("/hello/<name>")]
fn hello(&self, param: Param) -> String {
let name = param.get("name").unwrap();
format!("Hello, {}!", name)
}
}
#[module(controllers = [MyController])]
struct MyAppModule;
#[main]
async fn main() {
let app = NgynFactory::<HyperApplication>::create::<MyAppModule>();
let _ = app.listen("127.0.0.1:8080").await;
}
哲学
描述
Ngyn提出了一种有观点、模块化和可扩展的架构,很大程度上受到NestJS的启发,并围绕模块的概念——离散、可重用的组件,这些组件共同塑造了应用程序。这些模块,每个都针对特定的功能,可以嵌套形成功能层次结构。这种模块化设计简化了组织,并增强了在不同项目中的可重用性。
平台无关性
Ngyn中的平台(更确切地说是平台引擎)指的是用于构建应用程序的底层库或框架。例如,您可以使用Actix、Warp或Tide来构建Web服务器,每个平台都会提供一组不同的功能来构建Web服务器。
默认情况下,Ngyn 使用 Hyper 作为其底层平台。然而,您并不局限于这一点,也可以选择创建自己的平台引擎。
贡献
Ngyn 是一个开源项目,我们欢迎社区的贡献。请随意报告问题、提出改进建议或提交拉取请求,以帮助我们改进 Ngyn。
许可证
Ngyn 使用 MIT 许可证,允许您自由使用、修改和分发该框架。
依赖
~13–27MB
~415K SLoC