Every grain of sand on Earth has its own ID.
Note that the algorithm used to generate the
sandid.SandID
mainly come
from the UUID version 1. Some adjustments
were made to enhance the efficiency of database insertion (see
this).
- Extremely easy to use
- Fixed length
- 16 bytes
- 22 characters
- 128-bit
- Huge capacity
- Up to 2e128
- URL safe
^[A-Za-z0-9-_]{22}$
- Encoding friendly
- Implemented
encoding.TextMarshaler
andencoding.TextUnmarshaler
- Implemented
encoding.BinaryMarshaler
andencoding.BinaryUnmarshaler
- Implemented
json.Marshaler
andjson.Unmarshaler
- Implemented
- SQL friendly
sandid.NullSandID
support- Implemented
sql.Scanner
anddriver.Valuer
- Zero third-party dependencies
Open your terminal and execute
$ go get github.com/aofei/sandid
done.
The only requirement is the Go, at least v1.13.
If you want to discuss SandID, or ask questions about it, simply post questions or ideas here.
If you want to help build SandID, simply follow this to send pull requests here.
This project is licensed under the MIT License.
License can be found here.