Releases: johnsiilver/golib
Adds streaming client to the UDS streamer and fixes some bugs
UDS gets a proto streaming client so that you can send streams of messages instead of request/reply style.
Fixes gid/uid + file perm checks in the UDS client that were being ignored.
DiskMap now directly supports duplicate keys
DiskMap adds a ReadAll() method to allow finding all duplicate keys. Read() now only returns the last duplicate key added.
Directio support for linux in diskmap/diskslice
Added directio support in diskmap and diskslice.
Fixed example bug for filewatcher.
Added shell script for testing packages, as I want to always test without the development branch.
Fix diskmap.Reader concurrency bug/remove mmap
Reader has a concurrency bug, fixed with mutex.
Mmap did not prove effective, removed mmap.
Adding chunk.Client Close signal
Use case: You want to do something in response to a chunk client in a far away goroutine closing.
Added: CloseSignal() method that returns a channel that closes when the client has .Close() called on it (externally or internally on error).
UDS - Changing pooling
So I was using *bytes.Buffer{} and taking the buff.Bytes() and using them, then stuffing the buffer back into a sync.Pool. I thought I was being clever. Allocations were way better than gRPC, so yeah!
Wrong. So I changed pooling in two ways:
- uses *[]byte
- custom Pool type
The new pool type has a static free-list before it uses sync.Pool.
This is breaking on UDS (minor) and as noted, uds can be changed without a major revision until I remove the warning on the README.
Adds a Close() method to chunk.Client
It was inconvenient to keep the ReadWriteCloser around when passing the chunk.Client so that it could be closes.
Fixes go.mod build
v1.0.6 remove files I meant to in the last one
Removing development/distlock/etcd
etcd client can no longer be reliably pulled down. This has been this way since their go.mod changeover. I've given up on them and its destroying the ability for me to build here.
I tried using a patch, which worked locally but wouldn't when I would import this package. That is a no go for me.
Remove crufty files in IPC/UDS
Apparently I forgot to delete the old highlevel packages when I moved them to highlevel/. This fixes that.