Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sezna/edi
An X12 EDI parsing crate.
https://github.com/sezna/edi
Last synced: 9 days ago
JSON representation
An X12 EDI parsing crate.
- Host: GitHub
- URL: https://github.com/sezna/edi
- Owner: sezna
- License: gpl-3.0
- Created: 2019-10-04T23:46:45.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-10T18:13:38.000Z (5 months ago)
- Last Synced: 2024-10-14T01:44:14.385Z (22 days ago)
- Language: Rust
- Size: 66.4 KB
- Stars: 24
- Watchers: 3
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
- Electronic-Interchange-Github-Resources - sezna/edi - Rust crate for parsing X12 EDI and acting on it. Supports serialization to a variety of formats including JSON. (Libraries / Rust)
README
![docs.rs](https://docs.rs/edi/badge.svg)
![crates.io](https://img.shields.io/crates/v/edi.svg)
[![Build Status](https://travis-ci.org/sezna/edi.svg?branch=master)](https://travis-ci.org/sezna/edi)
# Overview
[Check the documentation for more details](https://docs.rs/edi).
### A quick summary of features
* Provides two top-level parsing functions: `parse` and `loose_parse`. `loose_parse` is less strict on the format of the incoming EDI document.
* Parses a valid X12 EDI document into a struct called `EdiDocument`.
* Provides verbose error messages if the document being parsed is invalid.
* Error messages include the actual segment in which the error occurred.
* `EdiDocument` and all data it contains implement `Serialize` and `Deserialize` from `serde`, so zero-copy serialization and deserialization to any serde-able format is supported (this includes json).
* `EdiDocument`'s fields are all public and it can be navigated like any other struct for simplicitySee the [examples directory](https://github.com/sezna/edi/tree/master/examples) for an example.
### A quick summary of limitations
* Cannot accurately determine segment types, as that requires an implementation guide from the individual transactor
* Cannot detect loops for the same reason as above
* Only supports standard X12 EDI