lib/plum/hpack/constants.rb
# frozen-string-literal: true
module Plum
module HPACK
# RFC7541 Appendix A
# index is starting from 0
STATIC_TABLE = [
[":authority", ""],
[":method", "GET"],
[":method", "POST"],
[":path", "/"],
[":path", "/index.html"],
[":scheme", "http"],
[":scheme", "https"],
[":status", "200"],
[":status", "204"],
[":status", "206"],
[":status", "304"],
[":status", "400"],
[":status", "404"],
[":status", "500"],
["accept-charset"],
["accept-encoding", "gzip, deflate"],
["accept-language", ""],
["accept-ranges", ""],
["accept", ""],
["access-control-allow-origin", ""],
["age", ""],
["allow", ""],
["authorization", ""],
["cache-control", ""],
["content-disposition", ""],
["content-encoding", ""],
["content-language", ""],
["content-length", ""],
["content-location", ""],
["content-range", ""],
["content-type", ""],
["cookie", ""],
["date", ""],
["etag", ""],
["expect", ""],
["expires", ""],
["from", ""],
["host", ""],
["if-match", ""],
["if-modified-since", ""],
["if-none-match", ""],
["if-range", ""],
["if-unmodified-since", ""],
["last-modified", ""],
["link", ""],
["location", ""],
["max-forwards", ""],
["proxy-authenticate", ""],
["proxy-authorization", ""],
["range", ""],
["referer", ""],
["refresh", ""],
["retry-after", ""],
["server", ""],
["set-cookie", ""],
["strict-transport-security", ""],
["transfer-encoding", ""],
["user-agent", ""],
["vary", ""],
["via", ""],
["www-authenticate", ""],
].freeze
STATIC_TABLE_SIZE = STATIC_TABLE.size
HUFFMAN_TABLE = [
"1111111111000",
"11111111111111111011000",
"1111111111111111111111100010",
"1111111111111111111111100011",
"1111111111111111111111100100",
"1111111111111111111111100101",
"1111111111111111111111100110",
"1111111111111111111111100111",
"1111111111111111111111101000",
"111111111111111111101010",
"111111111111111111111111111100",
"1111111111111111111111101001",
"1111111111111111111111101010",
"111111111111111111111111111101",
"1111111111111111111111101011",
"1111111111111111111111101100",
"1111111111111111111111101101",
"1111111111111111111111101110",
"1111111111111111111111101111",
"1111111111111111111111110000",
"1111111111111111111111110001",
"1111111111111111111111110010",
"111111111111111111111111111110",
"1111111111111111111111110011",
"1111111111111111111111110100",
"1111111111111111111111110101",
"1111111111111111111111110110",
"1111111111111111111111110111",
"1111111111111111111111111000",
"1111111111111111111111111001",
"1111111111111111111111111010",
"1111111111111111111111111011",
"010100",
"1111111000",
"1111111001",
"111111111010",
"1111111111001",
"010101",
"11111000",
"11111111010",
"1111111010",
"1111111011",
"11111001",
"11111111011",
"11111010",
"010110",
"010111",
"011000",
"00000",
"00001",
"00010",
"011001",
"011010",
"011011",
"011100",
"011101",
"011110",
"011111",
"1011100",
"11111011",
"111111111111100",
"100000",
"111111111011",
"1111111100",
"1111111111010",
"100001",
"1011101",
"1011110",
"1011111",
"1100000",
"1100001",
"1100010",
"1100011",
"1100100",
"1100101",
"1100110",
"1100111",
"1101000",
"1101001",
"1101010",
"1101011",
"1101100",
"1101101",
"1101110",
"1101111",
"1110000",
"1110001",
"1110010",
"11111100",
"1110011",
"11111101",
"1111111111011",
"1111111111111110000",
"1111111111100",
"11111111111100",
"100010",
"111111111111101",
"00011",
"100011",
"00100",
"100100",
"00101",
"100101",
"100110",
"100111",
"00110",
"1110100",
"1110101",
"101000",
"101001",
"101010",
"00111",
"101011",
"1110110",
"101100",
"01000",
"01001",
"101101",
"1110111",
"1111000",
"1111001",
"1111010",
"1111011",
"111111111111110",
"11111111100",
"11111111111101",
"1111111111101",
"1111111111111111111111111100",
"11111111111111100110",
"1111111111111111010010",
"11111111111111100111",
"11111111111111101000",
"1111111111111111010011",
"1111111111111111010100",
"1111111111111111010101",
"11111111111111111011001",
"1111111111111111010110",
"11111111111111111011010",
"11111111111111111011011",
"11111111111111111011100",
"11111111111111111011101",
"11111111111111111011110",
"111111111111111111101011",
"11111111111111111011111",
"111111111111111111101100",
"111111111111111111101101",
"1111111111111111010111",
"11111111111111111100000",
"111111111111111111101110",
"11111111111111111100001",
"11111111111111111100010",
"11111111111111111100011",
"11111111111111111100100",
"111111111111111011100",
"1111111111111111011000",
"11111111111111111100101",
"1111111111111111011001",
"11111111111111111100110",
"11111111111111111100111",
"111111111111111111101111",
"1111111111111111011010",
"111111111111111011101",
"11111111111111101001",
"1111111111111111011011",
"1111111111111111011100",
"11111111111111111101000",
"11111111111111111101001",
"111111111111111011110",
"11111111111111111101010",
"1111111111111111011101",
"1111111111111111011110",
"111111111111111111110000",
"111111111111111011111",
"1111111111111111011111",
"11111111111111111101011",
"11111111111111111101100",
"111111111111111100000",
"111111111111111100001",
"1111111111111111100000",
"111111111111111100010",
"11111111111111111101101",
"1111111111111111100001",
"11111111111111111101110",
"11111111111111111101111",
"11111111111111101010",
"1111111111111111100010",
"1111111111111111100011",
"1111111111111111100100",
"11111111111111111110000",
"1111111111111111100101",
"1111111111111111100110",
"11111111111111111110001",
"11111111111111111111100000",
"11111111111111111111100001",
"11111111111111101011",
"1111111111111110001",
"1111111111111111100111",
"11111111111111111110010",
"1111111111111111101000",
"1111111111111111111101100",
"11111111111111111111100010",
"11111111111111111111100011",
"11111111111111111111100100",
"111111111111111111111011110",
"111111111111111111111011111",
"11111111111111111111100101",
"111111111111111111110001",
"1111111111111111111101101",
"1111111111111110010",
"111111111111111100011",
"11111111111111111111100110",
"111111111111111111111100000",
"111111111111111111111100001",
"11111111111111111111100111",
"111111111111111111111100010",
"111111111111111111110010",
"111111111111111100100",
"111111111111111100101",
"11111111111111111111101000",
"11111111111111111111101001",
"1111111111111111111111111101",
"111111111111111111111100011",
"111111111111111111111100100",
"111111111111111111111100101",
"11111111111111101100",
"111111111111111111110011",
"11111111111111101101",
"111111111111111100110",
"1111111111111111101001",
"111111111111111100111",
"111111111111111101000",
"11111111111111111110011",
"1111111111111111101010",
"1111111111111111101011",
"1111111111111111111101110",
"1111111111111111111101111",
"111111111111111111110100",
"111111111111111111110101",
"11111111111111111111101010",
"11111111111111111110100",
"11111111111111111111101011",
"111111111111111111111100110",
"11111111111111111111101100",
"11111111111111111111101101",
"111111111111111111111100111",
"111111111111111111111101000",
"111111111111111111111101001",
"111111111111111111111101010",
"111111111111111111111101011",
"1111111111111111111111111110",
"111111111111111111111101100",
"111111111111111111111101101",
"111111111111111111111101110",
"111111111111111111111101111",
"111111111111111111111110000",
"11111111111111111111101110",
"111111111111111111111111111111"
].freeze
HUFFMAN_TABLE_INVERSED = HUFFMAN_TABLE.each_with_index.to_h.freeze
end
end