Releases: rssh-jp/go-bandwidth
Releases · rssh-jp/go-bandwidth
Release list
v2.0.1
インストール
go get github.com/rssh-jp/go-bandwidth使い方
Writer(書き込み帯域制限)
package main
import (
"log"
"os"
"time"
bandwidth "github.com/rssh-jp/go-bandwidth"
)
func main() {
fd, err := os.OpenFile("./output", os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0644)
if err != nil {
log.Fatal(err)
}
defer fd.Close()
// 1秒あたり 1024 バイトに帯域制限して書き込む
w := bandwidth.New(
bandwidth.OptionWriter(fd),
bandwidth.OptionConstant(1024, time.Second),
)
for i := 0; i < 100; i++ {
if _, err := w.Write([]byte{byte(i)}); err != nil {
log.Fatal(err)
}
}
}Reader(読み込み帯域制限)
r := bandwidth.New(
bandwidth.OptionReader(fd),
bandwidth.OptionConstant(1024, time.Second),
)
buf := make([]byte, 4096)
n, err := r.Read(buf)ReadWriter(読み書き両方)
rw := bandwidth.New(
bandwidth.OptionReader(fd),
bandwidth.OptionWriter(fd),
bandwidth.OptionConstant(1024, time.Second),
)デフォルト設定の利用
// デフォルト設定(初期値: 1MiB/秒)を変更する
bandwidth.SetDefault(512*1024, time.Second)
// デフォルト設定を共有するインスタンスを作成
w := bandwidth.New(bandwidth.OptionUseDefault(), bandwidth.OptionWriter(fd))What's Changed
- Goのバージョンを1.26に更新し、テストとドキュメントを改善しました。また、Copilot用の指示を追加しました。 by @rssh-jp in #1
- 変数の削除と関数の戻り値を修正 by @rssh-jp in #2
New Contributors
Full Changelog: v1.1.0...v2.0.1