@xberg-io/opencode-xberg 1.3.8 → 1.4.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.
Files changed (152) hide show
  1. package/.opencode/ai-rulez-bundle.json +17 -16
  2. package/.opencode/ai-rulez-content.js +3 -3
  3. package/.opencode/commands/xberg-extract.md +3 -3
  4. package/.opencode/commands/xberg-ocr.md +3 -3
  5. package/.opencode/plugins/xberg.js +1 -1
  6. package/.opencode/skills/xberg/SKILL.md +20 -25
  7. package/.opencode/skills/xberg/index.md +10 -0
  8. package/.opencode/skills/xberg/references/advanced-features.md +1 -1
  9. package/.opencode/skills/xberg/references/cli-reference.md +6 -4
  10. package/.opencode/skills/xberg/references/configuration.md +6 -6
  11. package/.opencode/skills/xberg/references/nodejs-api.md +1 -1
  12. package/.opencode/skills/xberg/references/other-bindings.md +1 -1
  13. package/.opencode/skills/xberg/references/python-api.md +6 -6
  14. package/.opencode/skills/xberg/references/rust-api.md +5 -5
  15. package/.opencode/skills/xberg/references/supported-formats.md +1 -1
  16. package/.opencode/skills/{batch-extraction → xberg-batch-extraction}/SKILL.md +11 -9
  17. package/.opencode/skills/xberg-batch-extraction/index.md +10 -0
  18. package/.opencode/skills/xberg-batch-extraction/references/advanced-features.md +628 -0
  19. package/.opencode/skills/xberg-batch-extraction/references/cli-reference.md +464 -0
  20. package/.opencode/skills/xberg-batch-extraction/references/configuration.md +587 -0
  21. package/.opencode/skills/xberg-batch-extraction/references/nodejs-api.md +485 -0
  22. package/.opencode/skills/xberg-batch-extraction/references/other-bindings.md +345 -0
  23. package/.opencode/skills/xberg-batch-extraction/references/python-api.md +657 -0
  24. package/.opencode/skills/xberg-batch-extraction/references/rust-api.md +412 -0
  25. package/.opencode/skills/xberg-batch-extraction/references/supported-formats.md +252 -0
  26. package/{.pi/skills/chunking → .opencode/skills/xberg-chunking}/SKILL.md +5 -5
  27. package/.opencode/skills/xberg-chunking/index.md +10 -0
  28. package/.opencode/skills/xberg-chunking/references/advanced-features.md +628 -0
  29. package/.opencode/skills/xberg-chunking/references/cli-reference.md +464 -0
  30. package/.opencode/skills/xberg-chunking/references/configuration.md +587 -0
  31. package/.opencode/skills/xberg-chunking/references/nodejs-api.md +485 -0
  32. package/.opencode/skills/xberg-chunking/references/other-bindings.md +345 -0
  33. package/.opencode/skills/xberg-chunking/references/python-api.md +657 -0
  34. package/.opencode/skills/xberg-chunking/references/rust-api.md +412 -0
  35. package/.opencode/skills/xberg-chunking/references/supported-formats.md +252 -0
  36. package/.opencode/skills/{extracting-keywords → xberg-extracting-keywords}/SKILL.md +7 -8
  37. package/.opencode/skills/xberg-extracting-keywords/index.md +10 -0
  38. package/.opencode/skills/xberg-extracting-keywords/references/advanced-features.md +628 -0
  39. package/.opencode/skills/xberg-extracting-keywords/references/cli-reference.md +464 -0
  40. package/.opencode/skills/xberg-extracting-keywords/references/configuration.md +587 -0
  41. package/.opencode/skills/xberg-extracting-keywords/references/nodejs-api.md +485 -0
  42. package/.opencode/skills/xberg-extracting-keywords/references/other-bindings.md +345 -0
  43. package/.opencode/skills/xberg-extracting-keywords/references/python-api.md +657 -0
  44. package/.opencode/skills/xberg-extracting-keywords/references/rust-api.md +412 -0
  45. package/.opencode/skills/xberg-extracting-keywords/references/supported-formats.md +252 -0
  46. package/{.pi/skills/extracting-tables → .opencode/skills/xberg-extracting-tables}/SKILL.md +4 -5
  47. package/.opencode/skills/xberg-extracting-tables/index.md +10 -0
  48. package/.opencode/skills/xberg-extracting-tables/references/advanced-features.md +628 -0
  49. package/.opencode/skills/xberg-extracting-tables/references/cli-reference.md +464 -0
  50. package/.opencode/skills/xberg-extracting-tables/references/configuration.md +587 -0
  51. package/.opencode/skills/xberg-extracting-tables/references/nodejs-api.md +485 -0
  52. package/.opencode/skills/xberg-extracting-tables/references/other-bindings.md +345 -0
  53. package/.opencode/skills/xberg-extracting-tables/references/python-api.md +657 -0
  54. package/.opencode/skills/xberg-extracting-tables/references/rust-api.md +412 -0
  55. package/.opencode/skills/xberg-extracting-tables/references/supported-formats.md +252 -0
  56. package/{.pi/skills/extracting-with-ocr → .opencode/skills/xberg-extracting-with-ocr}/SKILL.md +5 -6
  57. package/.opencode/skills/xberg-extracting-with-ocr/index.md +10 -0
  58. package/.opencode/skills/xberg-extracting-with-ocr/references/advanced-features.md +628 -0
  59. package/.opencode/skills/xberg-extracting-with-ocr/references/cli-reference.md +464 -0
  60. package/.opencode/skills/xberg-extracting-with-ocr/references/configuration.md +587 -0
  61. package/.opencode/skills/xberg-extracting-with-ocr/references/nodejs-api.md +485 -0
  62. package/.opencode/skills/xberg-extracting-with-ocr/references/other-bindings.md +345 -0
  63. package/.opencode/skills/xberg-extracting-with-ocr/references/python-api.md +657 -0
  64. package/.opencode/skills/xberg-extracting-with-ocr/references/rust-api.md +412 -0
  65. package/.opencode/skills/xberg-extracting-with-ocr/references/supported-formats.md +252 -0
  66. package/.opencode/skills/{picking-a-format → xberg-picking-a-format}/SKILL.md +4 -4
  67. package/.opencode/skills/xberg-picking-a-format/index.md +10 -0
  68. package/.opencode/skills/xberg-picking-a-format/references/advanced-features.md +628 -0
  69. package/.opencode/skills/xberg-picking-a-format/references/cli-reference.md +464 -0
  70. package/.opencode/skills/xberg-picking-a-format/references/configuration.md +587 -0
  71. package/.opencode/skills/xberg-picking-a-format/references/nodejs-api.md +485 -0
  72. package/.opencode/skills/xberg-picking-a-format/references/other-bindings.md +345 -0
  73. package/.opencode/skills/xberg-picking-a-format/references/python-api.md +657 -0
  74. package/.opencode/skills/xberg-picking-a-format/references/rust-api.md +412 -0
  75. package/.opencode/skills/xberg-picking-a-format/references/supported-formats.md +252 -0
  76. package/.pi/prompts/xberg-extract.md +1 -1
  77. package/.pi/prompts/xberg-ocr.md +1 -1
  78. package/.pi/skills/xberg/SKILL.md +20 -25
  79. package/.pi/skills/xberg/index.md +10 -0
  80. package/.pi/skills/xberg/references/advanced-features.md +1 -1
  81. package/.pi/skills/xberg/references/cli-reference.md +6 -4
  82. package/.pi/skills/xberg/references/configuration.md +6 -6
  83. package/.pi/skills/xberg/references/nodejs-api.md +1 -1
  84. package/.pi/skills/xberg/references/other-bindings.md +1 -1
  85. package/.pi/skills/xberg/references/python-api.md +6 -6
  86. package/.pi/skills/xberg/references/rust-api.md +5 -5
  87. package/.pi/skills/xberg/references/supported-formats.md +1 -1
  88. package/.pi/skills/{batch-extraction → xberg-batch-extraction}/SKILL.md +11 -9
  89. package/.pi/skills/xberg-batch-extraction/index.md +10 -0
  90. package/.pi/skills/xberg-batch-extraction/references/advanced-features.md +628 -0
  91. package/.pi/skills/xberg-batch-extraction/references/cli-reference.md +464 -0
  92. package/.pi/skills/xberg-batch-extraction/references/configuration.md +587 -0
  93. package/.pi/skills/xberg-batch-extraction/references/nodejs-api.md +485 -0
  94. package/.pi/skills/xberg-batch-extraction/references/other-bindings.md +345 -0
  95. package/.pi/skills/xberg-batch-extraction/references/python-api.md +657 -0
  96. package/.pi/skills/xberg-batch-extraction/references/rust-api.md +412 -0
  97. package/.pi/skills/xberg-batch-extraction/references/supported-formats.md +252 -0
  98. package/{.opencode/skills/chunking → .pi/skills/xberg-chunking}/SKILL.md +5 -5
  99. package/.pi/skills/xberg-chunking/index.md +10 -0
  100. package/.pi/skills/xberg-chunking/references/advanced-features.md +628 -0
  101. package/.pi/skills/xberg-chunking/references/cli-reference.md +464 -0
  102. package/.pi/skills/xberg-chunking/references/configuration.md +587 -0
  103. package/.pi/skills/xberg-chunking/references/nodejs-api.md +485 -0
  104. package/.pi/skills/xberg-chunking/references/other-bindings.md +345 -0
  105. package/.pi/skills/xberg-chunking/references/python-api.md +657 -0
  106. package/.pi/skills/xberg-chunking/references/rust-api.md +412 -0
  107. package/.pi/skills/xberg-chunking/references/supported-formats.md +252 -0
  108. package/.pi/skills/{extracting-keywords → xberg-extracting-keywords}/SKILL.md +7 -8
  109. package/.pi/skills/xberg-extracting-keywords/index.md +10 -0
  110. package/.pi/skills/xberg-extracting-keywords/references/advanced-features.md +628 -0
  111. package/.pi/skills/xberg-extracting-keywords/references/cli-reference.md +464 -0
  112. package/.pi/skills/xberg-extracting-keywords/references/configuration.md +587 -0
  113. package/.pi/skills/xberg-extracting-keywords/references/nodejs-api.md +485 -0
  114. package/.pi/skills/xberg-extracting-keywords/references/other-bindings.md +345 -0
  115. package/.pi/skills/xberg-extracting-keywords/references/python-api.md +657 -0
  116. package/.pi/skills/xberg-extracting-keywords/references/rust-api.md +412 -0
  117. package/.pi/skills/xberg-extracting-keywords/references/supported-formats.md +252 -0
  118. package/{.opencode/skills/extracting-tables → .pi/skills/xberg-extracting-tables}/SKILL.md +4 -5
  119. package/.pi/skills/xberg-extracting-tables/index.md +10 -0
  120. package/.pi/skills/xberg-extracting-tables/references/advanced-features.md +628 -0
  121. package/.pi/skills/xberg-extracting-tables/references/cli-reference.md +464 -0
  122. package/.pi/skills/xberg-extracting-tables/references/configuration.md +587 -0
  123. package/.pi/skills/xberg-extracting-tables/references/nodejs-api.md +485 -0
  124. package/.pi/skills/xberg-extracting-tables/references/other-bindings.md +345 -0
  125. package/.pi/skills/xberg-extracting-tables/references/python-api.md +657 -0
  126. package/.pi/skills/xberg-extracting-tables/references/rust-api.md +412 -0
  127. package/.pi/skills/xberg-extracting-tables/references/supported-formats.md +252 -0
  128. package/{.opencode/skills/extracting-with-ocr → .pi/skills/xberg-extracting-with-ocr}/SKILL.md +5 -6
  129. package/.pi/skills/xberg-extracting-with-ocr/index.md +10 -0
  130. package/.pi/skills/xberg-extracting-with-ocr/references/advanced-features.md +628 -0
  131. package/.pi/skills/xberg-extracting-with-ocr/references/cli-reference.md +464 -0
  132. package/.pi/skills/xberg-extracting-with-ocr/references/configuration.md +587 -0
  133. package/.pi/skills/xberg-extracting-with-ocr/references/nodejs-api.md +485 -0
  134. package/.pi/skills/xberg-extracting-with-ocr/references/other-bindings.md +345 -0
  135. package/.pi/skills/xberg-extracting-with-ocr/references/python-api.md +657 -0
  136. package/.pi/skills/xberg-extracting-with-ocr/references/rust-api.md +412 -0
  137. package/.pi/skills/xberg-extracting-with-ocr/references/supported-formats.md +252 -0
  138. package/.pi/skills/{picking-a-format → xberg-picking-a-format}/SKILL.md +4 -4
  139. package/.pi/skills/xberg-picking-a-format/index.md +10 -0
  140. package/.pi/skills/xberg-picking-a-format/references/advanced-features.md +628 -0
  141. package/.pi/skills/xberg-picking-a-format/references/cli-reference.md +464 -0
  142. package/.pi/skills/xberg-picking-a-format/references/configuration.md +587 -0
  143. package/.pi/skills/xberg-picking-a-format/references/nodejs-api.md +485 -0
  144. package/.pi/skills/xberg-picking-a-format/references/other-bindings.md +345 -0
  145. package/.pi/skills/xberg-picking-a-format/references/python-api.md +657 -0
  146. package/.pi/skills/xberg-picking-a-format/references/rust-api.md +412 -0
  147. package/.pi/skills/xberg-picking-a-format/references/supported-formats.md +252 -0
  148. package/README.md +75 -9
  149. package/assets/icon.svg +16 -9
  150. package/assets/logo.png +0 -0
  151. package/package.json +136 -21
  152. package/scripts/mcp-launch.sh +6 -5
