lsqpack 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +19 -0
- data/Gemfile.lock +82 -0
- data/LICENSE +21 -0
- data/README.md +36 -0
- data/Rakefile +19 -0
- data/Steepfile +6 -0
- data/ext/lsqpack/extconf.rb +18 -0
- data/ext/lsqpack/lsqpack.c +426 -0
- data/ext/lsqpack/lsqpack.h +6 -0
- data/lib/lsqpack/version.rb +5 -0
- data/lib/lsqpack.rb +30 -0
- data/ls-qpack/.appveyor.yml +14 -0
- data/ls-qpack/.cirrus.yml +6 -0
- data/ls-qpack/.travis.yml +32 -0
- data/ls-qpack/CMakeLists.txt +66 -0
- data/ls-qpack/LICENSE +21 -0
- data/ls-qpack/README.md +65 -0
- data/ls-qpack/bin/CMakeLists.txt +21 -0
- data/ls-qpack/bin/encode-int.c +87 -0
- data/ls-qpack/bin/fuzz-decode.c +247 -0
- data/ls-qpack/bin/interop-decode.c +433 -0
- data/ls-qpack/bin/interop-encode.c +554 -0
- data/ls-qpack/deps/xxhash/xxhash.c +941 -0
- data/ls-qpack/deps/xxhash/xxhash.h +160 -0
- data/ls-qpack/fuzz/decode/a/README +3 -0
- data/ls-qpack/fuzz/decode/a/preamble +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000000,sig_06,src_000390,op_havoc,rep_4 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000000,sig_06,src_000579,op_flip1,pos_14 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000000,src_000000,op_flip2,pos_12 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000001,sig_11,src_000579,op_havoc,rep_4 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000002,sig_11,src_000481,op_int16,pos_15,val_-1 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000002,src_000000,op_havoc,rep_8 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000006,src_000285,op_flip2,pos_14 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000008,src_000285,op_flip2,pos_20 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000010,src_000306,op_flip2,pos_75 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000011,src_000344,op_havoc,rep_2 +0 -0
- data/ls-qpack/fuzz/decode/a/test-cases/id_000014,src_000366,op_flip2,pos_28 +0 -0
- data/ls-qpack/fuzz/decode/b/README +1 -0
- data/ls-qpack/fuzz/decode/b/preamble +0 -0
- data/ls-qpack/fuzz/decode/b/test-cases/seed +0 -0
- data/ls-qpack/fuzz/decode/c/setup.sh +3 -0
- data/ls-qpack/fuzz/decode/c/test-cases/fb-req.qif.proxygen.out.256.100.0-chopped +0 -0
- data/ls-qpack/fuzz/decode/d/preamble +0 -0
- data/ls-qpack/fuzz/decode/d/setup.sh +3 -0
- data/ls-qpack/fuzz/decode/d/test-cases/fb-resp.minhq.256.128.0.ack +0 -0
- data/ls-qpack/fuzz/input/256.100.1/fb-req.out.256.100.1 +0 -0
- data/ls-qpack/fuzz/input/256.100.1/fb-resp.out.256.100.1 +0 -0
- data/ls-qpack/fuzz/input/256.100.1/netbsd.out.256.100.1 +0 -0
- data/ls-qpack/huff-tables.h +136247 -0
- data/ls-qpack/lsqpack.c +5547 -0
- data/ls-qpack/lsqpack.h +768 -0
- data/ls-qpack/test/CMakeLists.txt +76 -0
- data/ls-qpack/test/lsqpack-test.h +43 -0
- data/ls-qpack/test/qifs/fb-req.qif +4917 -0
- data/ls-qpack/test/qifs/fb-resp.qif +5982 -0
- data/ls-qpack/test/qifs/long-codes.qif +5984 -0
- data/ls-qpack/test/qifs/netbsd.qif +235 -0
- data/ls-qpack/test/run-qif.pl +97 -0
- data/ls-qpack/test/run-scenario.sh +68 -0
- data/ls-qpack/test/scenarios/0.95-reset.sce +10 -0
- data/ls-qpack/test/scenarios/cancel-stream.sce +22 -0
- data/ls-qpack/test/scenarios/drain-2.sce +37 -0
- data/ls-qpack/test/scenarios/drain.sce +37 -0
- data/ls-qpack/test/scenarios/end-dst-2.sce +14 -0
- data/ls-qpack/test/scenarios/end-dst.sce +14 -0
- data/ls-qpack/test/scenarios/incl-name.sce +13 -0
- data/ls-qpack/test/scenarios/multi-byte-int-dyn-ref-1.sce +110 -0
- data/ls-qpack/test/scenarios/multi-byte-int-dyn-ref-2.sce +161 -0
- data/ls-qpack/test/scenarios/post-base-1.sce +10 -0
- data/ls-qpack/test/scenarios/post-base-2.sce +13 -0
- data/ls-qpack/test/scenarios/post-base-nr.sce +10 -0
- data/ls-qpack/test/scenarios/set-max-cap.sce +15 -0
- data/ls-qpack/test/test_enc_str.c +139 -0
- data/ls-qpack/test/test_get_stx_id.c +144 -0
- data/ls-qpack/test/test_huff_dec.c +399 -0
- data/ls-qpack/test/test_int.c +220 -0
- data/ls-qpack/test/test_qpack.c +856 -0
- data/ls-qpack/test/test_read_enc_stream.c +256 -0
- data/ls-qpack/tools/har2qif.pl +139 -0
- data/ls-qpack/tools/randomize-cookies.pl +41 -0
- data/ls-qpack/tools/sort-qif.pl +31 -0
- data/ls-qpack/wincompat/getopt.c +758 -0
- data/ls-qpack/wincompat/getopt.h +131 -0
- data/ls-qpack/wincompat/getopt1.c +188 -0
- data/ls-qpack/wincompat/sys/queue.h +859 -0
- data/lsqpack.gemspec +39 -0
- data/sig/lsqpack.rbs +29 -0
- metadata +135 -0
data/lsqpack.gemspec
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/lsqpack/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "lsqpack"
|
7
|
+
spec.version = Lsqpack::VERSION
|
8
|
+
spec.authors = ["Yusuke Nakamura"]
|
9
|
+
spec.email = ["yusuke1994525@gmail.com"]
|
10
|
+
|
11
|
+
spec.summary = "A wrapper gem of the ls-qpack library. It strongly influenced by pylsqpack."
|
12
|
+
spec.description = "A wrapper gem of the ls-qpack library. It strongly influenced by pylsqpack. It has same api of pylsqpack."
|
13
|
+
spec.homepage = "https://github.com/unasuke/lsqpack-ruby"
|
14
|
+
spec.required_ruby_version = ">= 2.6.0"
|
15
|
+
spec.licenses = ["MIT"]
|
16
|
+
|
17
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
18
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
19
|
+
# spec.metadata["changelog_uri"] = "Put your gem's CHANGELOG.md URL here."
|
20
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
21
|
+
|
22
|
+
# Specify which files should be added to the gem when it is released.
|
23
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
24
|
+
spec.files = Dir.chdir(__dir__) do
|
25
|
+
`git ls-files --recurse-submodules -z`.split("\x0").reject do |f|
|
26
|
+
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
|
27
|
+
end
|
28
|
+
end
|
29
|
+
spec.bindir = "exe"
|
30
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
31
|
+
spec.require_paths = ["lib"]
|
32
|
+
spec.extensions = ["ext/lsqpack/extconf.rb"]
|
33
|
+
|
34
|
+
# Uncomment to register a new dependency of your gem
|
35
|
+
# spec.add_dependency "example-gem", "~> 1.0"
|
36
|
+
|
37
|
+
# For more information and examples about making a new gem, check out our
|
38
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
39
|
+
end
|
data/sig/lsqpack.rbs
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# See the writing guide of rbs: https://github.com/ruby/rbs#guides
|
2
|
+
|
3
|
+
module Lsqpack
|
4
|
+
VERSION: String
|
5
|
+
|
6
|
+
class Error < StandardError
|
7
|
+
end
|
8
|
+
class DecompressonFailed < Error
|
9
|
+
end
|
10
|
+
class DecoderStreamError < Error
|
11
|
+
end
|
12
|
+
class EncoderStreamError < Error
|
13
|
+
end
|
14
|
+
class StreamBlocked < Error
|
15
|
+
end
|
16
|
+
|
17
|
+
class Decoder
|
18
|
+
def initialize: (?max_table_capacity: Integer, ?blocked_streams: Integer) -> void
|
19
|
+
def feed_encoder: (String data) -> Array[Integer]
|
20
|
+
def feed_header: (Integer stream_id, String data) -> Array[[String, String]]
|
21
|
+
def resume_header: (Integer stream_id) -> Array[[String, String]]
|
22
|
+
end
|
23
|
+
|
24
|
+
class Encoder
|
25
|
+
def initialize: () -> void
|
26
|
+
def encode: (Integer stream_id, Array[[String, String]] headers) -> [String, String]
|
27
|
+
def feed_decoder: (String data) -> void
|
28
|
+
end
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lsqpack
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yusuke Nakamura
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-03-19 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A wrapper gem of the ls-qpack library. It strongly influenced by pylsqpack.
|
14
|
+
It has same api of pylsqpack.
|
15
|
+
email:
|
16
|
+
- yusuke1994525@gmail.com
|
17
|
+
executables: []
|
18
|
+
extensions:
|
19
|
+
- ext/lsqpack/extconf.rb
|
20
|
+
extra_rdoc_files: []
|
21
|
+
files:
|
22
|
+
- Gemfile
|
23
|
+
- Gemfile.lock
|
24
|
+
- LICENSE
|
25
|
+
- README.md
|
26
|
+
- Rakefile
|
27
|
+
- Steepfile
|
28
|
+
- ext/lsqpack/extconf.rb
|
29
|
+
- ext/lsqpack/lsqpack.c
|
30
|
+
- ext/lsqpack/lsqpack.h
|
31
|
+
- lib/lsqpack.rb
|
32
|
+
- lib/lsqpack/version.rb
|
33
|
+
- ls-qpack/.appveyor.yml
|
34
|
+
- ls-qpack/.cirrus.yml
|
35
|
+
- ls-qpack/.travis.yml
|
36
|
+
- ls-qpack/CMakeLists.txt
|
37
|
+
- ls-qpack/LICENSE
|
38
|
+
- ls-qpack/README.md
|
39
|
+
- ls-qpack/bin/CMakeLists.txt
|
40
|
+
- ls-qpack/bin/encode-int.c
|
41
|
+
- ls-qpack/bin/fuzz-decode.c
|
42
|
+
- ls-qpack/bin/interop-decode.c
|
43
|
+
- ls-qpack/bin/interop-encode.c
|
44
|
+
- ls-qpack/deps/xxhash/xxhash.c
|
45
|
+
- ls-qpack/deps/xxhash/xxhash.h
|
46
|
+
- ls-qpack/fuzz/decode/a/README
|
47
|
+
- ls-qpack/fuzz/decode/a/preamble
|
48
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000000,sig_06,src_000390,op_havoc,rep_4
|
49
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000000,sig_06,src_000579,op_flip1,pos_14
|
50
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000000,src_000000,op_flip2,pos_12
|
51
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000001,sig_11,src_000579,op_havoc,rep_4
|
52
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000002,sig_11,src_000481,op_int16,pos_15,val_-1
|
53
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000002,src_000000,op_havoc,rep_8
|
54
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000006,src_000285,op_flip2,pos_14
|
55
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000008,src_000285,op_flip2,pos_20
|
56
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000010,src_000306,op_flip2,pos_75
|
57
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000011,src_000344,op_havoc,rep_2
|
58
|
+
- ls-qpack/fuzz/decode/a/test-cases/id_000014,src_000366,op_flip2,pos_28
|
59
|
+
- ls-qpack/fuzz/decode/b/README
|
60
|
+
- ls-qpack/fuzz/decode/b/preamble
|
61
|
+
- ls-qpack/fuzz/decode/b/test-cases/seed
|
62
|
+
- ls-qpack/fuzz/decode/c/setup.sh
|
63
|
+
- ls-qpack/fuzz/decode/c/test-cases/fb-req.qif.proxygen.out.256.100.0-chopped
|
64
|
+
- ls-qpack/fuzz/decode/d/preamble
|
65
|
+
- ls-qpack/fuzz/decode/d/setup.sh
|
66
|
+
- ls-qpack/fuzz/decode/d/test-cases/fb-resp.minhq.256.128.0.ack
|
67
|
+
- ls-qpack/fuzz/input/256.100.1/fb-req.out.256.100.1
|
68
|
+
- ls-qpack/fuzz/input/256.100.1/fb-resp.out.256.100.1
|
69
|
+
- ls-qpack/fuzz/input/256.100.1/netbsd.out.256.100.1
|
70
|
+
- ls-qpack/huff-tables.h
|
71
|
+
- ls-qpack/lsqpack.c
|
72
|
+
- ls-qpack/lsqpack.h
|
73
|
+
- ls-qpack/test/CMakeLists.txt
|
74
|
+
- ls-qpack/test/lsqpack-test.h
|
75
|
+
- ls-qpack/test/qifs/fb-req.qif
|
76
|
+
- ls-qpack/test/qifs/fb-resp.qif
|
77
|
+
- ls-qpack/test/qifs/long-codes.qif
|
78
|
+
- ls-qpack/test/qifs/netbsd.qif
|
79
|
+
- ls-qpack/test/run-qif.pl
|
80
|
+
- ls-qpack/test/run-scenario.sh
|
81
|
+
- ls-qpack/test/scenarios/0.95-reset.sce
|
82
|
+
- ls-qpack/test/scenarios/cancel-stream.sce
|
83
|
+
- ls-qpack/test/scenarios/drain-2.sce
|
84
|
+
- ls-qpack/test/scenarios/drain.sce
|
85
|
+
- ls-qpack/test/scenarios/end-dst-2.sce
|
86
|
+
- ls-qpack/test/scenarios/end-dst.sce
|
87
|
+
- ls-qpack/test/scenarios/incl-name.sce
|
88
|
+
- ls-qpack/test/scenarios/multi-byte-int-dyn-ref-1.sce
|
89
|
+
- ls-qpack/test/scenarios/multi-byte-int-dyn-ref-2.sce
|
90
|
+
- ls-qpack/test/scenarios/post-base-1.sce
|
91
|
+
- ls-qpack/test/scenarios/post-base-2.sce
|
92
|
+
- ls-qpack/test/scenarios/post-base-nr.sce
|
93
|
+
- ls-qpack/test/scenarios/set-max-cap.sce
|
94
|
+
- ls-qpack/test/test_enc_str.c
|
95
|
+
- ls-qpack/test/test_get_stx_id.c
|
96
|
+
- ls-qpack/test/test_huff_dec.c
|
97
|
+
- ls-qpack/test/test_int.c
|
98
|
+
- ls-qpack/test/test_qpack.c
|
99
|
+
- ls-qpack/test/test_read_enc_stream.c
|
100
|
+
- ls-qpack/tools/har2qif.pl
|
101
|
+
- ls-qpack/tools/randomize-cookies.pl
|
102
|
+
- ls-qpack/tools/sort-qif.pl
|
103
|
+
- ls-qpack/wincompat/getopt.c
|
104
|
+
- ls-qpack/wincompat/getopt.h
|
105
|
+
- ls-qpack/wincompat/getopt1.c
|
106
|
+
- ls-qpack/wincompat/sys/queue.h
|
107
|
+
- lsqpack.gemspec
|
108
|
+
- sig/lsqpack.rbs
|
109
|
+
homepage: https://github.com/unasuke/lsqpack-ruby
|
110
|
+
licenses:
|
111
|
+
- MIT
|
112
|
+
metadata:
|
113
|
+
homepage_uri: https://github.com/unasuke/lsqpack-ruby
|
114
|
+
source_code_uri: https://github.com/unasuke/lsqpack-ruby
|
115
|
+
rubygems_mfa_required: 'true'
|
116
|
+
post_install_message:
|
117
|
+
rdoc_options: []
|
118
|
+
require_paths:
|
119
|
+
- lib
|
120
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 2.6.0
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
requirements: []
|
131
|
+
rubygems_version: 3.3.7
|
132
|
+
signing_key:
|
133
|
+
specification_version: 4
|
134
|
+
summary: A wrapper gem of the ls-qpack library. It strongly influenced by pylsqpack.
|
135
|
+
test_files: []
|