go-json VS pgx

Compare go-json vs pgx and see what are their differences.

go-json

Fast JSON encoder/decoder compatible with encoding/json for Go (by goccy)

pgx

PostgreSQL driver and toolkit for Go (by jackc)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
go-json pgx
24 71
2,766 9,414
- -
3.5 9.2
about 2 months ago 9 days ago
Go Go
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

go-json

Posts with mentions or reviews of go-json. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-09.
  • API: Go, .NET, Rust
    3 projects | /r/dotnet | 9 Dec 2023
    For go -> you can actually get away with the standard json encoding package. Or if you want a slightly better one, I prefer goccy/go-json
  • Rob Pike: Gobs of data (2011)
    10 projects | news.ycombinator.com | 4 Dec 2023
    Someone made a benchmark of serialization libraries in go [1], and I was surprised to see gobs is one of the slowest ones, specially for decoding. I suspect part of the reason is that the API doesn't not allow reusing decoders [2]. From my explorations it seems like both JSON [3], message-pack [4] and CBOR [5] are better alternatives.

    By the way, in Go there are a like a million JSON encoders because a lot of things in the std library are not really coded for maximum performance but more for easy of usage, it seems. Perhaps this is the right balance for certain things (ex: the http library, see [6]).

    There are also a bunch of libraries that allow you to modify a JSON file "in place", without having to fully deserialize into structs (ex: GJSON/SJSON [7] [8]). This sounds very convenient and more efficient that fully de/serializing if we just need to change the data a little.

    --

    1: https://github.com/alecthomas/go_serialization_benchmarks

    2: https://github.com/golang/go/issues/29766#issuecomment-45492...

    --

    3: https://github.com/goccy/go-json

    4: https://github.com/vmihailenco/msgpack

    5: https://github.com/fxamacker/cbor

    --

    6: https://github.com/valyala/fasthttp#faq

    --

    7: https://github.com/tidwall/gjson

    8: https://github.com/tidwall/sjson

  • Data storage speed comparisons?
    1 project | /r/golang | 27 Mar 2023
    Drop-in replacement for the stdlib JSON package: https://github.com/goccy/go-json
  • Go is 2-3 times slower than JS in a similar code. What makes Go slow in this specific code?
    2 projects | /r/golang | 16 Mar 2023
    go stdlib json encoding/decoding is incredibly slow, not sure for how much longer because there are drop in replacements now that I think are just as strict and feature parity.
  • Go with Chi has more ram consumption and less req/s than Koa or Fastify
    7 projects | /r/golang | 3 Oct 2022
    3rd party JSON libraries could help if you were comparing JSON. https://github.com/goccy/go-json
  • ogen: spec-first OpenAPI v3 codegen for Go
    4 projects | /r/golang | 3 Jun 2022
    However, I understand the code that is generated is super optimized. For example, rather than use a router, it does a static code generated router. Rather than use goccy/go-json, it does manual marshalling.
  • japi is a JSON HTTP API go library with generics
    4 projects | /r/golang | 27 May 2022
    Minimal dependencies: julienschmidt/httprouter and goccy/go-json
  • Using a json lib other than encoding/json
    2 projects | /r/golang | 23 Mar 2022
    I suggested using https://github.com/goccy/go-json at my work, since its a drop in replacement for the standard lib, but there are people who apprehensive. In my opinion the performance gains are significant to justify adoption. But I'd like your input.
  • Whats the fastest JSON unmarshaling package as of right now?
    4 projects | /r/golang | 2 Nov 2021
  • What are your favorite packages to use?
    55 projects | /r/golang | 15 Aug 2021
    go-json for encoding/decoding

pgx

