@gjsify/http2-native 0.22.0 → 0.24.1

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.
package/README.md CHANGED
@@ -31,7 +31,32 @@ if (hasNativeHttp2()) {
31
31
  }
32
32
  ```
33
33
 
34
- Ships as a prebuilt `.so` + `.typelib` for `linux-x86_64`. Build from source with `meson` + `valac` + `libnghttp2-devel` if your architecture is not covered.
34
+ See [Platform coverage](#platform-coverage) for the prebuilt platforms.
35
+
36
+ ## Platform coverage
37
+
38
+ | Platform | Prebuild | Built by |
39
+ |---|---|---|
40
+ | `linux-x64` | ✅ `.so` + `.gir` + `.typelib` | native runner |
41
+ | `linux-arm64` | ✅ | native runner |
42
+ | `linux-ppc64`, `linux-s390x`, `linux-riscv64` | ✅ | QEMU emulation |
43
+ | `darwin-arm64` (macOS, Apple silicon) | ✅ `.dylib` + `.gir` + `.typelib` | `macos-latest` runner |
44
+ | `darwin-x64` (macOS, Intel) | ❌ | — no runner leg yet |
45
+ | Windows | ❌ | — no Vala/GI bridge in this repo targets Windows |
46
+
47
+ All prebuilds are produced by [`.github/workflows/prebuilds.yml`](../../../.github/workflows/prebuilds.yml)
48
+ and committed back to the repository. Build from source with `meson` + `valac` + nghttp2
49
+ development headers if your architecture is not covered.
50
+
51
+ On macOS, nghttp2 comes from Homebrew's keg-only `libnghttp2` formula. Because this bridge
52
+ resolves it through `cc.find_library('nghttp2', …)` rather than pkg-config, the build needs
53
+ `CPPFLAGS`/`LDFLAGS` pointed at `$(brew --prefix libnghttp2)` — the prebuilds workflow does
54
+ this for you.
55
+
56
+ **Known gap — a `darwin-arm64` prebuild is built and shipped, but the CLI does not
57
+ load it yet.** `detectNativePackages()` (`packages/infra/cli/src/utils/detect-native-packages.ts`)
58
+ hardcodes a `linux-` directory prefix, and `buildNativeEnv()` exports `LD_LIBRARY_PATH`,
59
+ which macOS `dyld` ignores in favour of `DYLD_LIBRARY_PATH`.
35
60
 
36
61
  ## License
37
62
 
package/meson.build CHANGED
@@ -41,12 +41,32 @@ libGjsifyHttp2 = library('gjsifyhttp2', sources,
41
41
  install_dir: [true, true, true, true],
42
42
  )
43
43
 
44
+ # ----------------------------------------------------------------------------
45
+ # Host-dependent shared-library leaf name.
46
+ #
47
+ # The typelib records the exact filename gjs' g_module_open() resolves at load
48
+ # time, and meson names the shared library per host convention: lib<name>.so on
49
+ # ELF hosts, lib<name>.dylib on macOS. Recording the wrong leaf yields a typelib
50
+ # that IS found via GI_TYPELIB_PATH but whose library never loads — a silent,
51
+ # confusing failure. Mirrors the branch in packages/napi/napi/meson.build.
52
+ #
53
+ # Windows is deliberately absent: this bridge has had no Windows portability
54
+ # work, so `else` (ELF naming) is the honest fallback rather than a .dll branch
55
+ # that would imply support which does not exist.
56
+ # ----------------------------------------------------------------------------
57
+ host_system = host_machine.system()
58
+ if host_system == 'darwin'
59
+ shared_lib_name = 'libgjsifyhttp2.dylib'
60
+ else
61
+ shared_lib_name = 'libgjsifyhttp2.so'
62
+ endif
63
+
44
64
  g_ir_compiler = find_program('g-ir-compiler')
45
65
 
46
66
  custom_target(meson.project_name() + '-1.0.typelib',
47
67
  command: [
48
68
  g_ir_compiler,
49
- '--shared-library', 'libgjsifyhttp2.so',
69
+ '--shared-library', shared_lib_name,
50
70
  '--output', '@OUTPUT@',
51
71
  meson.current_build_dir() / meson.project_name() + '-1.0.gir',
52
72
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/http2-native",
3
- "version": "0.22.0",
3
+ "version": "0.24.1",
4
4
  "description": "Optional Vala/GObject bridge providing nghttp2 primitives unreachable through libsoup's high-level GIR API: HPACK header-block encoding (for PUSH_PROMISE / DATA frames), server-side push stream-ID allocation, and a thin nghttp2_session wrapper for future cleartext HTTP/2 (h2c) support. Used by @gjsify/http2 to back ServerHttp2Stream.pushStream() / respondWithFD() / respondWithFile() and enable createServer() over plain TCP once the full Soup ↔ nghttp2 boundary is in place.",
5
5
  "type": "module",
6
6
  "main": "lib/esm/index.js",
@@ -19,6 +19,14 @@
19
19
  "src/vala"
20
20
  ],
21
21
  "gjsify": {
22
+ "platforms": [
23
+ "linux-x64",
24
+ "linux-arm64",
25
+ "linux-ppc64",
26
+ "linux-s390x",
27
+ "linux-riscv64",
28
+ "darwin-arm64"
29
+ ],
22
30
  "prebuilds": "prebuilds",
23
31
  "runtimes": {
24
32
  "gjs": "polyfill",
@@ -37,8 +45,8 @@
37
45
  "build:gjsify": "gjsify build --library 'src/ts/**/*.{ts,js}' --exclude 'src/ts/**/*.spec.{mts,ts}' 'src/ts/test.{mts,ts}'",
38
46
  "build:meson": "gjsify run init:meson && meson compile -C build",
39
47
  "build:types": "gjsify tsc",
40
- "build:prebuilds": "gjsify run build:meson && mkdir -p prebuilds/linux-x86_64 && cp build/libgjsifyhttp2.so build/GjsifyHttp2-1.0.gir build/GjsifyHttp2-1.0.typelib prebuilds/linux-x86_64/",
41
- "build:gir-types": "ts-for-gir generate --externalDeps --allowMissingDeps --girDirectories=./prebuilds/linux-x86_64 --girDirectories=/usr/share/gir-1.0 --modules=GjsifyHttp2-1.0 --outdir=src/ts --npmScope=@girs --package=false --ignoreVersionConflicts=true",
48
+ "build:prebuilds": "gjsify run build:meson && node ../../../scripts/stage-prebuild.mjs .",
49
+ "build:gir-types": "ts-for-gir generate --externalDeps --allowMissingDeps --girDirectories=./prebuilds/linux-x64 --girDirectories=/usr/share/gir-1.0 --modules=GjsifyHttp2-1.0 --outdir=src/ts --npmScope=@girs --package=false --ignoreVersionConflicts=true",
42
50
  "build:test": "gjsify run build:test:gjs",
43
51
  "build:test:gjs": "gjsify build src/ts/test.mts --app gjs --outfile test.gjs.mjs",
44
52
  "test": "gjsify run build:gjsify && gjsify run build:test && gjsify run test:gjs",
@@ -60,8 +68,8 @@
60
68
  "@girs/gobject-2.0": "^4.1.0"
61
69
  },
62
70
  "devDependencies": {
63
- "@gjsify/cli": "^0.22.0",
64
- "@gjsify/unit": "^0.22.0",
71
+ "@gjsify/cli": "^0.24.1",
72
+ "@gjsify/unit": "^0.24.1",
65
73
  "@ts-for-gir/cli": "^4.1.0",
66
74
  "@types/node": "^25.9.2",
67
75
  "typescript": "^6.0.3"
@@ -0,0 +1,672 @@
1
+ <?xml version="1.0"?>
2
+ <!-- GjsifyHttp2-1.0.gir generated by valac 0.56.19, do not modify. -->
3
+ <repository version="1.2" xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:doc="http://www.gtk.org/introspection/doc/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
4
+ <include name="GObject" version="2.0"/>
5
+ <include name="GLib" version="2.0"/>
6
+ <package name="gjsifyhttp2"/>
7
+ <c:include name="nghttp2-helpers.h"/>
8
+ <c:include name="gjsifyhttp2.h"/>
9
+ <doc:format name="unknown"/>
10
+ <namespace name="GjsifyHttp2" version="1.0" shared-library="libgjsifyhttp2.dylib" c:prefix="GjsifyHttp2" c:identifier-prefixes="GjsifyHttp2" c:symbol-prefixes="gjsify_http2">
11
+ <class name="FrameEncoder" c:type="GjsifyHttp2FrameEncoder" c:symbol-prefix="frame_encoder" glib:type-name="GjsifyHttp2FrameEncoder" glib:get-type="gjsify_http2_frame_encoder_get_type" glib:type-struct="FrameEncoderClass" parent="GObject.Object">
12
+ <field name="parent_instance" readable="0" private="1">
13
+ <type name="GObject.Object" c:type="GObject"/>
14
+ </field>
15
+ <field name="priv" readable="0" private="1">
16
+ <type name="FrameEncoderPrivate" c:type="GjsifyHttp2FrameEncoderPrivate*"/>
17
+ </field>
18
+ <constant name="TYPE_DATA" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_TYPE_DATA" value="0x00">
19
+ <type name="gint" c:type="gint"/>
20
+ </constant>
21
+ <constant name="TYPE_HEADERS" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_TYPE_HEADERS" value="0x01">
22
+ <type name="gint" c:type="gint"/>
23
+ </constant>
24
+ <constant name="TYPE_PRIORITY" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_TYPE_PRIORITY" value="0x02">
25
+ <type name="gint" c:type="gint"/>
26
+ </constant>
27
+ <constant name="TYPE_RST_STREAM" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_TYPE_RST_STREAM" value="0x03">
28
+ <type name="gint" c:type="gint"/>
29
+ </constant>
30
+ <constant name="TYPE_SETTINGS" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_TYPE_SETTINGS" value="0x04">
31
+ <type name="gint" c:type="gint"/>
32
+ </constant>
33
+ <constant name="TYPE_PUSH_PROMISE" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_TYPE_PUSH_PROMISE" value="0x05">
34
+ <type name="gint" c:type="gint"/>
35
+ </constant>
36
+ <constant name="TYPE_PING" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_TYPE_PING" value="0x06">
37
+ <type name="gint" c:type="gint"/>
38
+ </constant>
39
+ <constant name="TYPE_GOAWAY" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_TYPE_GOAWAY" value="0x07">
40
+ <type name="gint" c:type="gint"/>
41
+ </constant>
42
+ <constant name="TYPE_WINDOW_UPDATE" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_TYPE_WINDOW_UPDATE" value="0x08">
43
+ <type name="gint" c:type="gint"/>
44
+ </constant>
45
+ <constant name="FLAG_END_STREAM" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_FLAG_END_STREAM" value="0x01">
46
+ <type name="gint" c:type="gint"/>
47
+ </constant>
48
+ <constant name="FLAG_ACK" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_FLAG_ACK" value="0x01">
49
+ <type name="gint" c:type="gint"/>
50
+ </constant>
51
+ <constant name="FLAG_END_HEADERS" c:identifier="GJSIFY_HTTP2_FRAME_ENCODER_FLAG_END_HEADERS" value="0x04">
52
+ <type name="gint" c:type="gint"/>
53
+ </constant>
54
+ <method name="encode_headers" c:identifier="gjsify_http2_frame_encoder_encode_headers">
55
+ <return-value transfer-ownership="full" nullable="1">
56
+ <type name="GLib.Bytes" c:type="GBytes*"/>
57
+ </return-value>
58
+ <parameters>
59
+ <instance-parameter name="self" transfer-ownership="none">
60
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
61
+ </instance-parameter>
62
+ <parameter name="names" transfer-ownership="none">
63
+ <array length="1" c:type="gchar**">
64
+ <type name="utf8" c:type="gchar*"/>
65
+ </array>
66
+ </parameter>
67
+ <parameter name="names_length1" transfer-ownership="none">
68
+ <type name="gint" c:type="gint"/>
69
+ </parameter>
70
+ <parameter name="values" transfer-ownership="none">
71
+ <array length="3" c:type="gchar**">
72
+ <type name="utf8" c:type="gchar*"/>
73
+ </array>
74
+ </parameter>
75
+ <parameter name="values_length1" transfer-ownership="none">
76
+ <type name="gint" c:type="gint"/>
77
+ </parameter>
78
+ </parameters>
79
+ </method>
80
+ <method name="build_data_frame" c:identifier="gjsify_http2_frame_encoder_build_data_frame">
81
+ <return-value transfer-ownership="full">
82
+ <type name="GLib.Bytes" c:type="GBytes*"/>
83
+ </return-value>
84
+ <parameters>
85
+ <instance-parameter name="self" transfer-ownership="none">
86
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
87
+ </instance-parameter>
88
+ <parameter name="stream_id" transfer-ownership="none">
89
+ <type name="guint32" c:type="guint32"/>
90
+ </parameter>
91
+ <parameter name="end_stream" transfer-ownership="none">
92
+ <type name="gboolean" c:type="gboolean"/>
93
+ </parameter>
94
+ <parameter name="payload" transfer-ownership="none">
95
+ <type name="GLib.Bytes" c:type="GBytes*"/>
96
+ </parameter>
97
+ </parameters>
98
+ </method>
99
+ <method name="build_headers_frame" c:identifier="gjsify_http2_frame_encoder_build_headers_frame">
100
+ <return-value transfer-ownership="full">
101
+ <type name="GLib.Bytes" c:type="GBytes*"/>
102
+ </return-value>
103
+ <parameters>
104
+ <instance-parameter name="self" transfer-ownership="none">
105
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
106
+ </instance-parameter>
107
+ <parameter name="stream_id" transfer-ownership="none">
108
+ <type name="guint32" c:type="guint32"/>
109
+ </parameter>
110
+ <parameter name="end_stream" transfer-ownership="none">
111
+ <type name="gboolean" c:type="gboolean"/>
112
+ </parameter>
113
+ <parameter name="end_headers" transfer-ownership="none">
114
+ <type name="gboolean" c:type="gboolean"/>
115
+ </parameter>
116
+ <parameter name="header_block" transfer-ownership="none">
117
+ <type name="GLib.Bytes" c:type="GBytes*"/>
118
+ </parameter>
119
+ </parameters>
120
+ </method>
121
+ <method name="build_push_promise" c:identifier="gjsify_http2_frame_encoder_build_push_promise">
122
+ <return-value transfer-ownership="full">
123
+ <type name="GLib.Bytes" c:type="GBytes*"/>
124
+ </return-value>
125
+ <parameters>
126
+ <instance-parameter name="self" transfer-ownership="none">
127
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
128
+ </instance-parameter>
129
+ <parameter name="associated_stream_id" transfer-ownership="none">
130
+ <type name="guint32" c:type="guint32"/>
131
+ </parameter>
132
+ <parameter name="promised_stream_id" transfer-ownership="none">
133
+ <type name="guint32" c:type="guint32"/>
134
+ </parameter>
135
+ <parameter name="header_block" transfer-ownership="none">
136
+ <type name="GLib.Bytes" c:type="GBytes*"/>
137
+ </parameter>
138
+ </parameters>
139
+ </method>
140
+ <method name="build_settings_frame" c:identifier="gjsify_http2_frame_encoder_build_settings_frame">
141
+ <return-value transfer-ownership="full">
142
+ <type name="GLib.Bytes" c:type="GBytes*"/>
143
+ </return-value>
144
+ <parameters>
145
+ <instance-parameter name="self" transfer-ownership="none">
146
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
147
+ </instance-parameter>
148
+ <parameter name="ack" transfer-ownership="none">
149
+ <type name="gboolean" c:type="gboolean"/>
150
+ </parameter>
151
+ <parameter name="ids" transfer-ownership="none">
152
+ <array length="2" c:type="guint16*">
153
+ <type name="guint16" c:type="guint16"/>
154
+ </array>
155
+ </parameter>
156
+ <parameter name="ids_length1" transfer-ownership="none">
157
+ <type name="gint" c:type="gint"/>
158
+ </parameter>
159
+ <parameter name="values" transfer-ownership="none">
160
+ <array length="4" c:type="guint32*">
161
+ <type name="guint32" c:type="guint32"/>
162
+ </array>
163
+ </parameter>
164
+ <parameter name="values_length1" transfer-ownership="none">
165
+ <type name="gint" c:type="gint"/>
166
+ </parameter>
167
+ </parameters>
168
+ </method>
169
+ <method name="build_window_update_frame" c:identifier="gjsify_http2_frame_encoder_build_window_update_frame">
170
+ <return-value transfer-ownership="full">
171
+ <type name="GLib.Bytes" c:type="GBytes*"/>
172
+ </return-value>
173
+ <parameters>
174
+ <instance-parameter name="self" transfer-ownership="none">
175
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
176
+ </instance-parameter>
177
+ <parameter name="stream_id" transfer-ownership="none">
178
+ <type name="guint32" c:type="guint32"/>
179
+ </parameter>
180
+ <parameter name="increment" transfer-ownership="none">
181
+ <type name="guint32" c:type="guint32"/>
182
+ </parameter>
183
+ </parameters>
184
+ </method>
185
+ <method name="build_ping_frame" c:identifier="gjsify_http2_frame_encoder_build_ping_frame">
186
+ <return-value transfer-ownership="full">
187
+ <type name="GLib.Bytes" c:type="GBytes*"/>
188
+ </return-value>
189
+ <parameters>
190
+ <instance-parameter name="self" transfer-ownership="none">
191
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
192
+ </instance-parameter>
193
+ <parameter name="ack" transfer-ownership="none">
194
+ <type name="gboolean" c:type="gboolean"/>
195
+ </parameter>
196
+ <parameter name="payload" transfer-ownership="none" nullable="1">
197
+ <type name="GLib.Bytes" c:type="GBytes*"/>
198
+ </parameter>
199
+ </parameters>
200
+ </method>
201
+ <method name="build_rst_stream_frame" c:identifier="gjsify_http2_frame_encoder_build_rst_stream_frame">
202
+ <return-value transfer-ownership="full">
203
+ <type name="GLib.Bytes" c:type="GBytes*"/>
204
+ </return-value>
205
+ <parameters>
206
+ <instance-parameter name="self" transfer-ownership="none">
207
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
208
+ </instance-parameter>
209
+ <parameter name="stream_id" transfer-ownership="none">
210
+ <type name="guint32" c:type="guint32"/>
211
+ </parameter>
212
+ <parameter name="error_code" transfer-ownership="none">
213
+ <type name="guint32" c:type="guint32"/>
214
+ </parameter>
215
+ </parameters>
216
+ </method>
217
+ <method name="build_goaway_frame" c:identifier="gjsify_http2_frame_encoder_build_goaway_frame">
218
+ <return-value transfer-ownership="full">
219
+ <type name="GLib.Bytes" c:type="GBytes*"/>
220
+ </return-value>
221
+ <parameters>
222
+ <instance-parameter name="self" transfer-ownership="none">
223
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
224
+ </instance-parameter>
225
+ <parameter name="last_stream_id" transfer-ownership="none">
226
+ <type name="guint32" c:type="guint32"/>
227
+ </parameter>
228
+ <parameter name="error_code" transfer-ownership="none">
229
+ <type name="guint32" c:type="guint32"/>
230
+ </parameter>
231
+ <parameter name="debug_data" transfer-ownership="none" nullable="1">
232
+ <type name="GLib.Bytes" c:type="GBytes*"/>
233
+ </parameter>
234
+ </parameters>
235
+ </method>
236
+ <method name="nghttp2_version" c:identifier="gjsify_http2_frame_encoder_nghttp2_version">
237
+ <return-value transfer-ownership="none">
238
+ <type name="utf8" c:type="const gchar*"/>
239
+ </return-value>
240
+ <parameters>
241
+ <instance-parameter name="self" transfer-ownership="none">
242
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
243
+ </instance-parameter>
244
+ </parameters>
245
+ </method>
246
+ <constructor name="new" c:identifier="gjsify_http2_frame_encoder_new">
247
+ <return-value transfer-ownership="full">
248
+ <type name="GjsifyHttp2.FrameEncoder" c:type="GjsifyHttp2FrameEncoder*"/>
249
+ </return-value>
250
+ </constructor>
251
+ </class>
252
+ <record name="FrameEncoderClass" c:type="GjsifyHttp2FrameEncoderClass" glib:is-gtype-struct-for="FrameEncoder">
253
+ <field name="parent_class" readable="0" private="1">
254
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
255
+ </field>
256
+ </record>
257
+ <record name="FrameEncoderPrivate" c:type="GjsifyHttp2FrameEncoderPrivate" disguised="1"/>
258
+ <class name="StreamIdAllocator" c:type="GjsifyHttp2StreamIdAllocator" c:symbol-prefix="stream_id_allocator" glib:type-name="GjsifyHttp2StreamIdAllocator" glib:get-type="gjsify_http2_stream_id_allocator_get_type" glib:type-struct="StreamIdAllocatorClass" parent="GObject.Object">
259
+ <field name="parent_instance" readable="0" private="1">
260
+ <type name="GObject.Object" c:type="GObject"/>
261
+ </field>
262
+ <field name="priv" readable="0" private="1">
263
+ <type name="StreamIdAllocatorPrivate" c:type="GjsifyHttp2StreamIdAllocatorPrivate*"/>
264
+ </field>
265
+ <constant name="MAX_STREAM_ID" c:identifier="GJSIFY_HTTP2_STREAM_ID_ALLOCATOR_MAX_STREAM_ID" value="0x7fffffff">
266
+ <type name="guint" c:type="guint"/>
267
+ </constant>
268
+ <method name="next_promised" c:identifier="gjsify_http2_stream_id_allocator_next_promised">
269
+ <return-value transfer-ownership="full">
270
+ <type name="guint32" c:type="guint32"/>
271
+ </return-value>
272
+ <parameters>
273
+ <instance-parameter name="self" transfer-ownership="none">
274
+ <type name="GjsifyHttp2.StreamIdAllocator" c:type="GjsifyHttp2StreamIdAllocator*"/>
275
+ </instance-parameter>
276
+ </parameters>
277
+ </method>
278
+ <method name="record_client_stream" c:identifier="gjsify_http2_stream_id_allocator_record_client_stream">
279
+ <return-value transfer-ownership="full">
280
+ <type name="none" c:type="void"/>
281
+ </return-value>
282
+ <parameters>
283
+ <instance-parameter name="self" transfer-ownership="none">
284
+ <type name="GjsifyHttp2.StreamIdAllocator" c:type="GjsifyHttp2StreamIdAllocator*"/>
285
+ </instance-parameter>
286
+ <parameter name="id" transfer-ownership="none">
287
+ <type name="guint32" c:type="guint32"/>
288
+ </parameter>
289
+ </parameters>
290
+ </method>
291
+ <constructor name="new" c:identifier="gjsify_http2_stream_id_allocator_new">
292
+ <return-value transfer-ownership="full">
293
+ <type name="GjsifyHttp2.StreamIdAllocator" c:type="GjsifyHttp2StreamIdAllocator*"/>
294
+ </return-value>
295
+ </constructor>
296
+ <property name="last-client-stream-id">
297
+ <type name="guint32" c:type="guint32"/>
298
+ </property>
299
+ <method name="get_last_client_stream_id" c:identifier="gjsify_http2_stream_id_allocator_get_last_client_stream_id">
300
+ <return-value transfer-ownership="none">
301
+ <type name="guint32" c:type="guint32"/>
302
+ </return-value>
303
+ <parameters>
304
+ <instance-parameter name="self" transfer-ownership="none">
305
+ <type name="GjsifyHttp2.StreamIdAllocator" c:type="GjsifyHttp2StreamIdAllocator*"/>
306
+ </instance-parameter>
307
+ </parameters>
308
+ </method>
309
+ <property name="remaining-pushes">
310
+ <type name="guint32" c:type="guint32"/>
311
+ </property>
312
+ <method name="get_remaining_pushes" c:identifier="gjsify_http2_stream_id_allocator_get_remaining_pushes">
313
+ <return-value transfer-ownership="none">
314
+ <type name="guint32" c:type="guint32"/>
315
+ </return-value>
316
+ <parameters>
317
+ <instance-parameter name="self" transfer-ownership="none">
318
+ <type name="GjsifyHttp2.StreamIdAllocator" c:type="GjsifyHttp2StreamIdAllocator*"/>
319
+ </instance-parameter>
320
+ </parameters>
321
+ </method>
322
+ </class>
323
+ <record name="StreamIdAllocatorClass" c:type="GjsifyHttp2StreamIdAllocatorClass" glib:is-gtype-struct-for="StreamIdAllocator">
324
+ <field name="parent_class" readable="0" private="1">
325
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
326
+ </field>
327
+ </record>
328
+ <record name="StreamIdAllocatorPrivate" c:type="GjsifyHttp2StreamIdAllocatorPrivate" disguised="1"/>
329
+ <class name="SessionBridge" c:type="GjsifyHttp2SessionBridge" c:symbol-prefix="session_bridge" glib:type-name="GjsifyHttp2SessionBridge" glib:get-type="gjsify_http2_session_bridge_get_type" glib:type-struct="SessionBridgeClass" parent="GObject.Object">
330
+ <field name="parent_instance" readable="0" private="1">
331
+ <type name="GObject.Object" c:type="GObject"/>
332
+ </field>
333
+ <field name="priv" readable="0" private="1">
334
+ <type name="SessionBridgePrivate" c:type="GjsifyHttp2SessionBridgePrivate*"/>
335
+ </field>
336
+ <function name="new_server" c:identifier="gjsify_http2_session_bridge_new_server">
337
+ <return-value transfer-ownership="full" nullable="1">
338
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
339
+ </return-value>
340
+ </function>
341
+ <function name="new_client" c:identifier="gjsify_http2_session_bridge_new_client">
342
+ <return-value transfer-ownership="full" nullable="1">
343
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
344
+ </return-value>
345
+ </function>
346
+ <function name="is_client_preface" c:identifier="gjsify_http2_session_bridge_is_client_preface">
347
+ <return-value transfer-ownership="full">
348
+ <type name="gboolean" c:type="gboolean"/>
349
+ </return-value>
350
+ <parameters>
351
+ <parameter name="bytes" transfer-ownership="none" nullable="1">
352
+ <type name="GLib.Bytes" c:type="GBytes*"/>
353
+ </parameter>
354
+ </parameters>
355
+ </function>
356
+ <function name="preface_length" c:identifier="gjsify_http2_session_bridge_preface_length">
357
+ <return-value transfer-ownership="full">
358
+ <type name="guint" c:type="guint"/>
359
+ </return-value>
360
+ </function>
361
+ <method name="feed_input" c:identifier="gjsify_http2_session_bridge_feed_input">
362
+ <return-value transfer-ownership="full">
363
+ <type name="glong" c:type="gssize"/>
364
+ </return-value>
365
+ <parameters>
366
+ <instance-parameter name="self" transfer-ownership="none">
367
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
368
+ </instance-parameter>
369
+ <parameter name="input" transfer-ownership="none">
370
+ <type name="GLib.Bytes" c:type="GBytes*"/>
371
+ </parameter>
372
+ </parameters>
373
+ </method>
374
+ <method name="drain_output" c:identifier="gjsify_http2_session_bridge_drain_output">
375
+ <return-value transfer-ownership="full">
376
+ <type name="GLib.Bytes" c:type="GBytes*"/>
377
+ </return-value>
378
+ <parameters>
379
+ <instance-parameter name="self" transfer-ownership="none">
380
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
381
+ </instance-parameter>
382
+ </parameters>
383
+ </method>
384
+ <method name="want_read" c:identifier="gjsify_http2_session_bridge_want_read">
385
+ <return-value transfer-ownership="full">
386
+ <type name="gboolean" c:type="gboolean"/>
387
+ </return-value>
388
+ <parameters>
389
+ <instance-parameter name="self" transfer-ownership="none">
390
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
391
+ </instance-parameter>
392
+ </parameters>
393
+ </method>
394
+ <method name="want_write" c:identifier="gjsify_http2_session_bridge_want_write">
395
+ <return-value transfer-ownership="full">
396
+ <type name="gboolean" c:type="gboolean"/>
397
+ </return-value>
398
+ <parameters>
399
+ <instance-parameter name="self" transfer-ownership="none">
400
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
401
+ </instance-parameter>
402
+ </parameters>
403
+ </method>
404
+ <method name="submit_settings" c:identifier="gjsify_http2_session_bridge_submit_settings">
405
+ <return-value transfer-ownership="full">
406
+ <type name="gint" c:type="gint"/>
407
+ </return-value>
408
+ <parameters>
409
+ <instance-parameter name="self" transfer-ownership="none">
410
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
411
+ </instance-parameter>
412
+ </parameters>
413
+ </method>
414
+ <method name="submit_response" c:identifier="gjsify_http2_session_bridge_submit_response">
415
+ <return-value transfer-ownership="full">
416
+ <type name="gint" c:type="gint"/>
417
+ </return-value>
418
+ <parameters>
419
+ <instance-parameter name="self" transfer-ownership="none">
420
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
421
+ </instance-parameter>
422
+ <parameter name="stream_id" transfer-ownership="none">
423
+ <type name="guint32" c:type="guint32"/>
424
+ </parameter>
425
+ <parameter name="names" transfer-ownership="none">
426
+ <array length="2" c:type="gchar**">
427
+ <type name="utf8" c:type="gchar*"/>
428
+ </array>
429
+ </parameter>
430
+ <parameter name="names_length1" transfer-ownership="none">
431
+ <type name="gint" c:type="gint"/>
432
+ </parameter>
433
+ <parameter name="values" transfer-ownership="none">
434
+ <array length="4" c:type="gchar**">
435
+ <type name="utf8" c:type="gchar*"/>
436
+ </array>
437
+ </parameter>
438
+ <parameter name="values_length1" transfer-ownership="none">
439
+ <type name="gint" c:type="gint"/>
440
+ </parameter>
441
+ <parameter name="end_stream" transfer-ownership="none">
442
+ <type name="gboolean" c:type="gboolean"/>
443
+ </parameter>
444
+ </parameters>
445
+ </method>
446
+ <method name="submit_request" c:identifier="gjsify_http2_session_bridge_submit_request">
447
+ <return-value transfer-ownership="full">
448
+ <type name="guint32" c:type="guint32"/>
449
+ </return-value>
450
+ <parameters>
451
+ <instance-parameter name="self" transfer-ownership="none">
452
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
453
+ </instance-parameter>
454
+ <parameter name="names" transfer-ownership="none">
455
+ <array length="1" c:type="gchar**">
456
+ <type name="utf8" c:type="gchar*"/>
457
+ </array>
458
+ </parameter>
459
+ <parameter name="names_length1" transfer-ownership="none">
460
+ <type name="gint" c:type="gint"/>
461
+ </parameter>
462
+ <parameter name="values" transfer-ownership="none">
463
+ <array length="3" c:type="gchar**">
464
+ <type name="utf8" c:type="gchar*"/>
465
+ </array>
466
+ </parameter>
467
+ <parameter name="values_length1" transfer-ownership="none">
468
+ <type name="gint" c:type="gint"/>
469
+ </parameter>
470
+ <parameter name="end_stream" transfer-ownership="none">
471
+ <type name="gboolean" c:type="gboolean"/>
472
+ </parameter>
473
+ </parameters>
474
+ </method>
475
+ <method name="submit_data" c:identifier="gjsify_http2_session_bridge_submit_data">
476
+ <return-value transfer-ownership="full">
477
+ <type name="gint" c:type="gint"/>
478
+ </return-value>
479
+ <parameters>
480
+ <instance-parameter name="self" transfer-ownership="none">
481
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
482
+ </instance-parameter>
483
+ <parameter name="stream_id" transfer-ownership="none">
484
+ <type name="guint32" c:type="guint32"/>
485
+ </parameter>
486
+ <parameter name="data" transfer-ownership="none">
487
+ <type name="GLib.Bytes" c:type="GBytes*"/>
488
+ </parameter>
489
+ <parameter name="end_stream" transfer-ownership="none">
490
+ <type name="gboolean" c:type="gboolean"/>
491
+ </parameter>
492
+ </parameters>
493
+ </method>
494
+ <method name="submit_push_promise" c:identifier="gjsify_http2_session_bridge_submit_push_promise">
495
+ <return-value transfer-ownership="full">
496
+ <type name="guint32" c:type="guint32"/>
497
+ </return-value>
498
+ <parameters>
499
+ <instance-parameter name="self" transfer-ownership="none">
500
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
501
+ </instance-parameter>
502
+ <parameter name="parent_id" transfer-ownership="none">
503
+ <type name="guint32" c:type="guint32"/>
504
+ </parameter>
505
+ <parameter name="names" transfer-ownership="none">
506
+ <array length="2" c:type="gchar**">
507
+ <type name="utf8" c:type="gchar*"/>
508
+ </array>
509
+ </parameter>
510
+ <parameter name="names_length1" transfer-ownership="none">
511
+ <type name="gint" c:type="gint"/>
512
+ </parameter>
513
+ <parameter name="values" transfer-ownership="none">
514
+ <array length="4" c:type="gchar**">
515
+ <type name="utf8" c:type="gchar*"/>
516
+ </array>
517
+ </parameter>
518
+ <parameter name="values_length1" transfer-ownership="none">
519
+ <type name="gint" c:type="gint"/>
520
+ </parameter>
521
+ </parameters>
522
+ </method>
523
+ <method name="submit_goaway" c:identifier="gjsify_http2_session_bridge_submit_goaway">
524
+ <return-value transfer-ownership="full">
525
+ <type name="gint" c:type="gint"/>
526
+ </return-value>
527
+ <parameters>
528
+ <instance-parameter name="self" transfer-ownership="none">
529
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
530
+ </instance-parameter>
531
+ <parameter name="last_stream_id" transfer-ownership="none">
532
+ <type name="guint32" c:type="guint32"/>
533
+ </parameter>
534
+ <parameter name="error_code" transfer-ownership="none">
535
+ <type name="guint32" c:type="guint32"/>
536
+ </parameter>
537
+ </parameters>
538
+ </method>
539
+ <method name="submit_rst_stream" c:identifier="gjsify_http2_session_bridge_submit_rst_stream">
540
+ <return-value transfer-ownership="full">
541
+ <type name="gint" c:type="gint"/>
542
+ </return-value>
543
+ <parameters>
544
+ <instance-parameter name="self" transfer-ownership="none">
545
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
546
+ </instance-parameter>
547
+ <parameter name="stream_id" transfer-ownership="none">
548
+ <type name="guint32" c:type="guint32"/>
549
+ </parameter>
550
+ <parameter name="error_code" transfer-ownership="none">
551
+ <type name="guint32" c:type="guint32"/>
552
+ </parameter>
553
+ </parameters>
554
+ </method>
555
+ <method name="close" c:identifier="gjsify_http2_session_bridge_close">
556
+ <return-value transfer-ownership="full">
557
+ <type name="none" c:type="void"/>
558
+ </return-value>
559
+ <parameters>
560
+ <instance-parameter name="self" transfer-ownership="none">
561
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
562
+ </instance-parameter>
563
+ </parameters>
564
+ </method>
565
+ <method name="dispatch_pending" c:identifier="gjsify_http2_session_bridge_dispatch_pending">
566
+ <return-value transfer-ownership="full">
567
+ <type name="none" c:type="void"/>
568
+ </return-value>
569
+ <parameters>
570
+ <instance-parameter name="self" transfer-ownership="none">
571
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
572
+ </instance-parameter>
573
+ </parameters>
574
+ </method>
575
+ <constructor name="new" c:identifier="gjsify_http2_session_bridge_new">
576
+ <return-value transfer-ownership="full">
577
+ <type name="GjsifyHttp2.SessionBridge" c:type="GjsifyHttp2SessionBridge*"/>
578
+ </return-value>
579
+ </constructor>
580
+ <glib:signal name="headers-received">
581
+ <return-value transfer-ownership="full">
582
+ <type name="none" c:type="void"/>
583
+ </return-value>
584
+ <parameters>
585
+ <parameter name="stream_id" transfer-ownership="none">
586
+ <type name="guint32" c:type="guint32"/>
587
+ </parameter>
588
+ <parameter name="headers" transfer-ownership="none">
589
+ <type name="GLib.Variant" c:type="GVariant*"/>
590
+ </parameter>
591
+ <parameter name="end_stream" transfer-ownership="none">
592
+ <type name="gboolean" c:type="gboolean"/>
593
+ </parameter>
594
+ </parameters>
595
+ </glib:signal>
596
+ <glib:signal name="data-received">
597
+ <return-value transfer-ownership="full">
598
+ <type name="none" c:type="void"/>
599
+ </return-value>
600
+ <parameters>
601
+ <parameter name="stream_id" transfer-ownership="none">
602
+ <type name="guint32" c:type="guint32"/>
603
+ </parameter>
604
+ <parameter name="chunk" transfer-ownership="none">
605
+ <type name="GLib.Bytes" c:type="GBytes*"/>
606
+ </parameter>
607
+ <parameter name="end_stream" transfer-ownership="none">
608
+ <type name="gboolean" c:type="gboolean"/>
609
+ </parameter>
610
+ </parameters>
611
+ </glib:signal>
612
+ <glib:signal name="stream-closed">
613
+ <return-value transfer-ownership="full">
614
+ <type name="none" c:type="void"/>
615
+ </return-value>
616
+ <parameters>
617
+ <parameter name="stream_id" transfer-ownership="none">
618
+ <type name="guint32" c:type="guint32"/>
619
+ </parameter>
620
+ <parameter name="error_code" transfer-ownership="none">
621
+ <type name="guint32" c:type="guint32"/>
622
+ </parameter>
623
+ </parameters>
624
+ </glib:signal>
625
+ <glib:signal name="frame-send-ready">
626
+ <return-value transfer-ownership="full">
627
+ <type name="none" c:type="void"/>
628
+ </return-value>
629
+ </glib:signal>
630
+ <glib:signal name="goaway-received">
631
+ <return-value transfer-ownership="full">
632
+ <type name="none" c:type="void"/>
633
+ </return-value>
634
+ <parameters>
635
+ <parameter name="last_stream_id" transfer-ownership="none">
636
+ <type name="guint32" c:type="guint32"/>
637
+ </parameter>
638
+ <parameter name="error_code" transfer-ownership="none">
639
+ <type name="guint32" c:type="guint32"/>
640
+ </parameter>
641
+ </parameters>
642
+ </glib:signal>
643
+ <glib:signal name="settings-received">
644
+ <return-value transfer-ownership="full">
645
+ <type name="none" c:type="void"/>
646
+ </return-value>
647
+ </glib:signal>
648
+ <glib:signal name="push-promise-received">
649
+ <return-value transfer-ownership="full">
650
+ <type name="none" c:type="void"/>
651
+ </return-value>
652
+ <parameters>
653
+ <parameter name="stream_id" transfer-ownership="none">
654
+ <type name="guint32" c:type="guint32"/>
655
+ </parameter>
656
+ <parameter name="promised_stream_id" transfer-ownership="none">
657
+ <type name="guint32" c:type="guint32"/>
658
+ </parameter>
659
+ <parameter name="headers" transfer-ownership="none">
660
+ <type name="GLib.Variant" c:type="GVariant*"/>
661
+ </parameter>
662
+ </parameters>
663
+ </glib:signal>
664
+ </class>
665
+ <record name="SessionBridgeClass" c:type="GjsifyHttp2SessionBridgeClass" glib:is-gtype-struct-for="SessionBridge">
666
+ <field name="parent_class" readable="0" private="1">
667
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
668
+ </field>
669
+ </record>
670
+ <record name="SessionBridgePrivate" c:type="GjsifyHttp2SessionBridgePrivate" disguised="1"/>
671
+ </namespace>
672
+ </repository>
index 4565720..a70297c 100644
Binary file
index b3a102d..0b88f0a 100755
Binary file