encoding/README.md

40 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# @go/encoding
`@go/encoding` 是一个为“极简、安全、无摩擦”业务开发设计的编解码工具库。它统一了二进制数据与文本处理的 API 语义,通过静默处理错误与基于字节的零拷贝设计,极大降低了业务逻辑中的错误处理心智负担。
## 🎯 设计哲学
* **API 原生直觉**:二进制操作基于 `[]byte`,文本表现类操作(如 HTML/URL基于 `string`,与 Go 原生习惯保持高度一致。
* **静默防御 (Must 系列)**:对于不可逆的非法输入,提供 `MustUnXxx` 系列 API静默返回零值消除业务代码中无效的错误检查噪声。
* **极致纯粹**:废除所有冗余的封装,强制数据链路层以 `[]byte` 形式流转,确保底层安全性与性能。
## 🛠 API Reference
### 基础编解码 (Hex/Base64)
- `func Hex(data []byte) []byte` / `func HexToString(data []byte) string`
- `func MustUnHex(data []byte) []byte` / `func MustUnHexFromString(data string) []byte`
- `func Base64(data []byte) []byte` / `func Base64ToString(data []byte) string`
- `func MustUnBase64(data []byte) []byte` / `func MustUnBase64FromString(data string) []byte`
### Web 编码 (URL/HTML)
- `func UrlEncode(data []byte) string`
- `func MustUnUrlEncode(data string) []byte`
- `func HtmlEscape(data []byte) string`
- `func MustUnHtmlEscape(data string) string`
### 整数与自定义进制 (IntEncoder)
- `func EncodeInt(u uint64) []byte`
- `func AppendInt(buf []byte, u uint64) []byte`
- `func DecodeInt(buf []byte) uint64`
- `func FillInt(buf []byte, length int) uint64`
- `func ExchangeInt(buf []byte) []byte`
- `func HashInt(data []byte, key []byte) []byte`
## 📦 安装
```bash
go get apigo.cc/go/encoding
```