Open-source Go projects categorized as JSON | Edit details
Related topics: #Golang #Go #YAML #CLI #Configuration

Top 23 Go JSON Projects

  • GitHub repo urfave/cli

    A simple, fast, and fun package for building command line apps in Go

    Project mention: Requesting guidance | reddit.com/r/golang | 2021-09-30

    - https://github.com/urfave/cli

  • GitHub repo jsoniter

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

    Project mention: Some Go(lang) tips | dev.to | 2021-10-02

    What to use Easyjson is about the top of the pack and it's straightforward. The downside of efficient tools is that they use code generation to create the code required to turn your structs into json to minimise allocations. This is a manual build step which is annoying. Interestingly json-iterator also uses reflection but it's significantly faster. I suspect black magic.

  • Nanos

    Run Linux Software Faster and Safer than Linux with Unikernels.

  • GitHub repo GJSON

    Get JSON values quickly - JSON parser for Go

    Project mention: map[string]interface{} decoder | reddit.com/r/golang | 2021-10-30

    Reading and navigating arbitrary JSON: I've used https://github.com/tidwall/gjson, many others like https://github.com/buger/jsonparser are also out there.

  • GitHub repo jid

    json incremental digger

    Project mention: jid | reddit.com/r/devopskhan | 2021-10-25
  • GitHub repo OPA (Open Policy Agent)

    An open source, general-purpose policy engine.

    Project mention: Ask HN: What API Gateways do you use? | news.ycombinator.com | 2021-11-24

    I'm currently looking into using Apache APISIX, seems really interesting - especially the part of writing custom plugins.

    At Swisscom [1] we've created an APISIX [2] Plugin [3] to interact with Open Policy Agent (OPA) [4] to perform certain actions depending on the result of a policy evaluation.

    An integration with Ory Keto [5] could allow us to have a centralized API Gateway with authentication and authorization termination (by using opa-keto [6]).

    This is the power of open source technologies :)

    [1]: https://swisscom.ch

    [2]: https://apisix.apache.org/

    [3]: https://github.com/swisscom/apisix-opa-plugin

    [4]: https://www.openpolicyagent.org/

    [5]: https://www.ory.sh/keto/docs/

    [6]: https://github.com/swisscom/opa-keto

  • GitHub repo zerolog

    Zero Allocation JSON Logger

    Project mention: Go Masterpieces | reddit.com/r/golang | 2021-11-16

    Choosing from what we have zerolog is probably my favourite. Prometheus is better then many. Stdlib is not perfect and sometimes outdated but still is the best guide to start with.

  • GitHub repo 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.

    Project mention: To Drupal or not to Drupal… Putting my foot down in the Webform module's issue queue | reddit.com/r/drupal | 2021-04-26
  • Scout APM

    Scout APM: A developer's best friend. Try free for 14-days. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo miller

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

    Project mention: People who spend most of your time in the terminal, what do you do? | reddit.com/r/linux | 2021-10-01

    And it turns out things like "what percent of software in Fedora Linux is under which licenses"? are easier to answer from the command line, and in general, tools like Miller (um, no personal relation) make data-crunching from the command line faster and easier than working with a spreadsheet.

  • GitHub repo jsonparser

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

    Project mention: Whats the fastest JSON unmarshaling package as of right now? | reddit.com/r/golang | 2021-11-02

    If you don't know the schema or you only need to access one or two fields in a much larger JSON object, I would recommend https://github.com/buger/jsonparser as it provides an easy API to access specific values without fully unmarshaling. This is an unusual use case though, 9 times out of 10 I would tend to use easyjson.

  • GitHub repo hcl

    HCL is the HashiCorp configuration language.

    Project mention: Harbormaster: The anti-Kubernetes for your personal server | news.ycombinator.com | 2021-08-19

    Nomad also scales really well. In my experience swarm had a lot of issues with going above 10 machines in a cluster. Stuck containers, containers that are there but swarm can't see them and more. But still i loved using swarm with my 5 node arm cluster, it is a good place to start when you hit the limit of a single node.

    > The only serious downsides is having to use the HCL DSL ( https://github.com/hashicorp/hcl ) and their web UI being read only in the last versions that i checked.

    1. IIRC you can run jobs directly from UI now, but IMO this is kinda useless. Running a job is simple as 'nomad run jobspec.nomad'. You can also run a great alternative UI ( https://github.com/jippi/hashi-ui ).

    2. IMO HCL > YAML for job definitions. I've used both extensively and HCL always felt much more human friendly. The way K8s uses YAML looks to me like stretching it to it's limits and barely readable at times with templates.

    One thing that makes nomad a go-to for me is that it is able to run workloads pretty much anywhere. Linux, Windows, FreeBSD, OpenBSD, Illumos and ofc Mac.

  • GitHub repo easyjson

    Fast JSON serializer for golang.

    Project mention: Whats the fastest JSON unmarshaling package as of right now? | reddit.com/r/golang | 2021-11-02

    If you know the schema of the JSON ahead of time and you need to parse the whole object, I would recommend https://github.com/mailru/easyjson as that will likely give you the fastest result. This works in almost all use cases, and easy to use features such as string interning can save you a lot of time on memory allocation if you parse a lot of JSON objects with identical values.

  • GitHub repo gorequest

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

    Project mention: GitHub - wenerme/go-req: Declarative golang HTTP client | reddit.com/r/golang | 2021-08-26

    requests is not declarative for me, this is what I mean declarative https://github.com/wenerme/go-wecom/blob/main/wecom/client_agent.go , requests is more like https://github.com/parnurzeal/gorequest , just chain everything. context.Context is not required, but just can be passed by.

  • GitHub repo minify

    Go minifiers for web formats (by tdewolff)

  • GitHub repo 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: OctoSQL | reddit.com/r/devopskhan | 2021-10-31
  • GitHub repo nano

    Lightweight, facility, high performance golang based game server framework

    Project mention: New ‘Action Roguelike’ C++ Project on GitHub | news.ycombinator.com | 2021-01-16

    Couldn't you use just a vanilla Golang (or any other language) microservice for all of this? If you know what you are doing you can have a bulletproof basic service with all of the above up and running in no time, just add your game logic. Most of your requirements are part and parcel of any modern commercial Docker microservice. Never mind that such frameworks already exist, e.g. nano [0] specifically designed for games.

    Scalability is also not an issue. Number of simultaneous players and objects is limited by bandwidth and latency only. There are certainly no barriers to handling multi-million entity databases on any modern server. You're really only limited by how much data you can push out to your users within an update tick. And of course by how much money you're willing to pay for back end compute capacity on an ongoing basis. But those costs are very low these days, especially if you have dedicated servers rather then AWS/Google/Azure.

    I think perhaps the issue is not so much that frameworks don't exist, but rather that no single framework has achieved popularity in the game design community. The indie crowd is not likely to want to, or afford to, run servers for years and years, so the demand is not there. The triple-A studios roll their own.

    [0] https://github.com/lonng/nano

  • GitHub repo httpexpect

    End-to-end HTTP and REST API testing for Go.

    Project mention: Gostman: Postman like inside Go testing | reddit.com/r/golang | 2021-11-26

    I use this library: https://github.com/gavv/httpexpect

  • GitHub repo gojsonq

    A simple Go package to Query over JSON/YAML/XML/CSV Data

  • GitHub repo 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: Can Vim show the key-chain like Android Studio does for JSON files? | reddit.com/r/vim | 2021-11-10
  • GitHub repo render

    Go package for easily rendering JSON, XML, binary data, and HTML templates responses. (by unrolled)

    Project mention: Any good git repos made by a single dev? | reddit.com/r/golang | 2021-08-18
  • GitHub repo tanka

    Flexible, reusable and concise configuration for Kubernetes

    Project mention: Switching Careers - Becoming a Linux Engineer... Am I crazy? | reddit.com/r/sysadmin | 2021-11-21

    Yes, I almost wrote Helm and Terraform into that list. But I dislike Helm and Terraform. Personally I'm a fan of Tanka. The ability to library and extend bits of data is extremely powerful. Helm and TF are way too much copy-pasta / boilerplate for my taste.

  • GitHub repo sjson

    Set JSON values very quickly in Go

    Project mention: What are your favorite packages to use? | reddit.com/r/golang | 2021-08-15

    I love https://github.com/tidwall/gjson and https://github.com/tidwall/sjson for fast and frictionless json reading and editing. It makes life so much easier for cases where you don't want to model a tree of nightmare-ish API responses, like Elasticsearch.

  • GitHub repo fastjson

    Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection (by valyala)

    Project mention: sonic - A blazingly fast JSON serializing & deserializing library | reddit.com/r/golang | 2021-11-20

    fastjson is a library I've used in production and had a good experience with. Written in pure Go so that's a big plus vs Assembly in my perspective.

  • GitHub repo null

    reasonable handling of nullable values (by guregu)

    Project mention: Gonion - Golang Client for querying Tor network data | reddit.com/r/golang | 2021-09-29

    Unfortunately in Go, switching to *bool makes the api a little more awkward to use since users that need to set true or false have to define a local variable then use a pointer to that. Another option would be something like null, but that adds a dependency to your currently-dependency-free project. If anyone has a better solution to this pattern, I'd love to hear it.

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 2021-11-26.

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 16,881
2 jsoniter 10,117
3 GJSON 9,327
4 jid 6,065
5 OPA (Open Policy Agent) 5,825
6 zerolog 5,544
7 Ponzu 5,357
8 miller 4,599
9 jsonparser 4,263
10 hcl 3,721
11 easyjson 3,467
12 gorequest 3,039
13 minify 2,813
14 octosql 2,560
15 nano 1,872
16 httpexpect 1,808
17 gojsonq 1,779
18 dasel 1,690
19 render 1,557
20 tanka 1,491
21 sjson 1,483
22 fastjson 1,379
23 null 1,295
Find remote jobs at our new job board 99remotejobs.com. There are 34 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives