https://github.com/rekby/fastuuid
Fast implementation for uuid
https://github.com/rekby/fastuuid
Last synced: 6 months ago
JSON representation
Fast implementation for uuid
- Host: GitHub
- URL: https://github.com/rekby/fastuuid
- Owner: rekby
- License: mit
- Created: 2023-02-28T02:47:48.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-28T04:25:25.000Z (almost 3 years ago)
- Last Synced: 2025-03-30T05:13:30.927Z (8 months ago)
- Language: Go
- Size: 31.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-go-cn - fastuuid
- awesome-go-plus - fastuuid - Fast generate UUIDv4 as string or bytes. (UUID / Utility/Miscellaneous)
- fucking-awesome-go - fastuuid - Fast generate UUIDv4 as string or bytes. (UUID / Utility/Miscellaneous)
- awesome-go - fastuuid - Fast generate UUIDv4 as string or bytes. (UUID / Utility/Miscellaneous)
- awesome-go-with-stars - fastuuid - Fast generate UUIDv4 as string or bytes. (UUID / Utility/Miscellaneous)
- awesome-go - fastuuid - Fast generate UUIDv4 as string or bytes. (UUID / Utility/Miscellaneous)
README
[](https://pkg.go.dev/github.com/rekby/fastuuid)
[](https://goreportcard.com/report/github.com/rekby/fastuuid)
[](https://codecov.io/gh/rekby/fastuuid)
Fast uuid library, now implemented only UUIDv4 (crypto-random) generators.
It generate UUID to string about 50-100ns with one allocation and good paralellism by cpu.
Command for install:
```bash
go get github.com/rekby/fastuuid
```
Example:
```golang
package main
import "github.com/rekby/fastuuid"
func main(){
fmt.Println(fastuuid.MustUUIDv4String())
}
```
For run benchmarks:
```
git clone https://github.com/rekby/fastuuid.git
cd fastuuid/benchmarks
go test -test.bench=. -v
```
Result for macbook pro M1:
```
goos: darwin
goarch: arm64
pkg: github.com/rekby/fastuuid/benchmarks
BenchmarkRekbyUUID/one-thread 13688407 85.92 ns/op 48 B/op 1 allocs/op
BenchmarkRekbyUUID/multi-thread 25657815 51.81 ns/op 47 B/op 0 allocs/op
BenchmarkGoogleUUID4/one-thread 2256043 530.5 ns/op 64 B/op 2 allocs/op
BenchmarkGoogleUUID4/multi-thread 1897683 634.9 ns/op 63 B/op 1 allocs/op
BenchmarkSatoriUUID4/one-thread 2277092 531.1 ns/op 64 B/op 2 allocs/op
BenchmarkSatoriUUID4/multi-thread 1950952 624.3 ns/op 62 B/op 1 allocs/op
BenchmarkGofrs/one-thread 2265781 530.3 ns/op 64 B/op 2 allocs/op
BenchmarkGofrs/multi-thread 1912966 635.9 ns/op 63 B/op 1 allocs/op
BenchmarkRogpeppeUnsecuredBecauseItCounter/one-thread 28806307 40.35 ns/op 48 B/op 1 allocs/op
BenchmarkRogpeppeUnsecuredBecauseItCounter/multi-thread 7198768 168.0 ns/op 47 B/op 0 allocs/op
BenchmarkJakehl/one-thread 1956322 611.8 ns/op 144 B/op 5 allocs/op
BenchmarkJakehl/multi-thread 1963675 643.4 ns/op 142 B/op 4 allocs/op
BenchmarkRwxrob/one-thread 1620858 740.5 ns/op 184 B/op 7 allocs/op
BenchmarkRwxrob/multi-thread 1870315 644.6 ns/op 182 B/op 6 allocs/op
```