25个版本 (9个破坏性更新)
| 新 0.10.0-rc.1 | 2024年8月15日 |
|---|---|
| 0.9.2 | 2024年5月23日 |
| 0.9.0 | 2024年3月25日 |
| 0.4.4 | 2023年12月3日 |
| 0.1.0 | 2022年12月15日 |
32 在 HTTP客户端 中
1,331 每月下载量
360KB
3.5K SLoC
Crux HTTP功能
此crate包含了一个名为 Http 的功能,可用于指示Shell执行HTTP请求。
有关如何使用此功能的示例,请参阅 集成测试。
此代码主要从 surf 复制而来,并进行了一些修改以适应crux范式。
入门
在您的应用程序的 Cargo.toml 中将 crux_http 添加为依赖项。
类型生成
此crate有一个名为 typegen 的功能,支持生成类型代码(例如在TypeScript、Swift、Kotlin等中)以传递给桥接的类型。
Crux应用程序通常包含一个用于行为“核心”的 shared crate 和一个负责生成核心和shell之间共享的类型的 shared_types crate。
shared crate 可以使用依赖于功能 typegen 的功能重新导出功能,该功能依赖于功能 crate 的 typegen 功能。这样,共享 crate 可以要求功能注册其类型以进行类型生成。
例如,在 shared crate 的 Cargo.toml 中
[features]
typegen = ["crux_core/typegen", "crux_http/typegen"]
以及 shared_types crate 的 Cargo.toml 中
[build-dependencies]
crux_core = { workspace = true, features = ["typegen"] }
shared = { path = "../shared", features = ["typegen"] }
关于Crux功能
Crux功能教Crux如何在执行副作用时与shell交互。它们执行以下操作
- 定义一个
Request结构体,以指示Shell如何代表核心执行副作用 - 定义一个
Response结构体,以保存Shell在副作用完成后返回的数据 - 声明一个或多个方便的方法来调用Shell的功能,每个方法都创建一个
Command(描述效果及其延续),Crux可以“执行”
注意,由于Swift没有命名空间,目前需要确保
Request和Response的命名无歧义(例如HttpRequest和HttpResponse)。
依赖项
~7–12MB
~242K SLoC