Code Monkey home page Code Monkey logo

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

stexfires's Projects

stexfires icon stexfires

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.