Netaddr.ip: a new IP address type for Go

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

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • go

    The Go programming language

  • Mostly we optimize at the application layer (e.g. we do lazy on-demand WireGuard tunnel configuration, to minimize how much state sits around idle). We also have a small fork of Go with some space-optimizing changes: https://github.com/golang/go/compare/master...tailscale:tail... (most of these changes get upstreamed, albeit delayed by one release cycle).

    Aside from that, Go's also just not a big garbage generator in general, compared to older GC'd languages like Java, so with a little care you can keep the pressure off.

    That said, if anyone at Apple's listening, it would sure be nice to have, say, 30MiB ;). 15MiB makes it possible to cram a whole mesh networking stack in, but doesn't make it fun.

  • rust

    Empowering everyone to build reliable and efficient software.

  • Appears to be 16 bytes on Windows (larger of the two variants): https://github.com/rust-lang/rust/blob/master/library/std/sr...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • wireguard-go

    Mirror only. Official repository is at https://git.zx2c4.com/wireguard-go

  • > The story begins in April 2019 with 89476f8cb5 in which David Crawshaw, aware of all these problems, created an IP type like:

    It's in a PR here: https://github.com/WireGuard/wireguard-go/pull/11/files

    Which mentions:

    > Typically throughout WireGuard, we've used [4]byte for v4 and [16]byte for v6, considering the Go standard library's choice of v6-mapped-v4 to be a mistake.

    It actually looks useful, there's something similar in wgtypes, and I wanted to use it recently [0] but that package unfortunately doesn't expose a way to write it out to a string/buffer, so I ended up almost replicating it.

    [0] https://github.com/OJFord/terraform-provider-wireguard/blob/...

    (There's a lot of ways of presenting/parsing/constructing the same config options there! I'm sure if I were more fluent in Go there's some more succinct way.)

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

  • Banging Errors in Go

    4 projects | news.ycombinator.com | 19 Oct 2023
  • No telemetry in the Rust compiler: metrics without betraying user privacy

    2 projects | news.ycombinator.com | 1 Aug 2023
  • proposal: cmd/go: add .ʕ◔ϖ◔ʔ as an alternate spelling of .go in file names

    2 projects | /r/rustjerk | 4 May 2023
  • Generalizing with GAT: what's going to happen to the current, less general traits?

    2 projects | /r/rust | 20 Oct 2021
  • Rust is good, but I feel like its almost never productive to work in rust...

    3 projects | /r/programmingcirclejerk | 3 Aug 2021