7 个不稳定版本 (3 个破坏性更新)
0.4.1 | 2024年8月7日 |
---|---|
0.4.0 | 2024年8月7日 |
0.3.0 | 2024年8月5日 |
0.2.0 | 2024年8月4日 |
0.1.2 | 2024年8月3日 |
在财务类别中排名第127
每月下载量538次
用于eric-sdk
605KB
10K SLoC
Eric
ELSTER Rich Client (ERiC) 的 Rust 绑定和 SDK
什么是 ELSTER?
Elster(缩写为 Elektronische Steuererklärung)是德国税务机关处理纳税申报和申报的项目。
什么是 ERiC?
ERiC 是一个共享的 C 库,集成到税务应用程序中。ERiC 会检查税务应用程序提供的数据的合理性,并将数据加密后传输到相应税务机关的计算中心。
要求
您需要在系统上安装共享库 libericapi.so
和头文件 ericapi.h
,这些可以从 ELSTER for developers 下载,在 此处 请求访问后。
为了在您的平台和架构上生成绑定,您还需要 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文件,需要通过环境变量提供Elster证书的路径和密码,分别为CERTIFICATE_PATH
和CERTIFICATE_PASSWORD
。
支持的 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,每个crate都有独立的变更日志
依赖项
~105–255KB