18 个版本
新 0.4.4 | 2024年8月24日 |
---|---|
0.4.1 | 2024年7月7日 |
0.3.0 | 2023年12月27日 |
0.2.8 | 2023年11月26日 |
在 HTTP 服务器 中排名第 1181
每月下载量 298
用于 7 个库(直接使用 4 个)
56KB
694 行
ngyn (en·jn
)
一个基于 Rust 的渐进式框架,通过具有偏见的架构构建可扩展的网络服务器。
有关 Ngyn 的更多信息,请参阅 文档。
特性
- 宏 API 用于将应用程序组织成可重用组件
- 异步中间件用于处理请求和响应
- 异步路由支持用于定义路由
- 平台无关 以支持多个库和框架
请注意,Ngyn 还处于开发的早期阶段,API 可能会更改。
示例
此示例演示了如何使用 Ngyn 和 Hyper 平台创建简单的网络服务器。
[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 来构建您的网络服务器,并且每个平台都会为构建您的网络服务器提供不同的一组功能。
默认情况下,Ngyn 使用 Hyper 作为其基础平台。但是,您并不局限于这一点,也可以选择创建自己的平台引擎。
贡献
Ngyn是一个开源项目,我们欢迎社区贡献。请随意报告问题、提出改进建议或提交拉取请求,帮助我们改进Ngyn。
许可证
Ngyn遵循MIT许可证,允许您自由使用、修改和分发此框架。
依赖项
~5–7.5MB
~162K SLoC