Go 1.18 Released

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. go

    The Go programming language

    I wish I had your time and effort to be able to fix the issues of split DNS in macOS being broken unless using cgo.

    https://github.com/golang/go/issues/12524

    This has been an open issue since 2015. It's a pain because every single last tool using go cross compilation fails to use the proper DNS resolver and thereby doesn't work when using work VPN's.

    This is tools like: kubectl, vault, concourse (fly), and many other binaries that get built on CI, and unless the company builds on macOS builders and uses CGO_ENABLED=1 DNS resolution is just broken.

    And it is increasingly frustrating.

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. lo

    💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)

    WOOO!

    I have been using the RC at work lately, and I have to say: The generics implementation is quite nice, and RUTHLESSLY slashes boilerplate and copy-pasta.

    This is going to turn Golang from "that one boilerplate-y language without generics" into my favorite language.

    I've been using the https://github.com/samber/lo library, and it is very nice to be able to do "map/reduce/etc..." on golang structs.

    I would really enjoy a chaining library, and some tooling to make type coersion a bit cleaner.

  4. proposal

    Go Project Design Documents

    Go is not quite doing this level of expansion: https://github.com/golang/proposal/blob/master/design/generi...

    In particular, a single expansion is shared for all pointer types.

  5. functional-go

    This library is inspired by functional programming - Clojure

    earlv 17th century

    >> instead of actually giving a shit about the perspectives of those who disagree with you

    Now i resent that because i took the time to try and steelman your bad argument.

    >> they couldn't be without copy/pasting their implementation for every single array type you wanted to implement them for

    Not true, as i said there’s always been options for this:

    >> if we need them to be generic over argument types - in the absolute worst case (so not using go generate to help us here or an interface…

    Behind the scenes in the compiler, the syntactic sugar of generics are ultimately performing what you would do with “go generate“.

    >> in every project that wants to use them

    I don’t follow, why aren’t we allowed to create a library for code reuse like https://github.com/logic-building/functional-go/blob/master/... has done for example?

  6. go_chainable

    With generics, allowing chainable .Map(func(...)).Reduce(func(...)) syntax in go

  7. go-generic-optional

    Implementation of Optionals in Go using Generics

    In celebration of generics release, I was playing around with supporting Optionals via generics. If anyone's interested I am happy to make this a real project

    https://github.com/frenchie4111/go-generic-optional

  8. genny

    Elegant generics for Go

    Im not sure about any library in particular.

    There were bunch of libraries which helped with code generation to work around generics. I don't think it was specific to Graphql.

    https://github.com/cheekybits/genny is one I have seen.

  9. SaaSHub

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

    SaaSHub logo
  10. gtl

    Golang Template Library (GTL). Common data structures using Golang generics. (by dgrr)

    I started a template library some time ago. It needs a bit of a clean up, but for starters it's quite decent.

    https://github.com/dgrr/gtl

  11. golang-set

    A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.

    It depends on the level of abstraction you're addressing. One level may be "i need to store things with a quick search function", another may be "i need a storage of ordered names and expiry date for things", etc until you get to "I need a binary tree which orders by comparable types".

    Where you split that process as a separate library you either decide to write or reuse - that becomes the problem to solve. A set implementation may be a problem to solve: https://github.com/deckarep/golang-set A btree may be a problem to solve: https://gitlab.com/cznic/b/-/tree/master/v2

  12. b

    It depends on the level of abstraction you're addressing. One level may be "i need to store things with a quick search function", another may be "i need a storage of ordered names and expiry date for things", etc until you get to "I need a binary tree which orders by comparable types".

    Where you split that process as a separate library you either decide to write or reuse - that becomes the problem to solve. A set implementation may be a problem to solve: https://github.com/deckarep/golang-set A btree may be a problem to solve: https://gitlab.com/cznic/b/-/tree/master/v2

  13. redpanda

    Redpanda is a streaming data platform for developers. Kafka API compatible. 10x faster. No ZooKeeper. No JVM!

    a small note on redpanda. Is not a `rewrite`. It is an entire new storage engine, different consensus protocol, different on-disk format, different internal RPC, no external dependencies, ...., in fact when i started it it was using flatbuffers as the API. What we did later to make money is add a kafka-API translation layer, but in terms of code size, is a very small part. The way i'd recommend thinking about it is a new storage engine that is compatible w/ kafka clients. https://github.com/redpanda-data/redpanda/tree/dev/src/v/kaf... - this is basically all the kafka-related code, the rest is net-new design.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Go is not an easy language (2021)

    1 project | news.ycombinator.com | 14 Jan 2024
  • Functional Programming Library for Golang by IBM

    8 projects | news.ycombinator.com | 17 Aug 2023
  • samber/lo utility package based on generics

    2 projects | /r/golang | 18 May 2023
  • Common Utiliy Functions in Go

    2 projects | /r/golang | 27 Apr 2023
  • Starting go after py any guidance will be helpful :)

    1 project | /r/golang | 12 Apr 2023

Did you know that Go is
the 4th most popular programming language
based on number of references?