tailscale/util
James Tucker d0f3fa7d7e util/fastuuid: add a more efficient uuid generator
This still generates github.com/google/uuid UUID objects, but does so
using a ChaCha8 CSPRNG from the stdlib rand/v2 package. The public API
is backed by a sync.Pool to provide good performance in highly
concurrent operation.

Under high load the read API produces a lot of extra garbage and
overhead by way of temporaries and syscalls. This implementation reduces
both to minimal levels, and avoids any long held global lock by
utilizing sync.Pool.

Updates tailscale/corp#18266
Updates tailscale/corp#19054

Signed-off-by: James Tucker <james@tailscale.com>
2024-04-09 14:05:20 -07:00
..
cache util/cache: fix missing interface methods (#11275) 2024-02-27 23:03:49 -05:00
cibuild all: update copyright and license headers 2023-01-27 15:36:29 -08:00
clientmetric util/clientmetric: allow client metric values to be provided by a function 2023-04-05 17:21:16 -07:00
cloudenv util/cloudenv: add support for DigitalOcean 2024-02-10 14:36:20 -05:00
cmpver util/cmpver: add Less/LessEq helper funcs 2024-03-05 16:57:04 +00:00
codegen util/codegen: support embedded fields 2023-05-09 15:40:17 -07:00
cstruct all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ctxkey all: use reflect.TypeFor now available in Go 1.22 (#11078) 2024-02-08 17:34:22 -08:00
deephash all: use reflect.TypeFor now available in Go 1.22 (#11078) 2024-02-08 17:34:22 -08:00
dirwalk all: use tstest.Replace more 2023-03-04 12:24:55 -08:00
dnsname cmd/tailscale: extend hostname validation (#7678) 2023-03-27 18:21:58 +01:00
execqueue control/controlclient,util/execqueue: extract execqueue into a package 2024-01-18 12:08:13 -08:00
expvarx util/expvarx: add a time and concurrency limiting expvar.Func wrapper 2024-01-24 17:47:16 -08:00
fastuuid util/fastuuid: add a more efficient uuid generator 2024-04-09 14:05:20 -07:00
goroutines util/goroutines: let ScrubbedGoroutineDump get only current stack 2023-06-23 12:50:45 -07:00
groupmember util/groupmember: fail earlier if group doesn't exist, use slices.Contains 2023-11-01 19:23:16 -07:00
hashx all: update copyright and license headers 2023-01-27 15:36:29 -08:00
httphdr util/httphdr: add new package for parsing HTTP headers (#9797) 2023-10-13 15:38:22 -07:00
httpm util/httpm: don't run test if .git doesn't exist 2023-11-22 12:09:59 -05:00
jsonutil all: update copyright and license headers 2023-01-27 15:36:29 -08:00
limiter util/lru, util/limiter: add debug helper to dump state as HTML 2023-09-08 14:47:03 -07:00
lineread all: update copyright and license headers 2023-01-27 15:36:29 -08:00
linuxfw cmd/tailscaled: move cleanup to an implicit action during startup 2024-04-09 12:44:08 -07:00
lru util/lru: update c.head when deleting the most recently used entry 2023-09-19 12:17:50 -07:00
mak various: add golangci-lint, fix issues (#7905) 2023-04-17 18:38:24 -04:00
multierr all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2023-08-17 08:42:35 -07:00
must all: update copyright and license headers 2023-01-27 15:36:29 -08:00
nocasemaps util/nocasemaps: add AppendSliceElem method to nocasemaps (#10871) 2024-01-19 15:30:12 -08:00
osdiag util/osdiag, util/winutil: expose Windows policy key 2023-11-15 15:01:25 -05:00
osshare all: update copyright and license headers 2023-01-27 15:36:29 -08:00
osuser ssh/tailssh,util: extract new osuser package from ssh code (#10170) 2023-11-09 09:49:06 -08:00
pidowner all: update copyright and license headers 2023-01-27 15:36:29 -08:00
precompress all: update copyright and license headers 2023-01-27 15:36:29 -08:00
progresstracking ipn/localapi: add support for multipart POST to file-put 2024-03-27 08:53:52 -05:00
quarantine all: update copyright and license headers 2023-01-27 15:36:29 -08:00
race util/race: add test to confirm we don't leak goroutines 2023-10-03 18:44:22 -04:00
racebuild all: update copyright and license headers 2023-01-27 15:36:29 -08:00
rands util/rands: add Shuffle and Perm functions with on-stack RNG state 2024-02-09 15:19:27 -08:00
reload util/reload: add new package to handle periodic value loading 2024-03-20 18:23:54 -04:00
ringbuffer wgengine/magicsock: don't use endpoint debug ringbuffer on mobile. 2024-03-21 06:58:55 -07:00
set util/set: implement json.Marshaler/Unmarshaler (#10308) 2023-11-20 08:00:31 -08:00
singleflight all: update copyright and license headers 2023-01-27 15:36:29 -08:00
slicesx util/slicesx: add Filter function 2024-01-19 11:17:05 -05:00
syspolicy util/syspolicy: add 'ResetToDefaults' (#11194) 2024-02-22 10:10:31 -08:00
sysresources util/sysresources, magicsock: scale DERP buffer based on system memory 2023-04-03 17:14:14 -04:00
systemd all: update copyright and license headers 2023-01-27 15:36:29 -08:00
testenv util/testenv: add new package to hold InTest 2023-08-08 19:51:44 -06:00
topk util/topk: add package containing a probabilistic top-K tracker 2024-02-14 13:28:58 -05:00
truncate util/truncate: support []byte as well (#11614) 2024-04-04 14:38:16 -07:00
uniq all: update copyright and license headers 2023-01-27 15:36:29 -08:00
vizerror util/vizerror: add As function to get wrapped Error 2023-02-01 14:39:13 -08:00
winutil util/winutil/winenv: add package for current Windows environment details 2024-04-09 13:25:37 -05:00
zstdframe util/zstdframe: support specifying a MaxWindowSize (#11595) 2024-04-04 10:46:20 -07:00