You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/util
Joe Tsai 60657ac83f
util/deephash: tighten up SelfHasher API (#11012)
Providing a hash.Block512 is an implementation detail of how deephash
works today, but providing an opaque type with mostly equivalent API
(i.e., HashUint8, HashBytes, etc. methods) is still sensible.
Thus, define a public Hasher type that exposes exactly the API
that an implementation of SelfHasher would want to call.
This gives us freedom to change the hashing algorithm of deephash
at some point in the future.

Also, this type is likely going to be called by types that are
going to memoize their own hash results, we additionally add
a HashSum method to simplify this use case.

Add documentation to SelfHasher on how a type might implement it.

Updates: corp#16409

Signed-off-by: Joe Tsai <joetsai@digital-static.net>
2 years ago
..
cache util/cache: add package for general-purpose caching 2 years ago
cibuild all: update copyright and license headers 3 years ago
clientmetric util/clientmetric: allow client metric values to be provided by a function 3 years ago
cloudenv all: update copyright and license headers 3 years ago
cmpver util/cmpver: only consider ascii numerals (#9741) 2 years ago
cmpx util/cmpx: remove code that's in the stdlib now 2 years ago
codegen util/codegen: support embedded fields 3 years ago
cstruct all: update copyright and license headers 3 years ago
ctxkey all: make use of ctxkey everywhere (#10846) 2 years ago
deephash util/deephash: tighten up SelfHasher API (#11012) 2 years ago
dirwalk all: use tstest.Replace more 3 years ago
dnsname cmd/tailscale: extend hostname validation (#7678) 3 years ago
execqueue control/controlclient,util/execqueue: extract execqueue into a package 2 years ago
expvarx util/expvarx: add a time and concurrency limiting expvar.Func wrapper 2 years ago
goroutines util/goroutines: let ScrubbedGoroutineDump get only current stack 2 years ago
groupmember util/groupmember: fail earlier if group doesn't exist, use slices.Contains 2 years ago
hashx all: update copyright and license headers 3 years ago
httphdr util/httphdr: add new package for parsing HTTP headers (#9797) 2 years ago
httpm util/httpm: don't run test if .git doesn't exist 2 years ago
jsonutil all: update copyright and license headers 3 years ago
limiter util/lru, util/limiter: add debug helper to dump state as HTML 2 years ago
lineread all: update copyright and license headers 3 years ago
linuxfw all: cleanup unused code, part 2 (#10670) 2 years ago
lru util/lru: update c.head when deleting the most recently used entry 2 years ago
mak various: add golangci-lint, fix issues (#7905) 3 years ago
multierr all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
must all: update copyright and license headers 3 years ago
nocasemaps util/nocasemaps: add AppendSliceElem method to nocasemaps (#10871) 2 years ago
osdiag util/osdiag, util/winutil: expose Windows policy key 2 years ago
osshare all: update copyright and license headers 3 years ago
osuser ssh/tailssh,util: extract new osuser package from ssh code (#10170) 2 years ago
pidowner all: update copyright and license headers 3 years ago
precompress all: update copyright and license headers 3 years ago
quarantine all: update copyright and license headers 3 years ago
race util/race: add test to confirm we don't leak goroutines 2 years ago
racebuild all: update copyright and license headers 3 years ago
rands util/rands: add package with HexString func 2 years ago
ringbuffer util/ringbuffer: move generic ringbuffer from corp repo 3 years ago
set util/set: implement json.Marshaler/Unmarshaler (#10308) 2 years ago
singleflight all: update copyright and license headers 3 years ago
slicesx util/slicesx: add Filter function 2 years ago
syspolicy all: cleanup unused code, part 1 (#10661) 2 years ago
sysresources util/sysresources, magicsock: scale DERP buffer based on system memory 3 years ago
systemd all: update copyright and license headers 3 years ago
testenv util/testenv: add new package to hold InTest 2 years ago
truncate util: add truncate package (#7490) 3 years ago
uniq all: update copyright and license headers 3 years ago
vizerror util/vizerror: add As function to get wrapped Error 3 years ago
winutil util/winutil: add some missing docs to restartmgr errors 2 years ago