# bmutil **Repository Path**: banmao999/bmutil ## Basic Information - **Project Name**: bmutil - **Description**: 自使用 Golang 包,包含日志、令牌桶 - **Primary Language**: Unknown - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-20 - **Last Updated**: 2026-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # bmutil 工具包 Golang 工具包,包含一些我常用的工具 依赖: go 1.24 - logger 日志 - tokenBucket 令牌桶 - pbStorage pb文件读写 # 发布 1. 打标签 ```shell git tag v0.0.1 git push origin v0.0.1 ``` 2. 删除标签 ```shell // 删除本地标签 git tag -d // 删除远程标签 git push origin :refs/tags/ ``` # 使用 ## 下载包 ```shell # 下载最新包 go get -u gitee.com/banmao999/bmutil # 获取指定版本 go get -u gitee.com/banmao999/bmutil@v0.0.1 ``` ## 功能 1. logger ```go logger.Infof("hello %s", "world") logger.Debugf("hello %s", "world") logger.Errorf("hello %s", "world") logger.Warnf("hello %s", "world") ``` 2. tokenBucket ```go // 自动填充令牌桶 ctx, cancelFunc := context.WithCancel(context.Background()) var tokenBucket = Create(ctx, 5, 1*time.Second) // 固定长度令牌桶 var tokenBucket = CreateFix(10) // 获取令牌 tokenBucket.TryTakeOne() // 固定长度令牌桶手动填充令牌 tokenBucket.Done() // 关闭令牌桶 tokenBucket.Close() ``` 3. pbStorage ```go // 通过 protoc 编译器根据 proto 文件生成 proto go 文件 userPb := StorageStruct[*UserStruct]{ PbBaseDir: "../output", PbFileName: "user.pb", } // 写入本地pb文件 user := &UserStruct{} userPb.Write(user) // 读取本地pb文件 newUser := UserStruct{} userPb.ReadPb(&newUser) ```