Go JSON

Open-source Go projects categorized as JSON | Edit details

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.

  • 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 GJSON

    Get JSON values quickly - JSON parser for 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 jid

    json incremental digger

    Project mention: How to navigate an API from the terminal | dev.to | 2021-10-02

    If you're trying to work out the structure and content of an API's JSON responses, you can keep paging through the documentation and the paged output of less or you can reach for more precise JSON parsing tools such as, jq and jid.

  • GitHub repo opa

    An open source, general-purpose policy engine.

    Project mention: Authentication between services with static token | reddit.com/r/golang | 2021-10-03

    There is a new and growing standard for embedding service identity within X.509 cetificates called SPIFFE that is being widely adopted by infrastructure components that deal with service to service proxying, namely service meshes. Several popular service meshes use SPIFFE to communicate and verify service identity over mTLS. Most service meshes that provide service identity also have some mechanism for controlling cross-service interactions from the control plane, for example using OPA to describe and enforce access policies.

  • GitHub repo zerolog

    Zero Allocation JSON Logger

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

    What to use I prefer zerolog, but zap isn't bad either. Both boast zero-allocation, which is what you want for a task that should have the smallest possible impact on your application.

  • 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
  • Nanos

    Run Linux Software Faster and Safer than Linux with Unikernels.

  • GitHub repo jsonparser

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

    Project mention: Handling large json files at runtime | reddit.com/r/golang | 2021-07-27

    But if you want more problems there are some options: jsonparser and possibly mmap.

  • 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: 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.

  • 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: Show HN: Work with CSV files using SQL. For data scientists and engineers | news.ycombinator.com | 2021-07-18
  • 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.

  • 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: An Introduction to JQ | news.ycombinator.com | 2021-08-24

    For anyone wrangling with data like I do. I use https://github.com/TomWright/dasel quite a lot (it supports various formats and conversion between them) Also csvkit https://csvkit.readthedocs.io for CSV to sql. And ofcourse pandas for analysis.

  • 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: Is there anything as easy to use as logdna but on the side of metrics: grafana/prometheus | reddit.com/r/kubernetes | 2021-10-09

    If you're running multiple clusters, I recommend looking at Tanka to apply helm and other resources to all your clusters.

  • 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: Faster time parsing | reddit.com/r/golang | 2021-10-04
  • 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.

  • GitHub repo go-json

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

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

    go-json for encoding/decoding

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-10-09.

Index

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

Project Stars
1 urfave/cli 16,663
2 jsoniter 9,904
3 GJSON 9,114
4 jid 6,025
5 opa 5,672
6 zerolog 5,369
7 Ponzu 5,328
8 jsonparser 4,210
9 hcl 3,673
10 easyjson 3,363
11 gorequest 2,986
12 minify 2,784
13 octosql 2,531
14 nano 1,835
15 httpexpect 1,789
16 gojsonq 1,747
17 dasel 1,632
18 render 1,541
19 tanka 1,463
20 sjson 1,422
21 fastjson 1,336
22 null 1,267
23 go-json 1,165
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
www.saashub.com