jsonl-graph alternatives and similar packages
Based on the "Science and Data Analysis" category.
Alternatively, view jsonl-graph alternatives based on common mentions on social networks and blogs.
-
gonum
Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more -
Stats
A well tested and comprehensive Golang statistics library package with no dependencies. -
gosl
Linear algebra, eigenvalues, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, differential equations. -
dataframe-go
DataFrames for Go: For statistics, machine-learning, and data manipulation/exploration -
gonum/mat64
The general purpose package for matrix computation. Package mat64 provides basic linear algebra operations for float64 matrices. -
calendarheatmap
📅 Calendar heatmap inspired by GitHub contribution activity -
TextRank
:wink: :cyclone: :strawberry: TextRank implementation in Golang with extendable features (summarization, phrase extraction) and multithreading (goroutine). -
sparse
Sparse matrix formats for linear algebra supporting scientific and machine learning applications -
evaler
Implements a simple floating point arithmetic expression evaluator in Go (golang). -
gograph
A golang generic graph library that provides mathematical graph-theory and algorithms. -
triangolatte
2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. -
piecewiselinear
tiny linear interpolation library for go (factored out from https://github.com/sgreben/yeetgif) -
PiHex
PiHex Library, written in Go, generates a hexadecimal number sequence in the number Pi in the range from 0 to 10,000,000. -
GoStats
GoStats is a go library for math statistics mostly used in ML domains, it covers most of the statistical measures functions. -
godesim
ODE system solver made simple. For IVPs (initial value problems). -
assocentity
Package assocentity returns the mean distance from tokens to an entity and its synonyms -
bradleyterry
Package to do Bradley-Terry Model pairwise compairsons -
mudlark-go
A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language.
Collect and Analyze Billions of Data Points in Real Time
Do you think we are missing an alternative of jsonl-graph or a related project?
README
JSONL Graph Tools
Convenient to use with
jq
# get https://graphviz.org/download/
$ go install github.com/nikolaydubina/jsonl-graph@latest
What is JSONL graph? Node has id
. Edge has from
and to
.
{
"id": "github.com/gin-gonic/gin",
"can_get_github": true,
"github_url": "https://github.com/gin-gonic/gin",
"git_last_commit": "2021-04-21",
"git_num_contributors": 321,
...
}
...
{
"from": "github.com/gin-gonic/gin",
"to": "golang.org/x/tools",
...
}
Examples
Kubernetes Pod Owners
$ kubectl get pods -o json | jq '.items[] | {to: (.kind + ":" + .metadata.name), from: (.metadata.ownerReferences[].kind + ":" + .metadata.ownerReferences[].name)}' | jsonl-graph | dot -Tsvg > k8s_pod_owners.svg
[k8s_pod_owners](./testdata/k8s_pod_owners.svg)
Large nodes and color scheme
$ cat '
{"id":"github.com/gin-gonic/gin","can_get_git":true, ... }
{"id":"github.com/gin-contrib/sse","can_get_git":true,"can_run_tests":true ... }
...
{"from":"github.com/gin-gonic/gin","to":"golang.org/x/tools"}
{"from":"github.com/gin-gonic/gin","to":"github.com/go-playground/validator/v10"}
' | jsonl-graph -color-scheme=file://$PWD/testdata/colors.json | dot -Tsvg > colored.svg
[gin-color](./testdata/gin_color.svg)
Small nodes or only edges
$ cat '
{"from":"github.com/nikolaydubina/jsonl-graph/graph","to":"bufio"}
{"from":"github.com/nikolaydubina/jsonl-graph/graph","to":"bytes"}
{"from":"github.com/nikolaydubina/jsonl-graph/graph","to":"encoding/json"}
{"from":"github.com/nikolaydubina/jsonl-graph/graph","to":"errors"}
{"from":"github.com/nikolaydubina/jsonl-graph/graph","to":"fmt"}
...
' | jsonl-graph | dot -Tsvg > small.svg
[small](./testdata/small.svg)
All Kubernetes Pod Owners with details
# add edges
$ kubectl get pods -o json | jq '.items[] | {to: .metadata.name, from: .metadata.ownerReferences[].name}' > k8s_pod_owners_details.jsonl
# add node details
$ kubectl get rs -o json | jq '.items[] | .id += .metadata.name' >> k8s_pod_owners_details.jsonl
$ kubectl get pods -o json | jq '.items[] | .id += .metadata.name' >> k8s_pod_owners_details.jsonl
# flatten objects and render
$ cat k8s_pod_owners_details.jsonl | jq '. as $in | reduce leaf_paths as $path ({}; . + { ($path | map(tostring) | join(".")): $in | getpath($path) })' | jsonl-graph | dot -Tsvg > k8s_pod_owners.svg
[k8s_pod_owners_details](./testdata/k8s_pod_owners_details.svg)
Rendering
Currently only Graphviz is supported. Follow progress of native Go graph rendering in github.com/nikolaydubina/go-graph-layout. Once it is ready, it will be integrated into this project.