chore: Generate UUID from fastrand

This commit is contained in:
H1JK
2023-03-05 11:00:14 +08:00
parent 3b037acb01
commit ae966833a4
11 changed files with 34 additions and 19 deletions

View File

@ -2,15 +2,22 @@ package utils
import (
"github.com/gofrs/uuid"
"github.com/zhangyunhao116/fastrand"
)
var uuidNamespace, _ = uuid.FromString("00000000-0000-0000-0000-000000000000")
type fastRandReader struct{}
func (r fastRandReader) Read(p []byte) (int, error) {
return fastrand.Read(p)
}
var UnsafeUUIDGenerator = uuid.NewGenWithOptions(uuid.WithRandomReader(fastRandReader{}))
// UUIDMap https://github.com/XTLS/Xray-core/issues/158#issue-783294090
func UUIDMap(str string) (uuid.UUID, error) {
u, err := uuid.FromString(str)
if err != nil {
return uuid.NewV5(uuidNamespace, str), nil
return UnsafeUUIDGenerator.NewV5(uuid.Nil, str), nil
}
return u, nil
}