Description
Sawmill is a JSON transformation open source library.
It enables you to enrich, transform, and filter your JSON documents.
Using Sawmill pipelines you can integrate your favorite groks, geoip, user-agent resolving, add or remove fields/tags and more in a descriptive manner, using configuration files or builders, in a simple DSL, allowing you to dynamically change transformations.
sawmill alternatives and similar libraries
Based on the "JSON Processing" category.
Alternatively, view sawmill alternatives based on common mentions on social networks and blogs.
-
fastjson
DISCONTINUED. FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade. -
MapNeat
MapNeat is a JVM library written in Kotlin that provides an easy to use DSL (Domain Specific Language) for transforming JSON to JSON, XML to JSON, POJO to JSON in a declarative way.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of sawmill or a related project?
Popular Comparisons
README
[Sawmill Logo](sawmill-logo.png)
Update: June 25, 2020 The 2.0 release of Sawmill introduces a breaking change to the GeoIpProcessor to comply with the updated license of the MaxMind Lite database. See https://github.com/logzio/sawmill/wiki/GeoIp-Processor for additional details.
Sawmill is a JSON transformation open source library.
It enables you to enrich, transform, and filter your JSON documents.
Using Sawmill pipelines you can integrate your favorite groks, geoip, user-agent resolving, add or remove fields/tags and more in a descriptive manner, using configuration files or builders, in a simple DSL, allowing you to dynamically change transformations.
Download
Get Sawmill Java via Maven:
<dependency>
<groupId>io.logz.sawmill</groupId>
<artifactId>sawmill-core</artifactId>
<version>2.0.21</version>
</dependency>
or Gradle:
compile 'io.logz.sawmill:sawmill-core:2.0.21'
Documentation
The full Sawmill documentation can be found here.
Simple configuration example
{
"steps": [
{
"grok": {
"config": {
"field": "message",
"overwrite": [
"message"
],
"patterns": [
"(%{IPORHOST:client_ip}|-) %{USER:ident} %{USER:auth} \\[%{HTTPDATE:timestamp}\\] \\\"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion:float})?|%{DATA:rawrequest})\\\" %{NUMBER:response:int} (?:%{NUMBER:bytes:float}|-) B %{DATA:thread} %{NUMBER:response_time:float} ms %{DATA:servername} %{DATA:client_id:int}(\\;%{NOTSPACE})? %{DATA:device_id} %{DATA}"
]
}
}
},
{
"removeField": {
"config": {
"path": "message"
}
}
}
]
}
*Note that all licence references and agreements mentioned in the sawmill README section above
are relevant to that project's source code only.