A stream-based Java 8 library to work with data from structured text files (CSV, Fixed width, INI, Properties, JSON, XML, ...).
The library is still under development.
- expandable, adaptable, flexible
- stable and ready for production
- well tested
- elegant, short and fluent
- easy and simple to use
- Learning and using new "Java 8" techniques and functionalities
- Functional Interfaces
- Lambda Expressions
- Streams
- New classes and packages (Optional, Objects, java.time, ...)
- Default methods
- Building a useful, free and open Java library (JAR)
- convert / transform (ETL)
- Input: One or more files and their associated file specifications
- Output: One or more files with other file specifications
- split, merge, sort, filter, convert, pivot, ...
- generate
- Input: File specification
- File with random or rule-based values
- Code
- Documentation
- analyse
- Input: File and associated file specification
- Search a record or a field value
- Statistical evaluations and calculations
- Validate the content according the specification
- compare
- Input: Two or more files and their associated file specifications
- It is unclear whether this is feasible and meaningful.
- Delimiter-separated values (CSV, TSV, ...)
- Fixed width
- Configuration files (INI, INF, CFG, URL, ...)
- Java properties (java.util.Properties and java.util.PropertyResourceBundle)
- JSON
- XML
- Optional
- YAML
- TOML
- HTML DOM
- Log files
- Literature
- Ouput only
- HTML
- Markdown
stexfires is licensed under the MIT License.
stexfires requires only Java 8.
stexfires uses a Gradle-based build system and provides a wrapper. It is a script which is called from the root of the source tree. It downloads and installs Gradle automatically. Depending on the system it may be necessary to call "./gradlew" instead of "gradlew".
stexfires uses "Semantic Versioning" for versioning.
Please use issues on GitHub for contact, questions, feature suggestions, contributions and bug reports.
We welcome contributions, especially through pull requests on GitHub. Submissions must be licensed under the MIT License.
- Mathias Kalb @mkalb