#sdk #accounting #tax #eric #taxes

eric-sdk

Rust SDK for the ELSTER Rich Client (ERiC)

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

Download history 281/week @ 2024-08-03 16/week @ 2024-08-10

每月下载次数 297

Apache-2.0

660KB
11K SLoC

Eric

latest version documentation latest version documentation build status

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_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文件,必须通过环境变量 CERTIFICATE_PATHCERTIFICATE_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

依赖关系