Show HN: Go-Nbd – A Pure Go NBD Server and Client

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

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • go-nbd

    Pure Go NBD server and client library.

  • You should probably defer mutex unlock() and not use naked returns: https://github.com/pojntfx/go-nbd/blob/main/pkg/backend/file...

  • gnet

    🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet 是一个高性能、轻量级、非阻塞的事件驱动 Go 网络框架。

  • Since this heavily involves networking, take a look into using gnet [0]. You might find some interesting performance improvements by using that over just net.Conn.

    [0] https://github.com/panjf2000/gnet

  • 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
  • nbdkit-baddisk-plugin

    An nbdkit plugin which fails every read and write.

  • Very cool! I'm curious if you've explored testing error cases yet? Years ago I fooled around with nbdkit and developed a "bad sectors" and "bad disk" plugin and found that the error handling around these scenarios left a little to be desired.

    https://github.com/pepaslabs/nbdkit-baddisk-plugin

    https://github.com/pepaslabs/nbdkit-badsector-plugin

  • nbdkit-badsector-plugin

    An nbdkit plugin which simulates a disk with a bad sector.

  • Very cool! I'm curious if you've explored testing error cases yet? Years ago I fooled around with nbdkit and developed a "bad sectors" and "bad disk" plugin and found that the error handling around these scenarios left a little to be desired.

    https://github.com/pepaslabs/nbdkit-baddisk-plugin

    https://github.com/pepaslabs/nbdkit-badsector-plugin

  • pyamigadebug

    Framework for abstracting Amiga debuggers and access to AmigaOS libraries and devices. AmigaXfer lives here.

  • NBD is fairly simple. I wrote a minimal server in Python[0]. It is just a few lines.

    0. https://github.com/rvalles/pyamigadebug/blob/master/NBDServe...

  • UDPspeeder

    A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction, possible for All Traffics(TCP/UDP/ICMP)

  • I just use nbd-server, nbd-client (kernel module nbd). While at home things are fine, when not at home things can get bad unless you use something like UDPspeeder <https://github.com/wangyu-/UDPspeeder> then you just need to deal with slower speeds.

    I do backups with borg while connected through ethernet.

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