27 个版本 (4 个稳定版)
1.0.3 | 2024 年 8 月 16 日 |
---|---|
1.0.0 | 2024 年 6 月 5 日 |
0.4.4 | 2024 年 4 月 18 日 |
0.4.1 | 2024 年 1 月 22 日 |
0.1.24 | 2021 年 11 月 12 日 |
#114 in 网页编程
1,100 每月下载量
用于 ocpp-client
265KB
4K SLoC
rust-ocpp
rust-ocpp 库实现了充电站使用的开放充电点协议 (OCPP)。您可以在官方的 开放充电联盟 网站上了解更多信息。
已实现并验证了 OCPP v1.6 和 v2.0.1,使用的是开放充电联盟的官方 json 架构。
您可以在 schema_validation.rs
文件中找到针对 v1.6
和 v2.0.1
的测试。
仓库结构
src/
: v1.6 和 v2.0.1 的库文件
docs/
: 官方的 ocpp 规范
使用方法
将 rust-ocpp
添加到您的 Cargo.toml
中的依赖项。它将默认使用 OCPP 的 2.0.1
版本。
[dependencies]
rust-ocpp = "1.0"
要使用 1.6
,您需要使用功能标志指定协议版本
[dependencies]
rust-ocpp = { version = "1.0", features = ["v1_6"] }
或使用两个版本
[dependencies]
rust-ocpp = { version = "1.0", features = ["v2_0_1", "v1_6"] }
构建方法
要构建 rust-ocpp
库,您需要在您的系统上安装 Rust 和 Cargo。您可以通过访问官方的 Rust 网站 中的说明进行安装。
安装 Rust 和 Cargo 后,您可以使用以下步骤构建库
-
克隆
rust-ocpp
仓库git clone https://github.com/codelabsab/rust-ocpp.git
-
切换到
rust-ocpp
目录cd rust-ocpp
-
使用 Cargo 构建
1.6
和2.0.1
的库cargo build --all-features
此命令将编译库及其依赖项。如果构建成功,您将在
target/debug
目录中找到编译后的工件。 -
在两个版本上运行测试
cargo test --all-features
此命令将执行OCPP两个版本的测试。如果所有测试都通过,则表示库正在正确运行。
-
构建特定版本
要构建
rust-ocpp
的特定版本,您可以在运行构建命令时使用适当的特性标志。例如,要构建v1_6
cargo build --features v1_6
要构建
v2_0_1
cargo build --features v2_0_1
-
(可选) 构建发布版本
如果您想构建带有优化功能的库,可以使用以下命令
cargo build --features v2_0_1 --release
发布版本的构建将在
target/release
目录中生成优化后的工件。 -
(可选) 安装库
如果您想在您的系统上全局安装库,可以使用以下命令
cargo install --path .
此命令将编译库及其依赖项,并将其安装到Cargo的二进制目录中,这样您就可以在其他项目中作为依赖项使用。
就是这样!您已成功构建了rust-ocpp
库。如果在构建过程中遇到任何问题,请检查GitHub上的项目问题跟踪器或打开新问题以获得帮助。
测试
rust-ocpp
为OCPP v1.6和v2.0.1版本提供对json模式进行的测试。要运行测试,您可以使用Cargo内置的测试运行器。
运行测试
要运行特定版本的测试,请在运行测试时使用适当的特性标志。
对于OCPP v1.6测试
cargo test --features v1_6
对于OCPP v2.0.1测试
cargo test --features v2_0_1
运行所有测试
cargo test
或特定版本
cargo test --features v1_6
测试覆盖率
使用Codecov测量rust-ocpp的测试覆盖率。您可以在codecov上找到当前的测试覆盖率报告。
对测试做出贡献
非常欢迎对测试套件做出贡献。如果您遇到任何错误、发现边缘情况或有额外的测试用例想法,请随时打开问题或提交拉取请求。我们将很乐意审查并合并您的贡献。
请在提交任何更改之前运行测试并维护或提高整体测试覆盖率。此外,请遵守现有的测试约定并遵循代码风格指南以保持一致性。
贡献
在PR之前使用rustfmt
。
提供了pre-commit配置。您可以在pre-commits网站上了解更多信息,并在github上检查它们的存储库。
发布新版本
- 更新库的版本并将更改推送到主分支。
- 在GitHub上创建一个新发布,包含新版本号和一些发布说明(可选)。
这将触发发布工作流程,该工作流程将新版本发布到crates.io。
依赖关系
~6–8.5MB
~176K SLoC