Files
einvoice-rs/README.md
github-actions[bot] 4006542d4e chore: release v0.1.0 (#1)
* chore: release v0.1.0

* docs: fix java example in import

* style: make clippy happy

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Benedikt Schneppe <benedikt@flowers-software.de>
2025-01-17 18:09:46 +01:00

65 lines
1.5 KiB
Markdown

# einvoice-rs
The goal of this project is to implement
- XML parsing of CII and UBL e-invoices
- Validation / [Parsing](https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/) of CII and UBL e-invoices
- Generation of XML for CII and UBL e-invoices
- visualization of CII and UBL e-invoices
- generation of PDFs for CII e-invoices (zugferd)
- parsing of XMls embedded in PDFs (zugferd)
- provide cross-language and platform bindings for the above
> [!CAUTION]
> Early stage of development, not ready for production use
## License
This project is licensed under the terms described in the [LICENSE](LICENSE) file (MIT).
## Features
- Serialization and Deserialization of CII and UBL XML invoices (EN 16931)
- Java Binding based on kotlin works for jre 8 and above
## Roadmap
- Implement validation for Invoices
- Clean-Up generated files according to xsds / use stricter types
- add more language bindings
## Running Tests
To run tests, run the following command
```bash
cargo test
```
This will validate that we can deserialize and serialize all tests in the [xrechnung testsuite](https://github.com/itplr-kosit/xrechnung-testsuite/tree/master/src/test )
## Examples
### Java
```java
import com.schneppe.einvoice.InvoiceStandard;
import com.schneppe.einvoice.EinvoiceKt;
String xml = new String(Files.readAllBytes(path));
InvoiceStandard invoiceStandard = EinvoiceKt.validateInvoice(xml);
```
### Rust
see [examples](examples) for rust examples
## Authors
- [Benedikt Schneppe](https://www.github.com/bschneppe)