Posts with mentions or reviews of pgx. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-22.
  • Setting up a Database Driver, Repository and Implementation of a transaction function for your Go App
    2 projects | dev.to | 22 Apr 2024
    Sometimes, backend developers tend to opt for an ORM library because it provides an abstraction between your app and the database and thus there is little or no need to write raw queries and migrations which is nice. However, if you want to get better at writing queries (SQL for example), you need to learn how to build your repositories without an ORM. To open a database handle, you can either do it directly from the database driver or do it from database/sql with the driver passed into it. I will be opening the connection with database/sql together with pgx which is a driver and toolkit for PostgreSQL. Walk with me.
  • The DDD Hamburger for Go
    2 projects | dev.to | 6 Jan 2024
    The infrastructure layer contains the concrete implementation of the repository domain interface ActivityRepository in the struct DbActivityRepository. This repository implementation uses the Postgres driver pgx and plain SQL to store the activity in the database. It uses the database transaction from the context, since the transaction was initiated by the application service.
  • Building RESTful API with Hexagonal Architecture in Go
    21 projects | dev.to | 27 Sep 2023
    For building the RESTful Point of Sale service API, I've considered and selected a combination of technologies that would work seamlessly together. For handling HTTP requests and responses, using the Gin HTTP web framework would make sense because I think it seems complete and popular among Go community too. To ensure data integrity and persistence, I'm using PostgreSQL database with pgx as the database driver, the reason I choose PostgreSQL because it is the most popular relational database to use in production and offers efficient Go integration. I'm also implementing caching using Redis with go-redis client library, which provides powerful in-memory data storage capabilities.
  • Working with postgres in GO.
    2 projects | /r/golang | 3 Jul 2023
    If you are willing to commit to working only with Postgres, I highly recommend pgx. Be sure you get the latest version github.com/jackc/pgx/v5. This gives you the full power of interacting with Postgres without going through an intermediate lowest-common-denominator library.
  • How to Use Iris and PostgreSQL for Web Development
    6 projects | dev.to | 2 Jul 2023
    It uses pg package and pgx driver under the hood.
  • Could I get a code review?
    11 projects | /r/golang | 1 Jun 2023
    Starting off, is there any reason you're calling out to the CLI, instead of just using a Postgres driver like pgx? Shelling out to the command line should always be a last resort where possible as a software engineer.
  • Why elixir over Golang
    10 projects | /r/elixir | 29 May 2023
    For maintaining state I use PostgreSQL. Driver: https://github.com/jackc/pgx (I use the pgxpools) Along with Sqlc for generating database models and allowing me to focus on just building queries in DBeaver. https://sqlc.dev/
  • Make psql display settings on login
    1 project | /r/PostgreSQL | 24 May 2023
    An example of what I'm looking for can be found here https://github.com/jackc/pgx/wiki/Getting-started-with-pgx-through-database-sql/c9f798b4d9a500fcf93931df2464af969d68f516
  • Zig now has built-in HTTP server and client in std
    3 projects | news.ycombinator.com | 18 May 2023
    Except pgx recommends using their native interface, not database/sql, for performance and extra features [0], so it's not that simple in practice.

    [0]: https://github.com/jackc/pgx#choosing-between-the-pgx-and-da...

  • Go Roadmap
    2 projects | /r/golang | 5 May 2023
    pgx is “PostgreSQL driver and toolkit for Go”. Take a look at https://github.com/jackc/pgx

What are some alternatives?

When comparing go-json and pgx you can also consider the following projects:

jsoniter - A high-performance 100% compatible drop-in replacement of "encoding/json"

sqlx - general purpose extensions to golang's database/sql

easyjson - Fast JSON serializer for golang.

GORM - The fantastic ORM library for Golang, aims to be developer friendly

GJSON - Get JSON values quickly - JSON parser for Go

pq - Pure Go Postgres driver for database/sql

go-fuzz - Randomized testing for Go

gomock - GoMock is a mocking framework for the Go programming language.

Gin - Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

go-sql-driver/mysql - Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package

zap - Blazing fast, structured, leveled logging in Go.

sqlc - Generate type-safe code from SQL