logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

libnbd-golang - how to use libnbd from Go

Authors

       Richard W.M. Jones

Description

       This manual page documents how to use libnbd to access Network Block Device (NBD) servers from the Go
       programming language.  The Go bindings work very similarly to the C bindings so you should start by
       reading libnbd(3).

Errors

       Most calls return either a single "LibnbdError" or a pair "(ret, LibnbdError)".

Examples

       This directory contains examples written in Go:

       https://gitlab.com/nbdkit/libnbd/tree/master/golang/examples

Handles

       Create a libnbd handle of type "Libnbd" by calling Create().

       You can either close the handle explicitly by a deferred call to "h.Close()" or it will be closed
       automatically when it is garbage collected.

License

       This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser
       General Public License as published by the Free Software Foundation; either version 2 of the License, or
       (at your option) any later version.

       This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
       the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
       Public License for more details.

       You should have received a copy of the GNU Lesser General Public License along with this library; if not,
       write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

libnbd-1.22.2                                      2025-06-16                                   libnbd-golang(3)

Name

       libnbd-golang - how to use libnbd from Go

See Also

libnbd(3).

Synopsis

        import "libguestfs.org/libnbd"

        h, err := libnbd.Create()
        if err != nil {
            panic(err)
        }
        defer h.Close()
        uri := "nbd://localhost"
        err = h.ConnectUri(uri)
        if err != nil {
            panic(err)
        }
        size, err := h.GetSize()
        if err != nil {
            panic(err)
        }
        fmt.Printf("size of %s = %d\n", uri, size)

See Also