aeson-diff alternatives and similar packages
Based on the "Algorithms" category.
Alternatively, view aeson-diff alternatives based on common mentions on social networks and blogs.
-
arithmoi
Number theory: primes, arithmetic functions, modular computations, special sequences -
search-algorithms
Haskell library containing common graph search algorithms -
imj-animation
Monorepo for a multi-player game engine, and game examples -
presburger
Decision procedures for Presburger arithmetic in Haskell -
text-metrics
Calculate various string metrics efficiently in Haskell -
lca
Improves the known complexity of online lowest common ancestor search to O(log h) persistently, and without preprocessing -
treeviz
Haskell library for visualizing algorithmic decomposition of computations. -
incremental-sat-solver
Simple, Incremental SAT Solving as a Haskell Library -
integer-logarithms
Integer logarithms, originally split from arithmoi package -
GraphSCC
Tarjan's algorithm for computing strongly connected components -
infinite-search
An implementation of Martin Escardo's exhaustively searchable sets in Haskell. -
graph-generators
A Haskell library for creating random Data.Graph instances using several pop -
nonlinear-optimization-ad
Several Haskell packages for numerical optimizations. -
primesieve
A collection of packages related to math, algorithms and science, in Haskell. -
edit-distance-vector
Calculate edit scripts and distances between Vectors. -
adp-multi
Prototype of ADP for MCFL (multiple context-free languages) -
edit-distance-linear
Levenshtein edit distance in linear memory (also turns out to be faster than C++) -
dgim
:chart_with_upwards_trend: Implementation of the DGIM algorithm in Haskell. -
epanet-haskell
Call the EPANET toolkit via Haskell's Foreign Function Interface -
MIP
Libraries for reading/writing MIP problem files, invoking external MIP solvers, etc. in Haskell
InfluxDB - Power Real-Time Data Analytics at Scale
* 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 aeson-diff or a related project?
README
Aeson Diff
This is a small library for working with changes to JSON documents. It includes a library and two executables in the style of diff(1) and patch(1). Patches are themselves JSON Patch documents as specified in RFC 6902.
Installing
The aeson-diff
package is written in Haskell and can be installed using the
Cabal package management tool, stack, or something similar.
stack install aeson-diff
The command-line tools can then be executed using stack:
stack exec json-diff -- ....
stack exec json-patch -- ....
If you prefer to use Cabal, something like this might do the trick:
cd aeson-diff/
cabal sandbox init
cabal install --dependencies-only
cabal build
sudo mkdir -p /usr/local/bin
sudo cp dist/build/json-*/json-{diff,patch} /usr/local/bin/
Usage
Patch format
aeson-diff
supports the JSON Patch format described in
RFC 6902.
json-diff command
The json-diff
command compares two JSON documents and extracts a patch
describing the differences between the first document and the second.
Usage: json-diff [-T|--test-before-remove] [-o|--output OUTPUT] FROM TO
Generate a patch between two JSON documents.
Available options:
-h,--help Show this help text
-T,--test-before-remove Include a test before each remove.
-o,--output OUTPUT Write patch to file OUTPUT.
json-patch command
The json-patch
command applies a patch describing changes to be made to
a JSON document.
Usage: json-patch [-o|--output OUTPUT] PATCH FROM
Generate a patch between two JSON documents.
Available options:
-h,--help Show this help text
-o,--output OUTPUT Destination for patched JSON.
PATCH Patch to apply.
FROM JSON file to patch.
aeson-diff library
The aeson-diff
library exports as single module: Data.Aeson.Diff
. This
exports diff
and patch
functions which do exactly what might be expected:
diff :: Value -> Value -> Patch
examines source and target JSONValue
s and constructs a newPatch
describing the changes.patch :: Patch -> Value -> Result Value
applies the changes in aPatch
to a JSONValue
. If an error results then an exception is thrown.
For more complete information, see the documentation.