1
0
mirror of https://github.com/fumiama/go-base16384.git synced 2026-06-05 00:32:52 +08:00

edit README

This commit is contained in:
源文雨
2022-04-22 21:15:46 +08:00
parent 2e6fe912c2
commit 66e99f683d

View File

@@ -2,15 +2,84 @@
base16384 interface of golang
# Usage
## As package
Just import it in your project.
## As lib
Copy this repo to `$GOPATH/src`, then execute
```bash
go install -buildmode=shared -linkshared std
go install -buildmode=shared -linkshared base14
## Quick start
```go
package main
import (
"fmt"
b14 "github.com/fumiama/go-base16384"
)
func main() {
str := b14.EncodeString("1234567")
fmt.Println(str, b14.DecodeString(str))
}
```
Now you can use
```bash
go build -linkshared ...
## API
```go
func Encode(b []byte) (encd []byte)
func EncodeLen(in int) (out int)
func EncodeTo(b, encd []byte) error
func EncodeToString(b []byte) string
func EncodeFromString(s string) []byte
func EncodeString(s string) string
func DecodeLen(in, offset int) (out int)
func Decode(b []byte) (decd []byte)
func DecodeTo(b []byte, decd []byte) error
func DecodeToString(d []byte) string
func DecodeFromString(s string) []byte
func DecodeString(s string) string
```
## Stream API
```go
package main
import (
"bytes"
"crypto/rand"
"io"
b14 "github.com/fumiama/go-base16384"
)
func main() {
buf := make([]byte, 1024*1024+1)
_, err := rand.Read(buf)
if err != nil {
panic(err)
}
w := bytes.NewBuffer(make([]byte, 0, 1024*1024+1))
e := b14.NewEncoder(bytes.NewReader(buf))
_, err = io.Copy(w, e)
if err != nil {
panic(err)
}
w2 := bytes.NewBuffer(make([]byte, 0, 1024*1024+1))
d := b14.NewDecoder(bytes.NewReader(w.Bytes()))
_, err = io.Copy(w2, d)
if err != nil {
panic(err)
}
if !bytes.Equal(buf, w2.Bytes()) {
panic("fail!")
}
}
```