Skip to content

stexfires/stexfires

Repository files navigation

stexfires - structured text file record stream

A stream-based Java library to work with data from structured text files (CSV, Fixed width, INI, Properties, JSON, XML, ...).

The library is still under development.

Goals

  • expandable, adaptable, flexible
  • elegant, short and fluent
  • easy and simple to use

Motivation

  • Learning and using new "Java" techniques and functionalities
    • Functional Interfaces
    • Lambda Expressions
    • Streams
    • New classes and packages (Optional, Objects, java.time, ...)
    • Default methods
    • record classes
  • Building a useful, free and open Java library (JAR)

Functionalities

  • 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.

File formats

  • 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

License

stexfires is licensed under the MIT License.

Usage

stexfires requires only the newest Java.

Building/Developing

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".

Versioning

stexfires uses "Semantic Versioning" for versioning.

Contributing

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.

Contributors

Overview of contributors

About

structured text file record stream - A stream-based Java library to work with data from structured text files

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages