4 个版本 (2 个破坏性更新)
0.3.1 | 2024年8月7日 |
---|---|
0.3.0 | 2024年8月7日 |
0.2.0 | 2024年8月5日 |
0.1.0 | 2024年8月4日 |
在 金融 中排名 23
每月下载次数 297
660KB
11K SLoC
Eric
Rust对ELSTER Rich Client (ERiC)的绑定和SDK
什么是ELSTER?
Elster(Elektronische Steuererklärung的缩写)是德国税务机关处理税务申报的项目。
什么是ERiC?
ERiC是一个共享的C库,集成到税务应用程序中。ERiC检查税务应用程序提供的数据的合理性,并将数据加密传输到相应税务机关的计算中心。
需求
您需要在您的系统上安装共享库 libericapi.so
和头文件 ericapi.h
,这些可以从ELSTER开发者下载,在此处请求访问后。
为了在您的平台和架构上生成绑定,您还需要 libclang
。例如,在Debian/Ubuntu上安装
apt install llvm-dev libclang-dev clang
Rust绑定
生成绑定
要生成绑定,eric-bindings
需要环境变量 LIBRARY_NAME
、LIBRARY_PATH
、HEADER_FILE
和 PLUGIN_PATH
。例如
PATH_VENDOR="ERiC-40.2.10.0-Linux-x86_64/ERiC-40.2.10.0/Linux-x86_64"
LIBRARY_NAME=ericapi
LIBRARY_PATH="$PATH_VENDOR/lib"
HEADER_FILE="$PATH_VENDOR/include/ericapi.h"
PLUGIN_PATH="$PATH_VENDOR/lib/plugins2"
绑定需要为您的特定平台和架构即时生成
cargo build -p eric-bindings
绑定生成在 target/debug/build/eric-bindings-<random-id>/out/bindings.rs
。
测试绑定
绑定通过 include!
宏包含在 src/lib.rs
中,并通过测试
cargo test -p eric-bindings --lib
日志写入当前目录的 eric.log
。
Eric SDK
eric-sdk
支持单线程Eric实例。
使用方法
要使用 eric-sdk
,请添加共享C库的路径(例如,在Linux上添加到 LD_LIBRARY_PATH
)。
要发送xml文件,必须通过环境变量 CERTIFICATE_PATH
和 CERTIFICATE_PASSWORD
提供Elster证书的路径和密码。
支持的Eric版本
Rust SDK | Eric |
---|---|
0.1.0 | 38.1.6.0 |
0.2.0 | 39.6.4.0 |
0.3.0 | 40.1.8.0 |
测试SDK
# Run unit tests
cargo test -p eric-sdk -- --test-threads=1
# Run integration tests
cargo test -p eric-sdk --test '*' -- --test-threads=1
# Run external tests
cargo test -p eric-sdk --test '*' --features external-test -- --test-threads=1
变更日志
eric-rs
仓库包含多个具有单独变更日志的crate