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