mfatihercik / dsm

Declarative Stream Mapping (DSM) is a stream de/serializer library for XML and JSON. DSM allows you to make custom parsing, filtering, transforming, aggregating, grouping on any JSON or XML document at stream time(read only once).

Home Page:https://mfatihercik.github.io/dsm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction

Declarative Stream Mapping(DSM) is a stream deserializer library that makes parsing of XML and JSON easy. DSM allows you to make custom parsing, filtering, transforming, aggregating, grouping on any JSON or XML document at stream time(read only once). DSM uses yaml or json for configuration definitions

If you parsing a complex, huge file and want to have high performance and low memory usage then DSM is for you.

Features

  • Work for both XML and JSON
  • Custom stream parsing
  • Filtering by value on any field with very low cognitive complexity
  • Flexible value transformation.
  • Default value assignment
  • Custom function calling during parsing
  • Powerful Scripting (Apache JEXL, Groovy, Javascript and other jsr223 implementations are supported)
  • Multiple inheritance between DSM config file (DSM file can extends to another config file)
  • Reusable fragments support
  • Very short learning curve
  • Memory and CPU efficient
  • Partial data extraction from JSON or XML
  • String manipulation with expression

Installation

Jackson

<dependency>
  <groupId>com.github.mfatihercik</groupId>
  <artifactId>dsm</artifactId>
  <version>1.0.5</version>
</dependency>

Gradle

compile ('com.github.mfatihercik:dsm:1.0.5')

About

Declarative Stream Mapping (DSM) is a stream de/serializer library for XML and JSON. DSM allows you to make custom parsing, filtering, transforming, aggregating, grouping on any JSON or XML document at stream time(read only once).

https://mfatihercik.github.io/dsm

License:MIT License


Languages

Language:Java 86.6%Language:Groovy 13.4%