25个版本 (9个破坏性更新)

0.10.0-rc.12024年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日

32HTTP客户端

Download history 284/week @ 2024-04-28 68/week @ 2024-05-05 553/week @ 2024-05-12 1565/week @ 2024-05-19 343/week @ 2024-05-26 195/week @ 2024-06-02 278/week @ 2024-06-09 100/week @ 2024-06-16 148/week @ 2024-06-23 204/week @ 2024-06-30 200/week @ 2024-07-07 167/week @ 2024-07-14 254/week @ 2024-07-21 166/week @ 2024-07-28 396/week @ 2024-08-04 508/week @ 2024-08-11

1,331 每月下载量

Apache-2.0

360KB
3.5K SLoC

Rust 3.5K SLoC // 0.0% comments TypeScript 338 SLoC // 0.1% comments Swift 36 SLoC // 0.2% comments Java 19 SLoC

Crux HTTP功能

Crate version Docs

此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交互。它们执行以下操作

  1. 定义一个 Request 结构体,以指示Shell如何代表核心执行副作用
  2. 定义一个 Response 结构体,以保存Shell在副作用完成后返回的数据
  3. 声明一个或多个方便的方法来调用Shell的功能,每个方法都创建一个Command(描述效果及其延续),Crux可以“执行”

注意,由于Swift没有命名空间,目前需要确保RequestResponse的命名无歧义(例如HttpRequestHttpResponse)。

依赖项

~7–12MB
~242K SLoC