#eric #bindings #tax #accounting #taxes #bindings-generator #file-path

sys eric-bindings

ELSTER Rich Client (ERiC) 的 Rust 绑定

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

Download history 133/week @ 2024-07-28 391/week @ 2024-08-04 14/week @ 2024-08-11

每月下载量538
用于eric-sdk

Apache-2.0 协议

605KB
10K SLoC

Eric

latest version documentation latest version documentation build status

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_NAMELIBRARY_PATHHEADER_FILEPLUGIN_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_PATHCERTIFICATE_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