/go-bytesize

Utility package for working with common memory and cpu units in Go

Primary LanguageGoMIT LicenseMIT

Go Bytesize

MIT License Go Report Card Go Doc

Overview

Go Bytesize is a utility package for working with common multiples of bytes in Go, such as: Bytes (B), Kilobytes (KB), Megabytes (MB), Gigabytes (GB), Terabytes (TB), Petabytes (PB), Exabytes (EB), Kibibytes (Kib), Mebibytes (MiB), Gibibytes (GiB), Tebibytes (TiB), Pebibytes (PiB), and Exbibytes (EiB).

Example

package main

import (
        "fmt"
        "github.com/zpatrick/go-bytesize"
)

func main() {
        b := bytesize.Bytesize(10000)
        fmt.Printf("%g bytes is: %g KB and %g MB\n", b, b.Kilobytes(), b.Megabytes())

        b = bytesize.TB * 2
        fmt.Printf("2 Terabytes is %g Gibibytes\n", b.Gibibytes())

        b = bytesize.Bytesize(1000000)
        fmt.Printf("%g bytes is %s\n", b, b.Format("mb"))
}

Output:

10000 bytes is: 10 KB and 0.01 MB
2 Terabytes is 1862.645149230957 Gibibytes
1e+06 bytes is 1MB

License

This work is published under the MIT license. Please see the LICENSE file for details.