Open-source Go projects categorized as JSON

Top 23 Go JSON Projects

  • urfave/cli

    A simple, fast, and fun package for building command line apps in Go (by urfave)

    Project mention: Best practices for distributing and updating a Go CLI on Linux? | /r/golang | 2023-05-18

    Can you use a framework like urfavecli https://github.com/urfave/cli? This will auto-update every time it detects a new version from your CLI's GitHub repository

  • fx

    Terminal JSON viewer & processor

    Project mention: Jaq – A jq clone focused on correctness, speed, and simplicity | news.ycombinator.com | 2023-11-29

    There's also this awesome tool to make JSON interactively navigable in the terminal:


  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.


    Get JSON values quickly - JSON parser for Go

    Project mention: Jj: JSON Stream Editor | news.ycombinator.com | 2023-05-25


    I don't think there is a way to sort an array, though. However, there is an option to have keys sorted. Personally, I don't think there is much annoyance in that. One could just pipe `jj` output to `sort | uniq -c`.

    [0]: https://github.com/tidwall/gjson/blob/master/SYNTAX.md

  • jsoniter

    A high-performance 100% compatible drop-in replacement of "encoding/json" (by json-iterator)

    Project mention: A Journey building a fast JSON parser and full JSONPath | news.ycombinator.com | 2023-10-11

    We all know the builtin golang JSON parser is slow.

    How about doing comparisons against other implementations?

    Like this one: https://github.com/json-iterator/go

  • yq

    yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor

    Project mention: Runtime error with plugin that uses io.popen to run executable during plugin startup | /r/neovim | 2023-11-29

    I've been trying to install and config a plugin (papis.nvim) for a couple of days and am having issues with a function that uses io.popen to run yq to convert yaml files to json. I know my install of yq is fine- I can run yq -oj info.yaml from the command line with no issue and it produces the correct json output. I know the function can find the yq executable, but it returns nil. I've saved the error from the yq golang code: panic: runtime error: invalid memory address or nil pointer dereference

  • zerolog

    Zero Allocation JSON Logger

    Project mention: Go 1.21 Released | news.ycombinator.com | 2023-08-08

    Be aware that there is a performance impact compared to using zerolog directly [0] (my uneducated guess is it is likely due to pointer indirection).

    [0]: https://github.com/rs/zerolog/issues/571#issuecomment-166202...

  • fq

    jq for binary formats - tool, language and decoders for working with binary and text formats

    Project mention: Jaq – A jq clone focused on correctness, speed, and simplicity | news.ycombinator.com | 2023-11-29

    https://github.com/wader/fq has a REPL and can read JSON. Tip is to use "paste | from_json | repl" in a REPl to paste JSON into a sub-REPL, you can also use `` with fq which is a raw string literal

  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.

  • OPA (Open Policy Agent)

    Open Policy Agent (OPA) is an open source, general-purpose policy engine.

    Project mention: Securing CI/CD Images with Cosign and OPA | dev.to | 2023-11-15

    In essence, container image signing involves adding a digital stamp to an image, affirming its authenticity. This digital assurance guarantees that the image is unchanged from creation to deployment. In this blog, I'll explain how to sign container images for Kubernetes using Cosign and the Open Policy Agent. I will also share a tutorial that demonstrates these concepts.

  • miller

    Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON

    Project mention: jq 1.7 Released | news.ycombinator.com | 2023-09-06

    jq and miller[1] are essential parts of my toolbelt, right up there with awk and vim.

    [1]: https://github.com/johnkerl/miller

  • stash

    An organizer for your porn, written in Go. Documentation: https://docs.stashapp.cc

    Project mention: Organizing a huge library | /r/HomeServer | 2023-10-12

    Also, something that comes pretty close to what I want to do is stash. However, it doesn't handle ebooks, and my library is not nsfw and shouldn't rely on an external database (as no external database for my field of interest exists afaik). But stash ticks almost all the requirements.

  • jid

    json incremental digger

  • Ponzu

    Headless CMS with automatic JSON API. Featuring auto-HTTPS from Let's Encrypt, HTTP/2 Server Push, and flexible server framework written in Go.

  • jsonparser

    One of the fastest alternative JSON parser for Go that does not require schema

    Project mention: Introducing astjson: Transform and Merge JSON Objects with Unmatched Speed in Go | dev.to | 2023-11-29

    In this article, I will introduce you to a new package called astjson that I have been working on for the last couple of weeks. It is a Go package that allows you to transform and merge JSON objects with unmatched speed. It is based on the jsonparser package by buger aka Leonid Bugaev and extends it with the ability to transform and merge JSON objects at unparalleled performance.

  • hcl

    HCL is the HashiCorp configuration language.

    Project mention: Show HN: Togomak – declarative pipeline orchestrator based on HCL and Terraform | news.ycombinator.com | 2023-10-24

    HCL has a JSON representation [1], internally, objects behave that way. so it should be possible to write a Jsonnet wrapper around it. Terraform can currently parse json pipelines too.

    [1]: https://github.com/hashicorp/hcl/blob/main/json/spec.md

  • dasel

    Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package.

    Project mention: jq 1.7 Released | news.ycombinator.com | 2023-09-06
  • octosql

    OctoSQL is a query tool that allows you to join, analyse and transform data from multiple databases and file formats using SQL.

    Project mention: Wazero: Zero dependency WebAssembly runtime written in Go | news.ycombinator.com | 2023-07-01

    Never got it to anything close to a finished state, instead moving on to doing the same prototype in llvm and then cranelift.

    That said, here's some of the wazero-based code on a branch - https://github.com/cube2222/octosql/tree/wasm-experiment/was...

    It really is just a very very basic prototype.

  • easyjson

    Fast JSON serializer for golang.

    Project mention: Google's Go may add telemetry reporting that's on by default | /r/golang | 2023-02-10

    Compile time means you catch issues at... well compile time. It also means that the code is optimized. You can look at the performance different between encoding/json and easyjson for why you may desire that.

  • minify

    Go minifiers for web formats (by tdewolff)

    Project mention: Including .so file in a lua rock | /r/lua | 2023-02-28

    I want to write the lua bindings for tdewolff/minify the appropriate way. It already has python and js bindings but I can't figure out how to do that. The python bindings seems to use the shared object file, but the js doesn't work like that. What options do I have?

  • dsq

    Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.

    Project mention: Tracking SQLite Database Changes in Git | news.ycombinator.com | 2023-11-02

    You might want to look at tsv-utils, or a similar project: https://github.com/eBay/tsv-utils

    For the SQL part, but maybe a lot heavier, you can use one of the projects listed on this page: https://github.com/multiprocessio/dsq (No longer maintained, but has links to lots of other projects)

  • gorequest

    GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent )

  • gabs

    For parsing, creating and editing unknown or dynamic JSON in Go

    Project mention: Ask HN: What are some Golang tools you can't live without? | news.ycombinator.com | 2023-05-23

    gabs [0]. It helps with dealing with dynamic JSONs with unknown structures.

    [0]: https://github.com/Jeffail/gabs

  • gojq

    Pure Go implementation of jq

    Project mention: Jaq – A jq clone focused on correctness, speed, and simplicity | news.ycombinator.com | 2023-11-29
  • go-json

    Fast JSON encoder/decoder compatible with encoding/json for Go

    Project mention: Data storage speed comparisons? | /r/golang | 2023-03-27

    Drop-in replacement for the stdlib JSON package: https://github.com/goccy/go-json

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-11-29.

Go JSON related posts


What are some of the best open-source JSON projects in Go? This list will help you:

Project Stars
1 urfave/cli 20,999
2 fx 17,827
3 GJSON 13,053
4 jsoniter 12,742
5 yq 9,844
6 zerolog 9,098
7 fq 9,012
8 OPA (Open Policy Agent) 8,662
9 miller 8,251
10 stash 6,657
11 jid 6,641
12 Ponzu 5,602
13 jsonparser 5,252
14 hcl 4,878
15 dasel 4,635
16 octosql 4,626
17 easyjson 4,246
18 minify 3,477
19 dsq 3,422
20 gorequest 3,338
21 gabs 3,095
22 gojq 2,889
23 go-json 2,567
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives