feedx 0.12.7 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +2 -37
- data/.golangci.yml +13 -4
- data/.rubocop.yml +8 -14
- data/.tool-versions +1 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +54 -68
- data/Makefile +3 -3
- data/README.md +3 -1
- data/compression.go +29 -0
- data/compression_test.go +73 -61
- data/consumer.go +96 -152
- data/consumer_test.go +124 -59
- data/example_test.go +140 -0
- data/feedx.gemspec +2 -10
- data/feedx.go +16 -31
- data/feedx_ext_test.go +13 -3
- data/feedx_test.go +24 -26
- data/format.go +29 -19
- data/format_test.go +84 -56
- data/go.mod +11 -7
- data/go.sum +16 -138
- data/incremental.go +122 -0
- data/incremental_test.go +62 -0
- data/lib/feedx/cache/abstract.rb +3 -3
- data/lib/feedx/cache/value.rb +6 -6
- data/lib/feedx/compression/abstract.rb +2 -2
- data/lib/feedx/compression/gzip.rb +4 -4
- data/lib/feedx/consumer.rb +8 -8
- data/lib/feedx/format/abstract.rb +6 -6
- data/lib/feedx/format/json.rb +2 -2
- data/lib/feedx/format/protobuf.rb +6 -6
- data/lib/feedx/format.rb +1 -3
- data/lib/feedx/producer.rb +11 -11
- data/lib/feedx/stream.rb +2 -2
- data/lib/feedx.rb +2 -3
- data/manifest.go +65 -0
- data/producer.go +34 -137
- data/producer_test.go +46 -60
- data/reader.go +142 -41
- data/reader_test.go +86 -35
- data/scheduler.go +176 -0
- data/scheduler_test.go +128 -0
- data/writer.go +13 -13
- data/writer_test.go +61 -44
- metadata +12 -137
- data/.github/workflows/lint.yml +0 -18
- data/ext/parquet/decoder.go +0 -59
- data/ext/parquet/decoder_test.go +0 -88
- data/ext/parquet/encoder.go +0 -27
- data/ext/parquet/encoder_test.go +0 -70
- data/ext/parquet/go.mod +0 -12
- data/ext/parquet/go.sum +0 -193
- data/ext/parquet/parquet.go +0 -78
- data/ext/parquet/parquet_test.go +0 -28
- data/ext/parquet/testdata/alltypes_plain.parquet +0 -0
- data/lib/feedx/format/parquet.rb +0 -102
- data/spec/feedx/cache/memory_spec.rb +0 -23
- data/spec/feedx/cache/value_spec.rb +0 -19
- data/spec/feedx/compression/gzip_spec.rb +0 -17
- data/spec/feedx/compression/none_spec.rb +0 -15
- data/spec/feedx/compression_spec.rb +0 -19
- data/spec/feedx/consumer_spec.rb +0 -49
- data/spec/feedx/format/abstract_spec.rb +0 -21
- data/spec/feedx/format/json_spec.rb +0 -27
- data/spec/feedx/format/parquet_spec.rb +0 -30
- data/spec/feedx/format/protobuf_spec.rb +0 -23
- data/spec/feedx/format_spec.rb +0 -21
- data/spec/feedx/producer_spec.rb +0 -74
- data/spec/feedx/stream_spec.rb +0 -109
- data/spec/spec_helper.rb +0 -57
data/feedx.go
CHANGED
|
@@ -4,7 +4,6 @@ import (
|
|
|
4
4
|
"context"
|
|
5
5
|
"errors"
|
|
6
6
|
"strconv"
|
|
7
|
-
"time"
|
|
8
7
|
|
|
9
8
|
"github.com/bsm/bfs"
|
|
10
9
|
)
|
|
@@ -12,22 +11,9 @@ import (
|
|
|
12
11
|
// ErrNotModified is used to signal that something has not been modified.
|
|
13
12
|
var ErrNotModified = errors.New("feedx: not modified")
|
|
14
13
|
|
|
15
|
-
const
|
|
16
|
-
metaLastModified = "X-Feedx-Last-Modified"
|
|
17
|
-
metaPusherLastModified = "X-Feedx-Pusher-Last-Modified"
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
// Timestamp with millisecond resolution
|
|
21
|
-
type timestamp int64
|
|
14
|
+
const metaVersion = "X-Feedx-Version"
|
|
22
15
|
|
|
23
|
-
func
|
|
24
|
-
if n := t.Unix()*1000 + int64(t.Nanosecond()/1e6); n > 0 {
|
|
25
|
-
return timestamp(n)
|
|
26
|
-
}
|
|
27
|
-
return 0
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
func remoteLastModified(ctx context.Context, obj *bfs.Object) (timestamp, error) {
|
|
16
|
+
func fetchRemoteVersion(ctx context.Context, obj *bfs.Object) (int64, error) {
|
|
31
17
|
info, err := obj.Head(ctx)
|
|
32
18
|
if err == bfs.ErrNotFound {
|
|
33
19
|
return 0, nil
|
|
@@ -35,23 +21,22 @@ func remoteLastModified(ctx context.Context, obj *bfs.Object) (timestamp, error)
|
|
|
35
21
|
return 0, err
|
|
36
22
|
}
|
|
37
23
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
millis, _ = strconv.ParseInt(info.Metadata.Get(metaPusherLastModified), 10, 64)
|
|
41
|
-
}
|
|
42
|
-
return timestamp(millis), nil
|
|
24
|
+
version, _ := strconv.ParseInt(info.Metadata.Get(metaVersion), 10, 64)
|
|
25
|
+
return version, nil
|
|
43
26
|
}
|
|
44
27
|
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
28
|
+
// Status is returned by sync processes.
|
|
29
|
+
type Status struct {
|
|
30
|
+
// Skipped indicates the the sync was skipped, because there were no new changes.
|
|
31
|
+
Skipped bool
|
|
32
|
+
// LocalVersion indicates the local version before sync.
|
|
33
|
+
LocalVersion int64
|
|
34
|
+
// RemoteVersion indicates the remote version before sync.
|
|
35
|
+
RemoteVersion int64
|
|
36
|
+
// NumItems returns the number of items processed, either read of written.
|
|
37
|
+
NumItems int64
|
|
52
38
|
}
|
|
53
39
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return strconv.FormatInt(int64(t), 10)
|
|
40
|
+
func skipSync(srcVersion, targetVersion int64) bool {
|
|
41
|
+
return (srcVersion != 0 || targetVersion != 0) && srcVersion <= targetVersion
|
|
57
42
|
}
|
data/feedx_ext_test.go
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
package feedx
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import (
|
|
4
|
+
"context"
|
|
5
|
+
|
|
6
|
+
"github.com/bsm/bfs"
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
type NoFormat = noFormat
|
|
10
|
+
|
|
11
|
+
type Manifest manifest
|
|
12
|
+
|
|
13
|
+
func LoadManifest(ctx context.Context, obj *bfs.Object) (*Manifest, error) {
|
|
14
|
+
m, err := loadManifest(ctx, obj)
|
|
15
|
+
return (*Manifest)(m), err
|
|
6
16
|
}
|
data/feedx_test.go
CHANGED
|
@@ -2,28 +2,13 @@ package feedx_test
|
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
4
|
"context"
|
|
5
|
-
"
|
|
6
|
-
"testing"
|
|
7
|
-
"time"
|
|
5
|
+
"io"
|
|
8
6
|
|
|
9
7
|
"github.com/bsm/bfs"
|
|
10
8
|
"github.com/bsm/feedx"
|
|
11
9
|
"github.com/bsm/feedx/internal/testdata"
|
|
12
|
-
. "github.com/bsm/ginkgo"
|
|
13
|
-
. "github.com/bsm/gomega"
|
|
14
10
|
)
|
|
15
11
|
|
|
16
|
-
var memStore *bfs.InMem
|
|
17
|
-
|
|
18
|
-
func init() {
|
|
19
|
-
memStore = bfs.NewInMem()
|
|
20
|
-
bfs.Register("mem", func(_ context.Context, u *url.URL) (bfs.Bucket, error) {
|
|
21
|
-
return memStore, nil
|
|
22
|
-
})
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// ------------------------------------------------------------------------
|
|
26
|
-
|
|
27
12
|
func seed() *testdata.MockMessage {
|
|
28
13
|
return &testdata.MockMessage{
|
|
29
14
|
Name: "Joe",
|
|
@@ -32,12 +17,16 @@ func seed() *testdata.MockMessage {
|
|
|
32
17
|
}
|
|
33
18
|
}
|
|
34
19
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
20
|
+
func seedN(n int) []*testdata.MockMessage {
|
|
21
|
+
res := make([]*testdata.MockMessage, 0, n)
|
|
22
|
+
for i := 0; i < n; i++ {
|
|
23
|
+
res = append(res, seed())
|
|
24
|
+
}
|
|
25
|
+
return res
|
|
26
|
+
}
|
|
38
27
|
|
|
39
|
-
func
|
|
40
|
-
w := feedx.NewWriter(context.Background(), obj, &feedx.WriterOptions{
|
|
28
|
+
func writeN(obj *bfs.Object, numEntries int, version int64) error {
|
|
29
|
+
w := feedx.NewWriter(context.Background(), obj, &feedx.WriterOptions{Version: version})
|
|
41
30
|
defer w.Discard()
|
|
42
31
|
|
|
43
32
|
for i := 0; i < numEntries; i++ {
|
|
@@ -48,9 +37,18 @@ func writeMulti(obj *bfs.Object, numEntries int, lastMod time.Time) error {
|
|
|
48
37
|
return w.Commit()
|
|
49
38
|
}
|
|
50
39
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
40
|
+
func readMessages(r interface{ Decode(any) error }) ([]*testdata.MockMessage, error) {
|
|
41
|
+
var msgs []*testdata.MockMessage
|
|
42
|
+
for {
|
|
43
|
+
var msg testdata.MockMessage
|
|
44
|
+
err := r.Decode(&msg)
|
|
45
|
+
if err == io.EOF {
|
|
46
|
+
break
|
|
47
|
+
}
|
|
48
|
+
if err != nil {
|
|
49
|
+
return nil, err
|
|
50
|
+
}
|
|
51
|
+
msgs = append(msgs, &msg)
|
|
52
|
+
}
|
|
53
|
+
return msgs, nil
|
|
56
54
|
}
|
data/format.go
CHANGED
|
@@ -8,10 +8,8 @@ import (
|
|
|
8
8
|
"path"
|
|
9
9
|
|
|
10
10
|
"github.com/bsm/pbio"
|
|
11
|
+
"github.com/fxamacker/cbor/v2"
|
|
11
12
|
"google.golang.org/protobuf/proto"
|
|
12
|
-
|
|
13
|
-
gio "github.com/gogo/protobuf/io"
|
|
14
|
-
gproto "github.com/gogo/protobuf/proto"
|
|
15
13
|
)
|
|
16
14
|
|
|
17
15
|
var errNoFormat = errors.New("feedx: no format detected")
|
|
@@ -29,10 +27,12 @@ type Format interface {
|
|
|
29
27
|
func DetectFormat(name string) Format {
|
|
30
28
|
ext := path.Ext(path.Base(name))
|
|
31
29
|
switch ext {
|
|
32
|
-
case ".json":
|
|
30
|
+
case ".json", ".ndjson":
|
|
33
31
|
return JSONFormat
|
|
34
32
|
case ".pb", ".proto", ".protobuf":
|
|
35
33
|
return ProtobufFormat
|
|
34
|
+
case ".cbor":
|
|
35
|
+
return CBORFormat
|
|
36
36
|
default:
|
|
37
37
|
if name != "" && ext != "" && ext[0] == '.' {
|
|
38
38
|
if ext[len(ext)-1] == 'z' {
|
|
@@ -112,11 +112,9 @@ func (protobufFormat) NewEncoder(w io.Writer) (FormatEncoder, error) {
|
|
|
112
112
|
type protobufWrapper struct {
|
|
113
113
|
r io.Reader
|
|
114
114
|
dec *pbio.Decoder
|
|
115
|
-
pbr gio.Reader
|
|
116
115
|
|
|
117
116
|
w io.Writer
|
|
118
117
|
enc *pbio.Encoder
|
|
119
|
-
pbw gio.Writer
|
|
120
118
|
}
|
|
121
119
|
|
|
122
120
|
func (w *protobufWrapper) Decode(v interface{}) error {
|
|
@@ -126,13 +124,6 @@ func (w *protobufWrapper) Decode(v interface{}) error {
|
|
|
126
124
|
w.dec = pbio.NewDecoder(w.r)
|
|
127
125
|
}
|
|
128
126
|
return w.dec.Decode(msg)
|
|
129
|
-
|
|
130
|
-
case gproto.Message:
|
|
131
|
-
if w.pbr == nil {
|
|
132
|
-
w.pbr = gio.NewDelimitedReader(w.r, 1<<28)
|
|
133
|
-
}
|
|
134
|
-
return w.pbr.ReadMsg(msg)
|
|
135
|
-
|
|
136
127
|
default:
|
|
137
128
|
return fmt.Errorf("value %v (%T) is not a proto.Message", v, v)
|
|
138
129
|
}
|
|
@@ -146,12 +137,6 @@ func (w *protobufWrapper) Encode(v interface{}) error {
|
|
|
146
137
|
}
|
|
147
138
|
return w.enc.Encode(msg)
|
|
148
139
|
|
|
149
|
-
case gproto.Message:
|
|
150
|
-
if w.pbw == nil {
|
|
151
|
-
w.pbw = gio.NewDelimitedWriter(w.w)
|
|
152
|
-
}
|
|
153
|
-
return w.pbw.WriteMsg(msg)
|
|
154
|
-
|
|
155
140
|
default:
|
|
156
141
|
return fmt.Errorf("value %v (%T) is not a proto.Message", v, v)
|
|
157
142
|
}
|
|
@@ -160,3 +145,28 @@ func (w *protobufWrapper) Encode(v interface{}) error {
|
|
|
160
145
|
func (*protobufWrapper) Close() error {
|
|
161
146
|
return nil
|
|
162
147
|
}
|
|
148
|
+
|
|
149
|
+
// --------------------------------------------------------------------
|
|
150
|
+
|
|
151
|
+
// CBORFormat provides a Format implemention for CBOR.
|
|
152
|
+
var CBORFormat = cborFormat{}
|
|
153
|
+
|
|
154
|
+
type cborFormat struct{}
|
|
155
|
+
|
|
156
|
+
// NewDecoder implements Format.
|
|
157
|
+
func (cborFormat) NewDecoder(r io.Reader) (FormatDecoder, error) {
|
|
158
|
+
return cborDecoderWrapper{Decoder: cbor.NewDecoder(r)}, nil
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// NewEncoder implements Format.
|
|
162
|
+
func (cborFormat) NewEncoder(w io.Writer) (FormatEncoder, error) {
|
|
163
|
+
return cborEncoderWrapper{Encoder: cbor.NewEncoder(w)}, nil
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
type cborDecoderWrapper struct{ *cbor.Decoder }
|
|
167
|
+
|
|
168
|
+
func (cborDecoderWrapper) Close() error { return nil }
|
|
169
|
+
|
|
170
|
+
type cborEncoderWrapper struct{ *cbor.Encoder }
|
|
171
|
+
|
|
172
|
+
func (cborEncoderWrapper) Close() error { return nil }
|
data/format_test.go
CHANGED
|
@@ -2,75 +2,103 @@ package feedx_test
|
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
4
|
"bytes"
|
|
5
|
+
"errors"
|
|
5
6
|
"io"
|
|
7
|
+
"testing"
|
|
6
8
|
|
|
7
9
|
"github.com/bsm/feedx"
|
|
8
10
|
"github.com/bsm/feedx/internal/testdata"
|
|
9
|
-
. "github.com/bsm/ginkgo"
|
|
10
|
-
. "github.com/bsm/gomega"
|
|
11
11
|
)
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
13
|
+
func TestDetectFormat(t *testing.T) {
|
|
14
|
+
examples := []struct {
|
|
15
|
+
Input string
|
|
16
|
+
Exp feedx.Format
|
|
17
|
+
}{
|
|
18
|
+
{Input: "/path/to/file.json", Exp: feedx.JSONFormat},
|
|
19
|
+
{Input: "/path/to/file.json.gz", Exp: feedx.JSONFormat},
|
|
20
|
+
{Input: "/path/to/file.json.flate", Exp: feedx.JSONFormat},
|
|
21
|
+
{Input: "/path/to/file.jsonz", Exp: feedx.JSONFormat},
|
|
22
|
+
|
|
23
|
+
{Input: "/path/to/file.pb", Exp: feedx.ProtobufFormat},
|
|
24
|
+
{Input: "/path/to/file.pb.gz", Exp: feedx.ProtobufFormat},
|
|
25
|
+
{Input: "/path/to/file.pb.flate", Exp: feedx.ProtobufFormat},
|
|
26
|
+
{Input: "/path/to/file.pbz", Exp: feedx.ProtobufFormat},
|
|
27
|
+
|
|
28
|
+
{Input: "/path/to/file.cbor", Exp: feedx.CBORFormat},
|
|
29
|
+
{Input: "/path/to/file.cbor.gz", Exp: feedx.CBORFormat},
|
|
30
|
+
{Input: "/path/to/file.cbor.flate", Exp: feedx.CBORFormat},
|
|
31
|
+
{Input: "/path/to/file.cborz", Exp: feedx.CBORFormat},
|
|
32
|
+
|
|
33
|
+
{Input: "", Exp: (*feedx.NoFormat)(nil)},
|
|
34
|
+
{Input: "/path/to/file", Exp: (*feedx.NoFormat)(nil)},
|
|
35
|
+
{Input: "/path/to/file.txt", Exp: (*feedx.NoFormat)(nil)},
|
|
36
|
+
}
|
|
37
|
+
for _, x := range examples {
|
|
38
|
+
if got := feedx.DetectFormat(x.Input); got != x.Exp {
|
|
39
|
+
t.Errorf("expected %s for %q, but got %s", x.Exp, x.Input, got)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
32
43
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
44
|
+
func TestFormat(t *testing.T) {
|
|
45
|
+
t.Run("json", func(t *testing.T) {
|
|
46
|
+
testFormat(t, feedx.JSONFormat)
|
|
47
|
+
})
|
|
48
|
+
t.Run("protobuf", func(t *testing.T) {
|
|
49
|
+
testFormat(t, feedx.ProtobufFormat)
|
|
50
|
+
})
|
|
51
|
+
t.Run("cbor", func(t *testing.T) {
|
|
52
|
+
testFormat(t, feedx.CBORFormat)
|
|
53
|
+
})
|
|
54
|
+
}
|
|
36
55
|
|
|
37
|
-
|
|
38
|
-
|
|
56
|
+
func testFormat(t *testing.T, f feedx.Format) {
|
|
57
|
+
t.Helper()
|
|
39
58
|
|
|
40
|
-
|
|
59
|
+
buf := new(bytes.Buffer)
|
|
60
|
+
enc, err := f.NewEncoder(buf)
|
|
61
|
+
if err != nil {
|
|
62
|
+
t.Fatal("expected no error, got", err)
|
|
41
63
|
}
|
|
64
|
+
defer func() { _ = enc.Close() }()
|
|
42
65
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
Expect(feedx.DetectFormat("/path/to/file.pbz")).To(Equal(feedx.ProtobufFormat))
|
|
66
|
+
if err := enc.Encode(seed()); err != nil {
|
|
67
|
+
t.Fatal("expected no error, got", err)
|
|
68
|
+
}
|
|
69
|
+
if err := enc.Encode(seed()); err != nil {
|
|
70
|
+
t.Fatal("expected no error, got", err)
|
|
71
|
+
}
|
|
72
|
+
if err := enc.Close(); err != nil {
|
|
73
|
+
t.Fatal("expected no error, got", err)
|
|
74
|
+
}
|
|
53
75
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
76
|
+
dec, err := f.NewDecoder(buf)
|
|
77
|
+
if err != nil {
|
|
78
|
+
t.Fatal("expected no error, got", err)
|
|
79
|
+
}
|
|
80
|
+
defer func() { _ = dec.Close() }()
|
|
58
81
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
82
|
+
v1 := new(testdata.MockMessage)
|
|
83
|
+
if err := dec.Decode(v1); err != nil {
|
|
84
|
+
t.Fatal("expected no error, got", err)
|
|
85
|
+
} else if exp, got := "Joe", v1.Name; exp != got {
|
|
86
|
+
t.Errorf("expected %q, got %q", exp, got)
|
|
87
|
+
}
|
|
62
88
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
89
|
+
v2 := new(testdata.MockMessage)
|
|
90
|
+
if err := dec.Decode(v2); err != nil {
|
|
91
|
+
t.Fatal("expected no error, got", err)
|
|
92
|
+
} else if exp, got := "Joe", v2.Name; exp != got {
|
|
93
|
+
t.Errorf("expected %q, got %q", exp, got)
|
|
94
|
+
}
|
|
67
95
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
96
|
+
v3 := new(testdata.MockMessage)
|
|
97
|
+
if err := dec.Decode(v3); !errors.Is(err, io.EOF) {
|
|
98
|
+
t.Error("expected EOF, got", err)
|
|
99
|
+
}
|
|
71
100
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
})
|
|
101
|
+
if err := dec.Close(); err != nil {
|
|
102
|
+
t.Fatal("expected no error, got", err)
|
|
103
|
+
}
|
|
104
|
+
}
|
data/go.mod
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
module github.com/bsm/feedx
|
|
2
2
|
|
|
3
|
-
go 1.
|
|
3
|
+
go 1.25
|
|
4
4
|
|
|
5
5
|
require (
|
|
6
|
-
github.com/bsm/bfs v0.
|
|
7
|
-
github.com/bsm/
|
|
8
|
-
github.com/
|
|
9
|
-
github.com/bsm/pbio v0.3.0
|
|
10
|
-
github.com/gogo/protobuf v1.3.2
|
|
6
|
+
github.com/bsm/bfs v0.12.2
|
|
7
|
+
github.com/bsm/pbio v0.4.0
|
|
8
|
+
github.com/fxamacker/cbor/v2 v2.9.0
|
|
11
9
|
github.com/golang/protobuf v1.5.2
|
|
12
|
-
|
|
10
|
+
github.com/klauspost/compress v1.18.1
|
|
11
|
+
google.golang.org/protobuf v1.36.10
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
require (
|
|
15
|
+
github.com/bmatcuk/doublestar/v4 v4.9.1 // indirect
|
|
16
|
+
github.com/x448/float16 v0.8.4 // indirect
|
|
13
17
|
)
|
data/go.sum
CHANGED
|
@@ -1,145 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
github.com/
|
|
3
|
-
github.com/
|
|
4
|
-
github.com/
|
|
5
|
-
github.com/bsm/
|
|
6
|
-
github.com/bsm/
|
|
7
|
-
github.com/
|
|
8
|
-
github.com/
|
|
9
|
-
github.com/bsm/ginkgo v1.16.5/go.mod h1:RabIZLzOCPghgHJKUqHZpqrQETA5AnF4aCSIYy5C1bk=
|
|
10
|
-
github.com/bsm/gomega v1.16.0/go.mod h1:JifAceMQ4crZIWYUKrlGcmbN3bqHogVTADMD2ATsbwk=
|
|
11
|
-
github.com/bsm/gomega v1.17.0 h1:Sd6EsHO5d0DU6d41dtx9cK3T7Vjsr89o6zyIVWgi0CI=
|
|
12
|
-
github.com/bsm/gomega v1.17.0/go.mod h1:JifAceMQ4crZIWYUKrlGcmbN3bqHogVTADMD2ATsbwk=
|
|
13
|
-
github.com/bsm/pbio v0.3.0 h1:8XzkUPoJZblPkLp2jHVMnIhGs5WaNHTCmO7gRC45izk=
|
|
14
|
-
github.com/bsm/pbio v0.3.0/go.mod h1:3O4XQFoarlYalkGd+zMFfEUyalP8NBKkQ0Ta4IwhN4w=
|
|
15
|
-
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
|
16
|
-
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
|
17
|
-
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
|
18
|
-
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
|
19
|
-
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
|
20
|
-
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
|
21
|
-
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
|
22
|
-
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
|
23
|
-
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
|
24
|
-
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
|
25
|
-
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
|
26
|
-
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
27
|
-
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
28
|
-
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
|
29
|
-
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
|
30
|
-
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
|
31
|
-
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
|
32
|
-
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
|
33
|
-
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
|
34
|
-
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
|
1
|
+
github.com/bmatcuk/doublestar/v4 v4.9.1 h1:X8jg9rRZmJd4yRy7ZeNDRnM+T3ZfHv15JiBJ/avrEXE=
|
|
2
|
+
github.com/bmatcuk/doublestar/v4 v4.9.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
|
|
3
|
+
github.com/bsm/bfs v0.12.2 h1:gvewfnOJdcD3m46/bGg8DOBGPH65lX3MkpfDl7m938M=
|
|
4
|
+
github.com/bsm/bfs v0.12.2/go.mod h1:ris96jQ0WkWwW6HSYA0FjqLgjhILCF1qshZhQMRzI0s=
|
|
5
|
+
github.com/bsm/pbio v0.4.0 h1:exmKhE8gpCeubJ0rzRjq6c6ubqjyl9sqYc5ABDZ9/Xg=
|
|
6
|
+
github.com/bsm/pbio v0.4.0/go.mod h1:vR1REwD+VjtNR3afI5eGFxNKnX2bmMD0t6993ZgpZ/E=
|
|
7
|
+
github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
|
|
8
|
+
github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
|
|
35
9
|
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
|
36
10
|
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
|
37
11
|
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
|
38
|
-
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
|
39
|
-
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
40
|
-
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
41
|
-
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
42
|
-
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
43
|
-
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
|
44
12
|
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
45
|
-
github.com/
|
|
46
|
-
github.com/
|
|
47
|
-
github.com/
|
|
48
|
-
github.com/
|
|
49
|
-
github.com/
|
|
50
|
-
github.com/
|
|
51
|
-
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
|
52
|
-
github.com/onsi/ginkgo v1.14.1 h1:jMU0WaQrP0a/YAEq8eJmJKjBoMs+pClEr1vDMlM/Do4=
|
|
53
|
-
github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
|
54
|
-
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
|
55
|
-
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
|
56
|
-
github.com/onsi/gomega v1.10.2 h1:aY/nuoWlKJud2J6U0E3NWsjlg+0GtwXxgEqthRdzlcs=
|
|
57
|
-
github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
|
58
|
-
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
|
59
|
-
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
|
60
|
-
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
|
61
|
-
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
|
62
|
-
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
63
|
-
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
|
64
|
-
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
|
65
|
-
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
|
66
|
-
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
|
67
|
-
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
68
|
-
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|
69
|
-
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|
70
|
-
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
71
|
-
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
72
|
-
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
73
|
-
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
74
|
-
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
75
|
-
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
76
|
-
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
77
|
-
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
78
|
-
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
|
79
|
-
golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI=
|
|
80
|
-
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
|
81
|
-
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
|
82
|
-
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
83
|
-
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
84
|
-
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
85
|
-
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
86
|
-
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
87
|
-
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
88
|
-
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
89
|
-
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
90
|
-
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
91
|
-
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
92
|
-
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
93
|
-
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
94
|
-
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
95
|
-
golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
96
|
-
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
|
|
97
|
-
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
98
|
-
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|
99
|
-
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
|
100
|
-
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
|
|
101
|
-
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
102
|
-
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
103
|
-
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
104
|
-
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
|
105
|
-
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
106
|
-
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
|
107
|
-
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
108
|
-
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
|
109
|
-
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
|
110
|
-
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
111
|
-
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
13
|
+
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
|
14
|
+
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
|
15
|
+
github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co=
|
|
16
|
+
github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0=
|
|
17
|
+
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
|
|
18
|
+
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
|
|
112
19
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
113
|
-
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
|
114
|
-
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
115
|
-
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
|
116
|
-
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
|
117
|
-
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
|
118
|
-
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
|
119
|
-
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
|
120
|
-
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
|
121
|
-
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
|
122
|
-
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
|
123
|
-
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
|
124
|
-
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
|
125
|
-
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
|
126
|
-
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
|
127
|
-
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
|
128
|
-
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
129
|
-
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
130
|
-
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
131
|
-
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
|
132
20
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
|
133
21
|
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
|
134
|
-
google.golang.org/protobuf v1.
|
|
135
|
-
google.golang.org/protobuf v1.
|
|
136
|
-
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
|
137
|
-
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
138
|
-
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
|
139
|
-
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
|
140
|
-
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
|
141
|
-
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
142
|
-
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
|
143
|
-
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
144
|
-
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
145
|
-
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
22
|
+
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
|
|
23
|
+
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
|