2019-03-19 16:50:59 -04:00
|
|
|
module github.com/minio/minio
|
|
|
|
|
2023-09-27 11:22:50 -04:00
|
|
|
go 1.20
|
2019-04-02 21:28:39 -04:00
|
|
|
|
2019-03-19 16:50:59 -04:00
|
|
|
require (
|
2023-09-12 16:16:46 -04:00
|
|
|
cloud.google.com/go/storage v1.33.0
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/Azure/azure-storage-blob-go v0.15.0
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/IBM/sarama v1.41.3
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/alecthomas/participle v0.7.1
|
2020-11-17 12:13:28 -05:00
|
|
|
github.com/bcicen/jstream v1.0.1
|
2023-07-29 20:43:50 -04:00
|
|
|
github.com/beevik/ntp v1.3.0
|
2021-12-03 16:24:49 -05:00
|
|
|
github.com/buger/jsonparser v1.1.1
|
2022-12-30 13:20:19 -05:00
|
|
|
github.com/cespare/xxhash/v2 v2.2.0
|
2020-11-19 14:50:22 -05:00
|
|
|
github.com/cheggaaa/pb v1.0.29
|
2023-09-12 16:16:46 -04:00
|
|
|
github.com/coredns/coredns v1.11.1
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/coreos/go-oidc v2.2.1+incompatible
|
2023-05-02 02:15:08 -04:00
|
|
|
github.com/coreos/go-systemd/v22 v22.5.0
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/cosnicolaou/pbzip2 v1.0.3
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/dchest/siphash v1.2.3
|
2023-01-24 19:19:54 -05:00
|
|
|
github.com/dustin/go-humanize v1.0.1
|
2023-07-07 00:47:46 -04:00
|
|
|
github.com/eclipse/paho.mqtt.golang v1.4.3
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/elastic/go-elasticsearch/v7 v7.17.10
|
2023-03-15 14:59:17 -04:00
|
|
|
github.com/fatih/color v1.15.0
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/felixge/fgprof v0.9.3
|
|
|
|
github.com/fraugster/parquet-go v0.12.0
|
2023-09-22 17:45:19 -04:00
|
|
|
github.com/go-ldap/ldap/v3 v3.4.6
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/go-openapi/loads v0.21.2
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/go-sql-driver/mysql v1.7.1
|
perf: websocket grid connectivity for all internode communication (#18461)
This PR adds a WebSocket grid feature that allows servers to communicate via
a single two-way connection.
There are two request types:
* Single requests, which are `[]byte => ([]byte, error)`. This is for efficient small
roundtrips with small payloads.
* Streaming requests which are `[]byte, chan []byte => chan []byte (and error)`,
which allows for different combinations of full two-way streams with an initial payload.
Only a single stream is created between two machines - and there is, as such, no
server/client relation since both sides can initiate and handle requests. Which server
initiates the request is decided deterministically on the server names.
Requests are made through a mux client and server, which handles message
passing, congestion, cancelation, timeouts, etc.
If a connection is lost, all requests are canceled, and the calling server will try
to reconnect. Registered handlers can operate directly on byte
slices or use a higher-level generics abstraction.
There is no versioning of handlers/clients, and incompatible changes should
be handled by adding new handlers.
The request path can be changed to a new one for any protocol changes.
First, all servers create a "Manager." The manager must know its address
as well as all remote addresses. This will manage all connections.
To get a connection to any remote, ask the manager to provide it given
the remote address using.
```
func (m *Manager) Connection(host string) *Connection
```
All serverside handlers must also be registered on the manager. This will
make sure that all incoming requests are served. The number of in-flight
requests and responses must also be given for streaming requests.
The "Connection" returned manages the mux-clients. Requests issued
to the connection will be sent to the remote.
* `func (c *Connection) Request(ctx context.Context, h HandlerID, req []byte) ([]byte, error)`
performs a single request and returns the result. Any deadline provided on the request is
forwarded to the server, and canceling the context will make the function return at once.
* `func (c *Connection) NewStream(ctx context.Context, h HandlerID, payload []byte) (st *Stream, err error)`
will initiate a remote call and send the initial payload.
```Go
// A Stream is a two-way stream.
// All responses *must* be read by the caller.
// If the call is canceled through the context,
//The appropriate error will be returned.
type Stream struct {
// Responses from the remote server.
// Channel will be closed after an error or when the remote closes.
// All responses *must* be read by the caller until either an error is returned or the channel is closed.
// Canceling the context will cause the context cancellation error to be returned.
Responses <-chan Response
// Requests sent to the server.
// If the handler is defined with 0 incoming capacity this will be nil.
// Channel *must* be closed to signal the end of the stream.
// If the request context is canceled, the stream will no longer process requests.
Requests chan<- []byte
}
type Response struct {
Msg []byte
Err error
}
```
There are generic versions of the server/client handlers that allow the use of type
safe implementations for data types that support msgpack marshal/unmarshal.
2023-11-20 20:09:35 -05:00
|
|
|
github.com/gobwas/ws v1.3.1-0.20231030152437-516805a9f3b3
|
2023-02-22 13:23:45 -05:00
|
|
|
github.com/golang-jwt/jwt/v4 v4.5.0
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/gomodule/redigo v1.8.9
|
2023-09-12 16:16:46 -04:00
|
|
|
github.com/google/uuid v1.3.1
|
|
|
|
github.com/hashicorp/golang-lru v1.0.2
|
2022-12-22 02:47:51 -05:00
|
|
|
github.com/inconshreveable/mousetrap v1.1.0
|
2021-10-23 21:38:33 -04:00
|
|
|
github.com/json-iterator/go v1.1.12
|
perf: websocket grid connectivity for all internode communication (#18461)
This PR adds a WebSocket grid feature that allows servers to communicate via
a single two-way connection.
There are two request types:
* Single requests, which are `[]byte => ([]byte, error)`. This is for efficient small
roundtrips with small payloads.
* Streaming requests which are `[]byte, chan []byte => chan []byte (and error)`,
which allows for different combinations of full two-way streams with an initial payload.
Only a single stream is created between two machines - and there is, as such, no
server/client relation since both sides can initiate and handle requests. Which server
initiates the request is decided deterministically on the server names.
Requests are made through a mux client and server, which handles message
passing, congestion, cancelation, timeouts, etc.
If a connection is lost, all requests are canceled, and the calling server will try
to reconnect. Registered handlers can operate directly on byte
slices or use a higher-level generics abstraction.
There is no versioning of handlers/clients, and incompatible changes should
be handled by adding new handlers.
The request path can be changed to a new one for any protocol changes.
First, all servers create a "Manager." The manager must know its address
as well as all remote addresses. This will manage all connections.
To get a connection to any remote, ask the manager to provide it given
the remote address using.
```
func (m *Manager) Connection(host string) *Connection
```
All serverside handlers must also be registered on the manager. This will
make sure that all incoming requests are served. The number of in-flight
requests and responses must also be given for streaming requests.
The "Connection" returned manages the mux-clients. Requests issued
to the connection will be sent to the remote.
* `func (c *Connection) Request(ctx context.Context, h HandlerID, req []byte) ([]byte, error)`
performs a single request and returns the result. Any deadline provided on the request is
forwarded to the server, and canceling the context will make the function return at once.
* `func (c *Connection) NewStream(ctx context.Context, h HandlerID, payload []byte) (st *Stream, err error)`
will initiate a remote call and send the initial payload.
```Go
// A Stream is a two-way stream.
// All responses *must* be read by the caller.
// If the call is canceled through the context,
//The appropriate error will be returned.
type Stream struct {
// Responses from the remote server.
// Channel will be closed after an error or when the remote closes.
// All responses *must* be read by the caller until either an error is returned or the channel is closed.
// Canceling the context will cause the context cancellation error to be returned.
Responses <-chan Response
// Requests sent to the server.
// If the handler is defined with 0 incoming capacity this will be nil.
// Channel *must* be closed to signal the end of the stream.
// If the request context is canceled, the stream will no longer process requests.
Requests chan<- []byte
}
type Response struct {
Msg []byte
Err error
}
```
There are generic versions of the server/client handlers that allow the use of type
safe implementations for data types that support msgpack marshal/unmarshal.
2023-11-20 20:09:35 -05:00
|
|
|
github.com/klauspost/compress v1.17.3
|
2023-06-26 18:36:56 -04:00
|
|
|
github.com/klauspost/cpuid/v2 v2.2.5
|
2022-12-08 13:42:44 -05:00
|
|
|
github.com/klauspost/filepathx v1.1.1
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/klauspost/pgzip v1.2.6
|
2022-01-14 13:01:25 -05:00
|
|
|
github.com/klauspost/readahead v1.4.0
|
2023-07-07 00:47:46 -04:00
|
|
|
github.com/klauspost/reedsolomon v1.11.8
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/lib/pq v1.10.9
|
2022-10-03 05:10:15 -04:00
|
|
|
github.com/lithammer/shortuuid/v4 v4.0.0
|
2023-09-22 17:45:19 -04:00
|
|
|
github.com/miekg/dns v1.1.56
|
2022-12-22 02:47:51 -05:00
|
|
|
github.com/minio/cli v1.24.2
|
2023-11-02 21:47:09 -04:00
|
|
|
github.com/minio/console v0.41.0
|
2021-04-29 22:01:43 -04:00
|
|
|
github.com/minio/csvparser v1.0.0
|
2023-07-03 15:30:51 -04:00
|
|
|
github.com/minio/dnscache v0.1.1
|
2023-11-06 17:26:08 -05:00
|
|
|
github.com/minio/dperf v0.5.2
|
2021-03-25 14:44:58 -04:00
|
|
|
github.com/minio/highwayhash v1.0.2
|
2023-08-19 10:37:53 -04:00
|
|
|
github.com/minio/kes-go v0.2.0
|
2023-11-21 18:50:36 -05:00
|
|
|
github.com/minio/madmin-go/v3 v3.0.32
|
2023-11-18 22:12:44 -05:00
|
|
|
github.com/minio/minio-go/v7 v7.0.64-0.20231119012610-6eebdd6d5eba
|
2023-02-06 12:27:29 -05:00
|
|
|
github.com/minio/mux v1.9.0
|
2023-11-08 12:47:05 -05:00
|
|
|
github.com/minio/pkg/v2 v2.0.3-0.20231107172951-8a60b89ec9b4
|
2023-02-06 12:27:29 -05:00
|
|
|
github.com/minio/selfupdate v0.6.0
|
2023-05-25 01:51:07 -04:00
|
|
|
github.com/minio/sha256-simd v1.0.1
|
2023-03-15 14:59:17 -04:00
|
|
|
github.com/minio/simdjson-go v0.4.5
|
2023-03-03 21:22:40 -05:00
|
|
|
github.com/minio/sio v0.3.1
|
2022-08-23 20:04:11 -04:00
|
|
|
github.com/minio/xxml v0.0.3
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/minio/zipindex v0.3.0
|
2019-03-19 16:50:59 -04:00
|
|
|
github.com/mitchellh/go-homedir v1.1.0
|
2023-10-19 19:40:59 -04:00
|
|
|
github.com/nats-io/nats-server/v2 v2.9.23
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/nats-io/nats.go v1.31.0
|
2023-02-06 12:27:29 -05:00
|
|
|
github.com/nats-io/stan.go v0.10.4
|
2019-04-24 00:25:06 -04:00
|
|
|
github.com/ncw/directio v1.0.5
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/nsqio/go-nsq v1.1.0
|
2022-12-30 13:20:19 -05:00
|
|
|
github.com/philhofer/fwd v1.1.2
|
2022-03-01 20:17:18 -05:00
|
|
|
github.com/pierrec/lz4 v2.6.1+incompatible
|
2020-08-23 12:43:48 -04:00
|
|
|
github.com/pkg/errors v0.9.1
|
2023-09-12 16:16:46 -04:00
|
|
|
github.com/pkg/sftp v1.13.6
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/prometheus/client_golang v1.17.0
|
|
|
|
github.com/prometheus/client_model v0.5.0
|
|
|
|
github.com/prometheus/common v0.45.0
|
|
|
|
github.com/prometheus/procfs v0.12.0
|
|
|
|
github.com/rabbitmq/amqp091-go v1.9.0
|
2023-08-30 04:00:59 -04:00
|
|
|
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/rs/cors v1.10.1
|
2021-02-04 16:49:52 -05:00
|
|
|
github.com/secure-io/sio-go v0.3.1
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/shirou/gopsutil/v3 v3.23.9
|
|
|
|
github.com/tidwall/gjson v1.17.0
|
perf: websocket grid connectivity for all internode communication (#18461)
This PR adds a WebSocket grid feature that allows servers to communicate via
a single two-way connection.
There are two request types:
* Single requests, which are `[]byte => ([]byte, error)`. This is for efficient small
roundtrips with small payloads.
* Streaming requests which are `[]byte, chan []byte => chan []byte (and error)`,
which allows for different combinations of full two-way streams with an initial payload.
Only a single stream is created between two machines - and there is, as such, no
server/client relation since both sides can initiate and handle requests. Which server
initiates the request is decided deterministically on the server names.
Requests are made through a mux client and server, which handles message
passing, congestion, cancelation, timeouts, etc.
If a connection is lost, all requests are canceled, and the calling server will try
to reconnect. Registered handlers can operate directly on byte
slices or use a higher-level generics abstraction.
There is no versioning of handlers/clients, and incompatible changes should
be handled by adding new handlers.
The request path can be changed to a new one for any protocol changes.
First, all servers create a "Manager." The manager must know its address
as well as all remote addresses. This will manage all connections.
To get a connection to any remote, ask the manager to provide it given
the remote address using.
```
func (m *Manager) Connection(host string) *Connection
```
All serverside handlers must also be registered on the manager. This will
make sure that all incoming requests are served. The number of in-flight
requests and responses must also be given for streaming requests.
The "Connection" returned manages the mux-clients. Requests issued
to the connection will be sent to the remote.
* `func (c *Connection) Request(ctx context.Context, h HandlerID, req []byte) ([]byte, error)`
performs a single request and returns the result. Any deadline provided on the request is
forwarded to the server, and canceling the context will make the function return at once.
* `func (c *Connection) NewStream(ctx context.Context, h HandlerID, payload []byte) (st *Stream, err error)`
will initiate a remote call and send the initial payload.
```Go
// A Stream is a two-way stream.
// All responses *must* be read by the caller.
// If the call is canceled through the context,
//The appropriate error will be returned.
type Stream struct {
// Responses from the remote server.
// Channel will be closed after an error or when the remote closes.
// All responses *must* be read by the caller until either an error is returned or the channel is closed.
// Canceling the context will cause the context cancellation error to be returned.
Responses <-chan Response
// Requests sent to the server.
// If the handler is defined with 0 incoming capacity this will be nil.
// Channel *must* be closed to signal the end of the stream.
// If the request context is canceled, the stream will no longer process requests.
Requests chan<- []byte
}
type Response struct {
Msg []byte
Err error
}
```
There are generic versions of the server/client handlers that allow the use of type
safe implementations for data types that support msgpack marshal/unmarshal.
2023-11-20 20:09:35 -05:00
|
|
|
github.com/tinylib/msgp v1.1.9-0.20230705140925-6ac204f0b4d4
|
2021-05-20 12:00:11 -04:00
|
|
|
github.com/valyala/bytebufferpool v1.0.0
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/xdg/scram v1.0.5
|
2022-09-05 19:51:37 -04:00
|
|
|
github.com/zeebo/xxh3 v1.0.2
|
2023-05-26 19:31:28 -04:00
|
|
|
go.etcd.io/etcd/api/v3 v3.5.9
|
|
|
|
go.etcd.io/etcd/client/v3 v3.5.9
|
|
|
|
go.uber.org/atomic v1.11.0
|
2023-09-22 17:45:19 -04:00
|
|
|
go.uber.org/zap v1.26.0
|
2023-06-26 18:36:56 -04:00
|
|
|
goftp.io/server/v2 v2.0.1
|
2023-10-12 04:54:36 -04:00
|
|
|
golang.org/x/crypto v0.14.0
|
2023-10-25 11:32:59 -04:00
|
|
|
golang.org/x/exp v0.0.0-20231006140011-7918f672742d
|
|
|
|
golang.org/x/oauth2 v0.13.0
|
2023-10-12 04:54:36 -04:00
|
|
|
golang.org/x/sys v0.13.0
|
2022-12-30 13:20:19 -05:00
|
|
|
golang.org/x/time v0.3.0
|
2023-10-25 11:32:59 -04:00
|
|
|
google.golang.org/api v0.148.0
|
2022-10-03 05:10:15 -04:00
|
|
|
gopkg.in/yaml.v2 v2.4.0
|
2021-01-29 19:45:11 -05:00
|
|
|
)
|
2021-11-06 14:39:01 -04:00
|
|
|
|
2021-11-23 15:02:16 -05:00
|
|
|
require (
|
2022-11-16 06:03:04 -05:00
|
|
|
aead.dev/mem v0.2.0 // indirect
|
2023-02-06 12:27:29 -05:00
|
|
|
aead.dev/minisign v0.2.0 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
cloud.google.com/go v0.110.9 // indirect
|
|
|
|
cloud.google.com/go/compute v1.23.1 // indirect
|
2022-12-30 13:20:19 -05:00
|
|
|
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
cloud.google.com/go/iam v1.1.3 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/Azure/azure-pipeline-go v0.2.3 // indirect
|
2022-12-30 13:20:19 -05:00
|
|
|
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect
|
2023-11-02 12:49:49 -04:00
|
|
|
github.com/VividCortex/ewma v1.2.0 // indirect
|
|
|
|
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d // indirect
|
2023-09-12 16:16:46 -04:00
|
|
|
github.com/apache/thrift v0.19.0 // indirect
|
2023-05-22 22:17:17 -04:00
|
|
|
github.com/armon/go-metrics v0.4.0 // indirect
|
2023-03-03 21:22:40 -05:00
|
|
|
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
2023-03-15 14:59:17 -04:00
|
|
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
2023-06-26 18:36:56 -04:00
|
|
|
github.com/charmbracelet/bubbles v0.16.1 // indirect
|
|
|
|
github.com/charmbracelet/bubbletea v0.24.2 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/charmbracelet/lipgloss v0.9.1 // indirect
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
|
2023-02-06 12:27:29 -05:00
|
|
|
github.com/coreos/go-semver v0.3.1 // indirect
|
2023-07-07 00:47:46 -04:00
|
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/docker/go-units v0.5.0 // indirect
|
2023-08-22 23:26:35 -04:00
|
|
|
github.com/eapache/go-resiliency v1.4.0 // indirect
|
|
|
|
github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/eapache/queue v1.1.0 // indirect
|
|
|
|
github.com/fatih/structs v1.1.0 // indirect
|
2023-11-04 23:16:14 -04:00
|
|
|
github.com/frankban/quicktest v1.14.4 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/gdamore/encoding v1.0.0 // indirect
|
2023-02-22 13:23:45 -05:00
|
|
|
github.com/gdamore/tcell/v2 v2.6.0 // indirect
|
2023-09-22 17:45:19 -04:00
|
|
|
github.com/go-asn1-ber/asn1-ber v1.5.5 // indirect
|
2023-09-12 16:16:46 -04:00
|
|
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/go-openapi/analysis v0.21.4 // indirect
|
2023-06-26 18:36:56 -04:00
|
|
|
github.com/go-openapi/errors v0.20.4 // indirect
|
2023-07-18 00:12:48 -04:00
|
|
|
github.com/go-openapi/jsonpointer v0.20.0 // indirect
|
2023-02-06 12:27:29 -05:00
|
|
|
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
2023-05-03 14:00:23 -04:00
|
|
|
github.com/go-openapi/runtime v0.26.0 // indirect
|
|
|
|
github.com/go-openapi/spec v0.20.9 // indirect
|
2023-03-28 06:45:24 -04:00
|
|
|
github.com/go-openapi/strfmt v0.21.7 // indirect
|
2023-06-26 18:36:56 -04:00
|
|
|
github.com/go-openapi/swag v0.22.4 // indirect
|
2023-01-24 19:19:54 -05:00
|
|
|
github.com/go-openapi/validate v0.22.1 // indirect
|
perf: websocket grid connectivity for all internode communication (#18461)
This PR adds a WebSocket grid feature that allows servers to communicate via
a single two-way connection.
There are two request types:
* Single requests, which are `[]byte => ([]byte, error)`. This is for efficient small
roundtrips with small payloads.
* Streaming requests which are `[]byte, chan []byte => chan []byte (and error)`,
which allows for different combinations of full two-way streams with an initial payload.
Only a single stream is created between two machines - and there is, as such, no
server/client relation since both sides can initiate and handle requests. Which server
initiates the request is decided deterministically on the server names.
Requests are made through a mux client and server, which handles message
passing, congestion, cancelation, timeouts, etc.
If a connection is lost, all requests are canceled, and the calling server will try
to reconnect. Registered handlers can operate directly on byte
slices or use a higher-level generics abstraction.
There is no versioning of handlers/clients, and incompatible changes should
be handled by adding new handlers.
The request path can be changed to a new one for any protocol changes.
First, all servers create a "Manager." The manager must know its address
as well as all remote addresses. This will manage all connections.
To get a connection to any remote, ask the manager to provide it given
the remote address using.
```
func (m *Manager) Connection(host string) *Connection
```
All serverside handlers must also be registered on the manager. This will
make sure that all incoming requests are served. The number of in-flight
requests and responses must also be given for streaming requests.
The "Connection" returned manages the mux-clients. Requests issued
to the connection will be sent to the remote.
* `func (c *Connection) Request(ctx context.Context, h HandlerID, req []byte) ([]byte, error)`
performs a single request and returns the result. Any deadline provided on the request is
forwarded to the server, and canceling the context will make the function return at once.
* `func (c *Connection) NewStream(ctx context.Context, h HandlerID, payload []byte) (st *Stream, err error)`
will initiate a remote call and send the initial payload.
```Go
// A Stream is a two-way stream.
// All responses *must* be read by the caller.
// If the call is canceled through the context,
//The appropriate error will be returned.
type Stream struct {
// Responses from the remote server.
// Channel will be closed after an error or when the remote closes.
// All responses *must* be read by the caller until either an error is returned or the channel is closed.
// Canceling the context will cause the context cancellation error to be returned.
Responses <-chan Response
// Requests sent to the server.
// If the handler is defined with 0 incoming capacity this will be nil.
// Channel *must* be closed to signal the end of the stream.
// If the request context is canceled, the stream will no longer process requests.
Requests chan<- []byte
}
type Response struct {
Msg []byte
Err error
}
```
There are generic versions of the server/client handlers that allow the use of type
safe implementations for data types that support msgpack marshal/unmarshal.
2023-11-20 20:09:35 -05:00
|
|
|
github.com/gobwas/httphead v0.1.0 // indirect
|
|
|
|
github.com/gobwas/pool v0.2.1 // indirect
|
2023-03-20 12:08:42 -04:00
|
|
|
github.com/goccy/go-json v0.10.2 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/gogo/protobuf v1.3.2 // indirect
|
|
|
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
2023-03-15 14:59:17 -04:00
|
|
|
github.com/golang/protobuf v1.5.3 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/golang/snappy v0.0.4 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 // indirect
|
2023-09-12 16:16:46 -04:00
|
|
|
github.com/google/s2a-go v0.1.7 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
2023-09-22 17:45:19 -04:00
|
|
|
github.com/googleapis/enterprise-certificate-proxy v0.3.1 // indirect
|
2023-07-07 00:47:46 -04:00
|
|
|
github.com/googleapis/gax-go/v2 v2.12.0 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/gorilla/websocket v1.5.0 // indirect
|
|
|
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
2023-05-22 22:17:17 -04:00
|
|
|
github.com/hashicorp/go-hclog v1.2.0 // indirect
|
2023-02-27 13:10:22 -05:00
|
|
|
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/jcmturner/aescts/v2 v2.0.0 // indirect
|
|
|
|
github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/jcmturner/gofork v1.7.6 // indirect
|
2023-03-03 21:22:40 -05:00
|
|
|
github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/jcmturner/rpc/v2 v2.0.3 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/jedib0t/go-pretty/v6 v6.4.8 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/jessevdk/go-flags v1.5.0 // indirect
|
|
|
|
github.com/josharian/intern v1.0.0 // indirect
|
2022-12-22 02:47:51 -05:00
|
|
|
github.com/juju/ratelimit v1.0.2 // indirect
|
2023-04-15 10:34:02 -04:00
|
|
|
github.com/kr/fs v0.1.0 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect
|
2023-09-22 17:45:19 -04:00
|
|
|
github.com/lestrrat-go/blackmagic v1.0.2 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/lestrrat-go/httpcc v1.0.1 // indirect
|
|
|
|
github.com/lestrrat-go/iter v1.0.2 // indirect
|
2023-06-14 15:17:22 -04:00
|
|
|
github.com/lestrrat-go/jwx v1.2.26 // indirect
|
2022-12-30 13:20:19 -05:00
|
|
|
github.com/lestrrat-go/option v1.0.1 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/lufia/plan9stats v0.0.0-20231016141302-07b5767bb0ed // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/mailru/easyjson v0.7.7 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/mattn/go-ieproxy v0.0.11 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
2023-07-27 15:43:25 -04:00
|
|
|
github.com/mattn/go-runewidth v0.0.15 // indirect
|
2022-12-30 13:20:19 -05:00
|
|
|
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
|
2023-09-15 17:01:52 -04:00
|
|
|
github.com/minio/colorjson v1.0.6 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/minio/filepath v1.0.0 // indirect
|
2023-11-02 12:49:49 -04:00
|
|
|
github.com/minio/mc v0.0.0-20231030184332-9f2fb2b6a9f8 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/minio/md5-simd v1.1.2 // indirect
|
2023-09-04 15:57:37 -04:00
|
|
|
github.com/minio/pkg v1.7.5 // indirect
|
2023-01-24 19:19:54 -05:00
|
|
|
github.com/minio/websocket v1.6.0 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
|
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/montanaflynn/stats v0.7.1 // indirect
|
2023-03-20 12:08:42 -04:00
|
|
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/muesli/reflow v0.3.0 // indirect
|
2023-07-07 00:47:46 -04:00
|
|
|
github.com/muesli/termenv v0.15.2 // indirect
|
2023-10-19 19:40:59 -04:00
|
|
|
github.com/nats-io/jwt/v2 v2.5.0 // indirect
|
2023-03-22 02:36:24 -04:00
|
|
|
github.com/nats-io/nats-streaming-server v0.24.3 // indirect
|
2023-10-31 21:57:10 -04:00
|
|
|
github.com/nats-io/nkeys v0.4.6 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/nats-io/nuid v1.0.1 // indirect
|
2023-09-22 17:45:19 -04:00
|
|
|
github.com/navidys/tvxwidgets v0.4.0 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/oklog/ulid v1.3.1 // indirect
|
|
|
|
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
2023-06-26 18:36:56 -04:00
|
|
|
github.com/pierrec/lz4/v4 v4.1.18 // indirect
|
2022-09-19 10:01:22 -04:00
|
|
|
github.com/pkg/xattr v0.4.9 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/posener/complete v1.2.3 // indirect
|
2022-12-30 13:20:19 -05:00
|
|
|
github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect
|
2023-06-26 18:36:56 -04:00
|
|
|
github.com/pquerna/cachecontrol v0.2.0 // indirect
|
|
|
|
github.com/prometheus/prom2json v1.3.3 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
github.com/rivo/tview v0.0.0-20231007183732-6c844bdc5f7a // indirect
|
2023-02-22 13:23:45 -05:00
|
|
|
github.com/rivo/uniseg v0.4.4 // indirect
|
2023-02-06 12:27:29 -05:00
|
|
|
github.com/rjeczalik/notify v0.9.3 // indirect
|
2023-05-03 14:00:23 -04:00
|
|
|
github.com/rs/xid v1.5.0 // indirect
|
2023-11-02 12:49:49 -04:00
|
|
|
github.com/safchain/ethtool v0.3.0 // indirect
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/shoenig/go-m1cpu v0.1.6 // indirect
|
2023-06-26 18:36:56 -04:00
|
|
|
github.com/sirupsen/logrus v1.9.3 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
github.com/tidwall/match v1.1.1 // indirect
|
2022-10-24 01:36:24 -04:00
|
|
|
github.com/tidwall/pretty v1.2.1 // indirect
|
2023-09-12 16:16:46 -04:00
|
|
|
github.com/tklauser/go-sysconf v0.3.12 // indirect
|
2023-06-26 18:36:56 -04:00
|
|
|
github.com/tklauser/numcpus v0.6.1 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/unrolled/secure v1.13.0 // indirect
|
2023-11-02 12:49:49 -04:00
|
|
|
github.com/vbauerster/mpb/v8 v8.6.2 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
github.com/xdg/stringprep v1.0.3 // indirect
|
2023-05-26 19:31:28 -04:00
|
|
|
github.com/yusufpapurcu/wmi v1.2.3 // indirect
|
|
|
|
go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect
|
2023-09-12 16:16:46 -04:00
|
|
|
go.mongodb.org/mongo-driver v1.12.1 // indirect
|
2022-12-30 13:20:19 -05:00
|
|
|
go.opencensus.io v0.24.0 // indirect
|
2023-04-11 14:17:46 -04:00
|
|
|
go.uber.org/multierr v1.11.0 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
golang.org/x/mod v0.13.0 // indirect
|
2023-10-12 04:54:36 -04:00
|
|
|
golang.org/x/net v0.17.0 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
golang.org/x/sync v0.4.0 // indirect
|
2023-10-12 04:54:36 -04:00
|
|
|
golang.org/x/term v0.13.0 // indirect
|
2023-09-12 16:16:46 -04:00
|
|
|
golang.org/x/text v0.13.0 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
golang.org/x/tools v0.14.0 // indirect
|
|
|
|
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
|
2023-09-12 16:16:46 -04:00
|
|
|
google.golang.org/appengine v1.6.8 // indirect
|
2023-10-25 11:32:59 -04:00
|
|
|
google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b // indirect
|
|
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b // indirect
|
|
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect
|
|
|
|
google.golang.org/grpc v1.59.0 // indirect
|
2023-07-07 00:47:46 -04:00
|
|
|
google.golang.org/protobuf v1.31.0 // indirect
|
2022-04-08 19:25:20 -04:00
|
|
|
gopkg.in/h2non/filetype.v1 v1.0.5 // indirect
|
2022-09-16 04:59:45 -04:00
|
|
|
gopkg.in/ini.v1 v1.67.0 // indirect
|
|
|
|
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
|
|
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
2021-11-23 15:02:16 -05:00
|
|
|
)
|