@@ -0,0 +1,345 @@
1
+ <!--
2
+ AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
+ Content-Hash: blake3:dacb4d7def21681b8b237603d2c7b89beaf18b8ee4110175b6ea5593022f3229
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
+ Schema-Version: v1
6
+ -->
7
+
8
+ # Language Bindings Reference
9
+
10
+ Xberg provides bindings for Python, TypeScript/Node.js, Ruby, PHP, Go, Java, C#, Elixir, WebAssembly, Dart, Kotlin Android, Swift, Zig, and C. Platform and packaging support varies by binding.
11
+
12
+ Every binding shares the same shape: build an **`ExtractInput`** (from a URI or bytes), pass it with an **`ExtractionConfig`** to `extract` (or `extract_batch`), and read per-document data from the result **envelope's `results` array** (index `[0]` for a single input). WASM follows the same shape — its `extract` returns a `WasmExtractionResult` envelope with a `results` array, not the document directly.
13
+
14
+ ## Go
15
+
16
+ **Installation:**
17
+
18
+ ```bash
19
+ go get github.com/xberg-io/xberg/packages/go
20
+ ```
21
+
22
+ **Basic Extraction:**
23
+
24
+ ```go
25
+ package main
26
+
27
+ import (
28
+ "fmt"
29
+ "log"
30
+
31
+ "github.com/xberg-io/xberg/packages/go"
32
+ )
33
+
34
+ func main() {
35
+ input := xberg.ExtractInputFromURI("document.pdf")
36
+ result, err := xberg.Extract(*input, xberg.ExtractionConfig{})
37
+ if err != nil {
38
+ log.Fatalf("extract failed: %v", err)
39
+ }
40
+ fmt.Println(result.Results[0].Content)
41
+ }
42
+ ```
43
+
44
+ **With OCR** (config fields are pointers):
45
+
46
+ ```go
47
+ ocrConfig := &xberg.OcrConfig{Backend: "tesseract", Language: []string{"eng"}}
48
+ config := xberg.ExtractionConfig{Ocr: ocrConfig}
49
+
50
+ input := xberg.ExtractInputFromURI("scanned.pdf")
51
+ result, err := xberg.Extract(*input, config)
52
+ ```
53
+
54
+ See the [Go binding documentation](https://github.com/xberg-io/xberg/tree/main/packages/go) for the complete API reference.
55
+
56
+ ## Ruby
57
+
58
+ **Installation:**
59
+
60
+ ```bash
61
+ gem install xberg
62
+ ```
63
+
64
+ Or in your Gemfile:
65
+
66
+ ```ruby
67
+ gem 'xberg'
68
+ ```
69
+
70
+ **Basic Extraction:**
71
+
72
+ ```ruby
73
+ require 'xberg'
74
+
75
+ input = Xberg::ExtractInput.new(uri: 'document.pdf')
76
+ config = Xberg::ExtractionConfig.new
77
+ result = Xberg.extract(input, config)
78
+ puts result.results.first.content
79
+ ```
80
+
81
+ **With OCR:**
82
+
83
+ ```ruby
84
+ config = Xberg::ExtractionConfig.new(
85
+ ocr: Xberg::OcrConfig.new(
86
+ backend: 'tesseract',
87
+ language: ['eng', 'fra'],
88
+ tesseract_config: Xberg::TesseractConfig.new(psm: 3)
89
+ )
90
+ )
91
+ result = Xberg.extract(Xberg::ExtractInput.new(uri: 'scanned.pdf'), config)
92
+ puts result.results.first.content
93
+ ```
94
+
95
+ See the [Ruby binding documentation](https://github.com/xberg-io/xberg/tree/main/packages/ruby) for the complete API reference.
96
+
97
+ ## Java
98
+
99
+ **Installation:** add to your Maven `pom.xml` (the binding version tracks the core release, currently `1.1.0`):
100
+
101
+ ```xml
102
+ <dependency>
103
+ <groupId>io.xberg</groupId>
104
+ <artifactId>xberg</artifactId>
105
+ <version>1.1.0</version>
106
+ </dependency>
107
+ ```
108
+
109
+ **Basic Extraction:**
110
+
111
+ ```java
112
+ import io.xberg.Xberg;
113
+ import io.xberg.ExtractInput;
114
+ import io.xberg.ExtractInputKind;
115
+ import io.xberg.ExtractionConfig;
116
+ import io.xberg.ExtractionResult;
117
+ import io.xberg.ExtractedDocument;
118
+
119
+ public class Example {
120
+ public static void main(String[] args) throws Exception {
121
+ ExtractionResult output = Xberg.extract(
122
+ ExtractInput.builder().withKind(ExtractInputKind.Uri).withUri("document.pdf").build(),
123
+ ExtractionConfig.builder().build()
124
+ );
125
+ ExtractedDocument result = output.results().get(0);
126
+ System.out.println(result.content());
127
+ }
128
+ }
129
+ ```
130
+
131
+ **With OCR:**
132
+
133
+ ```java
134
+ import io.xberg.OcrConfig;
135
+ import java.util.List;
136
+
137
+ ExtractionConfig config = ExtractionConfig.builder()
138
+ .withOcr(OcrConfig.builder().withBackend("tesseract").withLanguage(List.of("eng")).build())
139
+ .build();
140
+ ExtractionResult output = Xberg.extract(
141
+ ExtractInput.builder().withKind(ExtractInputKind.Uri).withUri("scanned.pdf").build(),
142
+ config
143
+ );
144
+ ```
145
+
146
+ See the [Java binding documentation](https://github.com/xberg-io/xberg/tree/main/packages/java) for the complete API reference.
147
+
148
+ ## C#
149
+
150
+ **Installation:**
151
+
152
+ ```bash
153
+ dotnet add package XbergIo.Xberg
154
+ ```
155
+
156
+ **Basic Extraction** (async):
157
+
158
+ ```csharp
159
+ using Xberg;
160
+
161
+ var result = (await XbergConverter.ExtractAsync(
162
+ ExtractInput.FromUri("document.pdf"),
163
+ new ExtractionConfig())).Results[0];
164
+ Console.WriteLine(result.Content);
165
+ ```
166
+
167
+ **With OCR:**
168
+
169
+ ```csharp
170
+ using Xberg;
171
+
172
+ var config = new ExtractionConfig
173
+ {
174
+ Ocr = new OcrConfig { Backend = "tesseract", Language = ["eng"] }
175
+ };
176
+
177
+ var result = (await XbergConverter.ExtractAsync(
178
+ ExtractInput.FromUri("scanned.pdf"), config)).Results[0];
179
+ Console.WriteLine(result.Content);
180
+ ```
181
+
182
+ See the [C# binding documentation](https://github.com/xberg-io/xberg/tree/main/packages/csharp) for the complete API reference.
183
+
184
+ ## PHP
185
+
186
+ **Installation:**
187
+
188
+ ```bash
189
+ composer require xberg-io/xberg
190
+ ```
191
+
192
+ **Basic Extraction:**
193
+
194
+ ```php
195
+ <?php
196
+ declare(strict_types=1);
197
+
198
+ require 'vendor/autoload.php';
199
+
200
+ use Xberg\XbergApi;
201
+ use Xberg\ExtractionConfig;
202
+ use Xberg\ExtractInput;
203
+
204
+ $output = XbergApi::extract(ExtractInput::fromUri('document.pdf'), ExtractionConfig::default());
205
+ $result = $output->results[0];
206
+ echo $result->content;
207
+ ```
208
+
209
+ **From bytes:**
210
+
211
+ ```php
212
+ $output = XbergApi::extract(ExtractInput::fromBytes($fileData, $mimeType), ExtractionConfig::default());
213
+ $result = $output->results[0];
214
+ ```
215
+
216
+ **With OCR:**
217
+
218
+ ```php
219
+ use Xberg\OcrConfig;
220
+
221
+ $ocrConfig = new OcrConfig(
222
+ enabled: true,
223
+ backend: 'tesseract',
224
+ language: ['eng'],
225
+ autoRotate: true,
226
+ vlmFallback: false,
227
+ );
228
+
229
+ $config = new ExtractionConfig(forceOcr: true, ocr: $ocrConfig);
230
+
231
+ $output = XbergApi::extract(ExtractInput::fromUri('scanned.pdf'), $config);
232
+ $result = $output->results[0];
233
+ echo $result->content;
234
+ ```
235
+
236
+ See the [PHP binding documentation](https://github.com/xberg-io/xberg/tree/main/packages/php) for the complete API reference.
237
+
238
+ ## Elixir
239
+
240
+ **Installation:** add to your `mix.exs` dependencies (the binding version tracks the core release, currently `1.1.0`):
241
+
242
+ ```elixir
243
+ def deps do
244
+ [
245
+ {:xberg, "~> 1.1.0"}
246
+ ]
247
+ end
248
+ ```
249
+
250
+ **Basic Extraction** (returns `{:ok, output}` / `{:error, reason}`):
251
+
252
+ ```elixir
253
+ case Xberg.extract(input: %Xberg.ExtractInput{kind: :uri, uri: "document.pdf"}, config: nil) do
254
+ {:ok, output} ->
255
+ result = List.first(output.results)
256
+ IO.puts(result.content)
257
+
258
+ {:error, reason} ->
259
+ IO.puts("Error: #{reason}")
260
+ end
261
+ ```
262
+
263
+ **With OCR** (config may be a struct or a JSON string):
264
+
265
+ ```elixir
266
+ config = ~s({"ocr": {"backend": "tesseract", "language": "eng"}})
267
+
268
+ {:ok, output} =
269
+ Xberg.extract(input: %Xberg.ExtractInput{kind: :uri, uri: "scanned.pdf"}, config: config)
270
+
271
+ result = List.first(output.results)
272
+ IO.puts(result.content)
273
+ ```
274
+
275
+ See the [Elixir binding documentation](https://github.com/xberg-io/xberg/tree/main/packages/elixir) for the complete API reference.
276
+
277
+ ## WebAssembly (WASM)
278
+
279
+ **Installation:**
280
+
281
+ ```bash
282
+ npm install @xberg-io/xberg-wasm
283
+ ```
284
+
285
+ **Basic Extraction:** the WASM build is bytes-based and must be initialized once with `initWasm()`. Like the native bindings, it returns a `WasmExtractionResult` envelope with a `results` array.
286
+
287
+ ```typescript
288
+ import { initWasm, extract } from "@xberg-io/xberg-wasm";
289
+
290
+ await initWasm();
291
+
292
+ const response = await fetch("document.pdf");
293
+ const data = new Uint8Array(await response.arrayBuffer());
294
+
295
+ const result = await extract({ kind: "bytes", bytes: data, mimeType: "application/pdf" }, undefined);
296
+ console.log(result.results[0].content);
297
+ ```
298
+
299
+ **With OCR:**
300
+
301
+ ```typescript
302
+ const config = { force_ocr: true, ocr: { backend: "tesseract", language: ["eng"] } };
303
+ const result = await extract({ kind: "bytes", bytes: data, mimeType: "application/pdf" }, config);
304
+ console.log(result.results[0].content);
305
+ ```
306
+
307
+ Supports browsers, Deno, and Cloudflare Workers.
308
+
309
+ See the [WASM binding documentation](https://github.com/xberg-io/xberg/tree/main/packages/typescript) for the complete API reference.
310
+
311
+ ## Docker
312
+
313
+ **Installation:** pull the official image from GitHub Container Registry:
314
+
315
+ ```bash
316
+ docker pull ghcr.io/xberg-io/xberg
317
+ ```
318
+
319
+ **API Server Mode:**
320
+
321
+ ```bash
322
+ docker run -p 8000:8000 ghcr.io/xberg-io/xberg serve --host 0.0.0.0
323
+ ```
324
+
325
+ **CLI Mode:**
326
+
327
+ ```bash
328
+ docker run -v $(pwd):/data ghcr.io/xberg-io/xberg extract /data/document.pdf
329
+ ```
330
+
331
+ **MCP Server Mode:**
332
+
333
+ ```bash
334
+ docker run -i ghcr.io/xberg-io/xberg mcp
335
+ ```
336
+
337
+ See the [Docker guide](https://docs.xberg.io/guides/docker/) for deployment details.
338
+
339
+ ## Other Bindings
340
+
341
+ Bindings also ship for Dart/Flutter, Swift, Kotlin Android, Zig, and C FFI. Python and TypeScript/Node.js have dedicated references in this skill. See the per-language directories under [`packages/`](https://github.com/xberg-io/xberg/tree/main/packages) for exact installation and API details.
342
+
343
+ ## Platform Support
344
+
345
+ Precompiled target support varies by binding. Refer to the main [README](https://github.com/xberg-io/xberg) for the current platform matrix.