koffi 2.10.0 → 2.11.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 (40) hide show
  1. package/CHANGELOG.md +309 -98
  2. package/build/koffi/darwin_arm64/koffi.node +0 -0
  3. package/build/koffi/darwin_x64/koffi.node +0 -0
  4. package/build/koffi/freebsd_arm64/koffi.node +0 -0
  5. package/build/koffi/freebsd_ia32/koffi.node +0 -0
  6. package/build/koffi/freebsd_x64/koffi.node +0 -0
  7. package/build/koffi/linux_arm64/koffi.node +0 -0
  8. package/build/koffi/linux_armhf/koffi.node +0 -0
  9. package/build/koffi/linux_ia32/koffi.node +0 -0
  10. package/build/koffi/linux_riscv64/koffi.node +0 -0
  11. package/build/koffi/linux_x64/koffi.node +0 -0
  12. package/build/koffi/musl_x64/koffi.node +0 -0
  13. package/build/koffi/openbsd_ia32/koffi.node +0 -0
  14. package/build/koffi/openbsd_x64/koffi.node +0 -0
  15. package/build/koffi/win32_arm64/koffi.node +0 -0
  16. package/build/koffi/win32_ia32/koffi.node +0 -0
  17. package/build/koffi/win32_x64/koffi.node +0 -0
  18. package/doc/assets.ini +5 -1
  19. package/doc/{flaat/flaat.css → flat/flat.css} +2 -0
  20. package/doc/{flaat → flat}/normal.css +124 -31
  21. package/doc/{flaat → flat}/print.css +1 -2
  22. package/doc/flat/reset.css +41 -0
  23. package/doc/{flaat → flat}/small.css +5 -2
  24. package/doc/{flaat/flaat.js → flat/static.js} +21 -10
  25. package/doc/pages/contribute.md +3 -3
  26. package/doc/pages/output.md +32 -1
  27. package/doc/pages/packaging.md +5 -5
  28. package/doc/pages/pointers.md +9 -0
  29. package/doc/pages.ini +13 -13
  30. package/doc/static/{koffi.js → highlight.js} +0 -1
  31. package/doc/static/koffi.css +3 -2
  32. package/doc/static/logo.webp +0 -0
  33. package/doc/templates/code.html +49 -0
  34. package/doc/templates/page.html +1 -1
  35. package/index.js +2 -2
  36. package/indirect.js +2 -2
  37. package/package.json +2 -2
  38. package/src/koffi/CMakeLists.txt +1 -1
  39. package/src/koffi/src/ffi.cc +39 -0
  40. package/build/koffi/linux_arm32/koffi.node +0 -0
package/CHANGELOG.md CHANGED
@@ -5,107 +5,162 @@
5
5
 
6
6
  ## Koffi 2
7
7
 
8
+ ### Koffi 2.11
9
+
10
+ #### Koffi 2.11.0
11
+
12
+ *Released on 2025-04-09*
13
+
14
+ - Add `koffi.view()` to [access memory without copy](pointers#external-buffers-views)
15
+ - Various documentation fixes and improvements
16
+
8
17
  ### Koffi 2.10
9
18
 
10
- #### Koffi 2.10.0 (2024-12-22)
19
+ #### Koffi 2.10.1
20
+
21
+ *Released on 2025-01-24*
22
+
23
+ - Fix detection of ARM32 in build script in some cases
24
+ - Fix wrong path for ARM32 prebuild
25
+
26
+ #### Koffi 2.10.0
27
+
28
+ *Released on 2024-12-22*
11
29
 
12
30
  - Allow [redefinition of opaque types](misc#circular-references) to concrete struct or union
31
+ - Clear out executable stack bit from ELF targets (`-z noexecstack`)
13
32
  - Update documentation style
14
33
 
15
34
  ### Koffi 2.9
16
35
 
17
- #### Koffi 2.9.2 (2024-11-08)
36
+ #### Koffi 2.9.2
37
+
38
+ *Released on 2024-11-08*
18
39
 
19
40
  - Fix non-aligned pointers when pushing UTF-16 and UTF-32 string parameters
20
41
  - Various documentation fixes and improvements
21
42
 
22
- #### Koffi 2.9.1 (2024-09-23)
43
+ #### Koffi 2.9.1
44
+
45
+ *Released on 2024-09-23*
23
46
 
24
47
  - Fix x86 32-bit support regression in 2.9.0
25
48
  - Add missing TS definition for `koffi.alloc()`
26
49
  - Support `koffi.load(null)` in TS definition file
27
50
 
28
- #### Koffi 2.9.0 (2024-07-22)
51
+ #### Koffi 2.9.0
52
+
53
+ *Released on 2024-07-22*
29
54
 
30
55
  - Add support for char32_t and wchar_t (wide) strings
31
56
  - Include Linux/musl x64 prebuild (based on Alpine)
32
57
 
33
58
  ### Koffi 2.8
34
59
 
35
- #### Koffi 2.8.11 (2024-06-19)
60
+ #### Koffi 2.8.11
61
+
62
+ *Released on 2024-06-19*
36
63
 
37
64
  - Work around MSVC compiler bug introduced in Visual Studio 17.10
38
65
 
39
66
  > [!WARNING]
40
67
  > Use on platforms without pre-built binaries is broken in Koffi 2.8.10, skip this version.
41
68
 
42
- #### Koffi 2.8.9 (2024-05-17)
69
+ #### Koffi 2.8.9
70
+
71
+ *Released on 2024-05-17*
43
72
 
44
73
  - Fix ABI issue regarding bool return values on x86_64 (and possibly other platforms)
45
74
 
46
- #### Koffi 2.8.8 (2024-04-26)
75
+ #### Koffi 2.8.8
76
+
77
+ *Released on 2024-04-26*
47
78
 
48
79
  - Support use of buffers with mismatched size (truncation or zero-filling)
49
80
 
50
- #### Koffi 2.8.7 (2024-04-23)
81
+ #### Koffi 2.8.7
82
+
83
+ *Released on 2024-04-23*
51
84
 
52
85
  - Improve compatibility with SEHOP on Windows ([@longhun12346](https://github.com/longhun12346))
53
86
 
54
- #### Koffi 2.8.6 (2024-04-12)
87
+ #### Koffi 2.8.6
88
+
89
+ *Released on 2024-04-12*
55
90
 
56
91
  - Support [loading library](functions#loading-options) with RTLD_DEEPBIND where supported
57
92
 
58
- #### Koffi 2.8.5 (2024-04-11)
93
+ #### Koffi 2.8.5
94
+
95
+ *Released on 2024-04-11*
59
96
 
60
97
  - Prevent obviously invalid type and member names
61
98
  - Fix possible infinite loop / UB for `koffi.load()` errors on POSIX systems
62
99
  - Fix null return value instead of exception for some errors in `koffi.load()` on Windows
63
100
 
64
- #### Koffi 2.8.4 (2024-04-09)
101
+ #### Koffi 2.8.4
102
+
103
+ *Released on 2024-04-09*
65
104
 
66
105
  - Use simpler workaround for Node 20.12+ and 21.6+ to avoid excessive memory use
67
106
 
68
107
  > [!WARNING]
69
108
  > Some pre-built binaries are missing in Koffi 2.8.3, skip this version.
70
109
 
71
- #### Koffi 2.8.2 (2024-04-07)
110
+ #### Koffi 2.8.2
111
+
112
+ *Released on 2024-04-07*
72
113
 
73
114
  - Support [loading library](functions#loading-options) with RTLD_GLOBAL on POSIX platforms
74
115
 
75
- #### Koffi 2.8.1 (2024-04-04)
116
+ #### Koffi 2.8.1
117
+
118
+ *Released on 2024-04-04*
76
119
 
77
120
  - Fix incompatibility with Node 20.12+ and 21.6+
78
121
 
79
- #### Koffi 2.8.0 (2024-02-12)
122
+ #### Koffi 2.8.0
123
+
124
+ *Released on 2024-02-12*
80
125
 
81
126
  - Support pushing pointers for string arguments
82
127
  - Add `koffi.alloc()` for [stable pointers](output#stable-pointers)
83
128
 
84
129
  ### Koffi 2.7
85
130
 
86
- #### Koffi 2.7.4 (2024-02-04)
131
+ #### Koffi 2.7.4
132
+
133
+ *Released on 2024-02-04*
87
134
 
88
135
  - Support callbacks happening on main thread but outside JS call (such as during event loop)
89
136
  - Improve stability after `koffi.reset()`
90
137
  - Expose internal Node/NAPI `env` pointer
91
138
  - Name main Koffi API functions
92
139
 
93
- #### Koffi 2.7.3 (2024-01-26)
140
+ #### Koffi 2.7.3
141
+
142
+ *Released on 2024-01-26*
94
143
 
95
144
  - Support decoding NULL terminated arrays
96
145
 
97
- #### Koffi 2.7.2 (2024-01-15)
146
+ #### Koffi 2.7.2
147
+
148
+ *Released on 2024-01-15*
98
149
 
99
150
  - Add missing TypeScript declaration for `koffi.free()`
100
151
  - Fix TypeScript declaration of `koffi.encode()`
101
152
  - Try to improve compatibility with webpack
102
153
 
103
- #### Koffi 2.7.1 (2024-01-02)
154
+ #### Koffi 2.7.1
155
+
156
+ *Released on 2024-01-02*
104
157
 
105
158
  - Support C-like `int[3]` syntax for [fixed array types](input#fixed-size-c-arrays)
106
159
  - Refuse type specifiers with invalid tokens at the end (previously ignored)
107
160
 
108
- #### Koffi 2.7.0 (2023-12-21)
161
+ #### Koffi 2.7.0
162
+
163
+ *Released on 2023-12-21*
109
164
 
110
165
  - Support alternative [callback calling convention](callbacks#callback-types) in classic syntax
111
166
  - Change syntax for [calling conventions](functions#calling-conventions) with classic syntax
@@ -113,20 +168,28 @@
113
168
 
114
169
  ### Koffi 2.6
115
170
 
116
- #### Koffi 2.6.12 (2023-12-11)
171
+ #### Koffi 2.6.12
172
+
173
+ *Released on 2023-12-11*
117
174
 
118
175
  - Fix possible crash introduced in Koffi 2.6.11
119
176
 
120
- #### Koffi 2.6.11 (2023-12-05)
177
+ #### Koffi 2.6.11
178
+
179
+ *Released on 2023-12-05*
121
180
 
122
181
  - Speed up resolving simple and often used type names
123
182
  - Fix use of optional length argument with [koffi.encode()](variables#encode-to-c-memory)
124
183
 
125
- #### Koffi 2.6.10 (2023-11-29)
184
+ #### Koffi 2.6.10
185
+
186
+ *Released on 2023-11-29*
126
187
 
127
188
  - Protect GetLastError() value from Node.js and V8 on Windows
128
189
 
129
- #### Koffi 2.6.9 (2023-11-25)
190
+ #### Koffi 2.6.9
191
+
192
+ *Released on 2023-11-25*
130
193
 
131
194
  - Search in DLL directory for additional dependencies on Windows
132
195
  - Ignore prototype properties when making structs or unions
@@ -136,32 +199,44 @@
136
199
  > [!WARNING]
137
200
  > Loading Win32 system libraries can fail in Koffi 2.6.8, skip this version.
138
201
 
139
- #### Koffi 2.6.6 (2023-10-28)
202
+ #### Koffi 2.6.6
203
+
204
+ *Released on 2023-10-28*
140
205
 
141
206
  - Better handle errors while making struct or union types
142
207
 
143
- #### Koffi 2.6.5 (2023-10-28)
208
+ #### Koffi 2.6.5
209
+
210
+ *Released on 2023-10-28*
144
211
 
145
212
  - Allow self-referential structs and unions
146
213
  - Fix rare Node.js "FATAL ERROR" with some invalid type specifiers
147
214
 
148
- #### Koffi 2.6.4 (2023-10-26)
215
+ #### Koffi 2.6.4
216
+
217
+ *Released on 2023-10-26*
149
218
 
150
219
  - Fix build issue with recent Visual Studio versions
151
220
 
152
- #### Koffi 2.6.3 (2023-10-17)
221
+ #### Koffi 2.6.3
222
+
223
+ *Released on 2023-10-17*
153
224
 
154
225
  - Add indirect loading script to help some bundlers
155
226
 
156
227
  > [!WARNING]
157
228
  > Pre-built binaries don't work correctly in Koffi 2.6.2, skip this version.
158
229
 
159
- #### Koffi 2.6.1 (2023-09-18)
230
+ #### Koffi 2.6.1
231
+
232
+ *Released on 2023-09-18*
160
233
 
161
234
  - Support string direction qualifiers in classic function definitions
162
235
  - Fix possible off-by-one array access when parsing type name
163
236
 
164
- #### Koffi 2.6.0 (2023-09-13)
237
+ #### Koffi 2.6.0
238
+
239
+ *Released on 2023-09-13*
165
240
 
166
241
  **New features:**
167
242
 
@@ -176,21 +251,29 @@
176
251
 
177
252
  ### Koffi 2.5
178
253
 
179
- #### Koffi 2.5.20 (2023-08-31)
254
+ #### Koffi 2.5.20
255
+
256
+ *Released on 2023-08-31*
180
257
 
181
258
  - Fix possible crash with async registered callbacks introduced in Koffi 2.5.19
182
259
  - Various documentation fixes and improvements
183
260
 
184
- #### Koffi 2.5.19 (2023-08-29)
261
+ #### Koffi 2.5.19
262
+
263
+ *Released on 2023-08-29*
185
264
 
186
265
  - Create thread-safe function broker lazily
187
266
  - Add [koffi.reset()](misc#reset-internal-state) for type names and async broker
188
267
 
189
- #### Koffi 2.5.18 (2023-08-27)
268
+ #### Koffi 2.5.18
269
+
270
+ *Released on 2023-08-27*
190
271
 
191
272
  - Fix compatibility with Electron
192
273
 
193
- #### Koffi 2.5.16 (2023-08-25)
274
+ #### Koffi 2.5.16
275
+
276
+ *Released on 2023-08-25*
194
277
 
195
278
  - Run Koffi tests through usual index.js entry point
196
279
  - Fix DLL error when using Koffi from NW.js on Windows
@@ -199,21 +282,29 @@
199
282
  > [!WARNING]
200
283
  > Pre-built binaries don't work correctly in Koffi 2.5.13 to 2.5.15, skip those versions.
201
284
 
202
- #### Koffi 2.5.12 (2023-08-21)
285
+ #### Koffi 2.5.12
286
+
287
+ *Released on 2023-08-21*
203
288
 
204
289
  - Fix native module bundling for FreeBSD ARM64 and Linux RISC-V 64
205
290
  - Increase maximum number of parameters to 64
206
291
 
207
- #### Koffi 2.5.11 (2023-08-03)
292
+ #### Koffi 2.5.11
293
+
294
+ *Released on 2023-08-03*
208
295
 
209
296
  - Support casting function pointers with [koffi.as()](pointers#handling-void-pointers)
210
297
  - Build in C++20 mode
211
298
 
212
- #### Koffi 2.5.10 (2023-08-01)
299
+ #### Koffi 2.5.10
300
+
301
+ *Released on 2023-08-01*
213
302
 
214
303
  - Fix CMake regression when client has to build Koffi
215
304
 
216
- #### Koffi 2.5.9 (2023-07-28)
305
+ #### Koffi 2.5.9
306
+
307
+ *Released on 2023-07-28*
217
308
 
218
309
  **Main changes:**
219
310
 
@@ -225,43 +316,61 @@
225
316
  - Add missing unload() export to TS file
226
317
  - Add export for koffi.types in TS file
227
318
 
228
- #### Koffi 2.5.8 (2023-07-26)
319
+ #### Koffi 2.5.8
320
+
321
+ *Released on 2023-07-26*
229
322
 
230
323
  - Add more search paths for native Koffi modules
231
324
  - Add section [about bundling](start#bundling-koffi) to documentation
232
325
 
233
- #### Koffi 2.5.7 (2023-07-19)
326
+ #### Koffi 2.5.7
327
+
328
+ *Released on 2023-07-19*
234
329
 
235
330
  - Point package to new repository
236
331
 
237
- #### Koffi 2.5.6 (2023-07-19)
332
+ #### Koffi 2.5.6
333
+
334
+ *Released on 2023-07-19*
238
335
 
239
336
  - Increase limit of output parameters from 16 to 32
240
337
 
241
- #### Koffi 2.5.5 (2023-07-17)
338
+ #### Koffi 2.5.5
339
+
340
+ *Released on 2023-07-17*
242
341
 
243
342
  - Support decoding non-char null-terminated arrays
244
343
 
245
- #### Koffi 2.5.4 (2023-07-14)
344
+ #### Koffi 2.5.4
345
+
346
+ *Released on 2023-07-14*
246
347
 
247
348
  - Fix `koffi.pointer()` not accepting disposable types
248
349
  - Fix potential issues when making pointers to anonymous types
249
350
 
250
- #### Koffi 2.5.3 (2023-07-05)
351
+ #### Koffi 2.5.3
352
+
353
+ *Released on 2023-07-05*
251
354
 
252
355
  - Add missing union exports in TS definition file
253
356
  - Fix some parameter names in TS definition file
254
357
 
255
- #### Koffi 2.5.2 (2023-07-04)
358
+ #### Koffi 2.5.2
359
+
360
+ *Released on 2023-07-04*
256
361
 
257
362
  - Default initialize unset object/struct members
258
363
 
259
- #### Koffi 2.5.1 (2023-06-20)
364
+ #### Koffi 2.5.1
365
+
366
+ *Released on 2023-06-20*
260
367
 
261
368
  - Fix crash with some struct types in System V 64 ABI
262
369
  - Always use direct passthrough for buffer arguments
263
370
 
264
- #### Koffi 2.5.0 (2023-06-20)
371
+ #### Koffi 2.5.0
372
+
373
+ *Released on 2023-06-20*
265
374
 
266
375
  **New features:**
267
376
 
@@ -274,12 +383,16 @@
274
383
 
275
384
  ### Koffi 2.4
276
385
 
277
- #### Koffi 2.4.2 (2023-06-04)
386
+ #### Koffi 2.4.2
387
+
388
+ *Released on 2023-06-04*
278
389
 
279
390
  - Support calling variadic function pointers
280
391
  - Add documentation for function pointers
281
392
 
282
- #### Koffi 2.4.1 (2023-06-03)
393
+ #### Koffi 2.4.1
394
+
395
+ *Released on 2023-06-03*
283
396
 
284
397
  **Main changes:**
285
398
 
@@ -296,49 +409,69 @@
296
409
 
297
410
  ### Koffi 2.3
298
411
 
299
- #### Koffi 2.3.20 (2023-05-15)
412
+ #### Koffi 2.3.20
413
+
414
+ *Released on 2023-05-15*
300
415
 
301
416
  - Support explicit library unloading with `lib.unload()`
302
417
 
303
- #### Koffi 2.3.19 (2023-04-21)
418
+ #### Koffi 2.3.19
419
+
420
+ *Released on 2023-04-21*
304
421
 
305
422
  - Actually allow non-ambiguous [string] values for `void *` arguments
306
423
 
307
- #### Koffi 2.3.18 (2023-04-21)
424
+ #### Koffi 2.3.18
425
+
426
+ *Released on 2023-04-21*
308
427
 
309
428
  - Fix possible crash on exit caused by unregistered callbacks
310
429
 
311
- #### Koffi 2.3.17 (2023-04-20)
430
+ #### Koffi 2.3.17
431
+
432
+ *Released on 2023-04-20*
312
433
 
313
434
  - Allow strings for input `void *`, `int8_t *` and `int16_t *` pointer arguments
314
435
  - Support using `[string]` (single-element string arrays) for polymorphic input/output arguments
315
436
 
316
- #### Koffi 2.3.16 (2023-04-11)
437
+ #### Koffi 2.3.16
438
+
439
+ *Released on 2023-04-11*
317
440
 
318
441
  - Fix Windows ARM64 build to work with official Node.js version
319
442
  - Compile Windows builds with Visual Studio 2022 17.5.3
320
443
  - Support null in `koffi.free()` and `koffi.address()`
321
444
 
322
- #### Koffi 2.3.15 (2023-04-10)
445
+ #### Koffi 2.3.15
446
+
447
+ *Released on 2023-04-10*
323
448
 
324
449
  - Improve manual decoding of 0-terminated strings
325
450
  - Add checks around array conversion hints
326
451
 
327
- #### Koffi 2.3.14 (2023-04-05)
452
+ #### Koffi 2.3.14
453
+
454
+ *Released on 2023-04-05*
328
455
 
329
456
  - Add `koffi.errno()` function to get and set current errno value
330
457
  - Add `koffi.os.errno` object with valid errno codes
331
458
 
332
- #### Koffi 2.3.13 (2023-03-30)
459
+ #### Koffi 2.3.13
460
+
461
+ *Released on 2023-03-30*
333
462
 
334
463
  - Add `koffi.address()` to get the raw value of a wrapper pointer
335
464
 
336
- #### Koffi 2.3.12 (2023-03-30)
465
+ #### Koffi 2.3.12
466
+
467
+ *Released on 2023-03-30*
337
468
 
338
469
  - Fix broken syntax in TS definition file
339
470
  - Add missing exported properties in TS file
340
471
 
341
- #### Koffi 2.3.11 (2023-03-30)
472
+ #### Koffi 2.3.11
473
+
474
+ *Released on 2023-03-30*
342
475
 
343
476
  **Main changes:**
344
477
 
@@ -350,27 +483,37 @@
350
483
  - Avoid using `statx()` to allow compilation with glibc < 2.28
351
484
  - Reorganize NPM package files to be less convoluted
352
485
 
353
- #### Koffi 2.3.9 (2023-03-10)
486
+ #### Koffi 2.3.9
487
+
488
+ *Released on 2023-03-10*
354
489
 
355
490
  - Relicense under MIT license
356
491
 
357
- #### Koffi 2.3.8 (2023-02-28)
492
+ #### Koffi 2.3.8
493
+
494
+ *Released on 2023-02-28*
358
495
 
359
496
  - Disable non-ready union support
360
497
  - Simplify Windows stack allocation and drop NOACCESS and GUARD pages
361
498
  - Adjust Windows TEB SEH chain and GuaranteedStackBytes for Koffi calls
362
499
 
363
- #### Koffi 2.3.7 (2023-02-27)
500
+ #### Koffi 2.3.7
501
+
502
+ *Released on 2023-02-27*
364
503
 
365
504
  - Fix missing require in index.js ([@gastonFrecceroNapse](https://github.com/gastonFrecceroNapse))
366
505
  - Reduce NPM package bloat (from 65 MB to 20 MB) caused by changes in 2.3.6
367
506
 
368
- #### Koffi 2.3.6 (2023-02-26)
507
+ #### Koffi 2.3.6
508
+
509
+ *Released on 2023-02-26*
369
510
 
370
511
  - Fix broken TS definition file
371
512
  - Keep all prebuilt binaries and load correct one at runtime
372
513
 
373
- #### Koffi 2.3.5 (2023-02-24)
514
+ #### Koffi 2.3.5
515
+
516
+ *Released on 2023-02-24*
374
517
 
375
518
  **Main fixes:**
376
519
 
@@ -386,11 +529,15 @@
386
529
  - Mark optional properties in TS TypeInfo class
387
530
  - Minor performance improvements
388
531
 
389
- #### Koffi 2.3.4 (2023-01-31)
532
+ #### Koffi 2.3.4
533
+
534
+ *Released on 2023-01-31*
390
535
 
391
536
  - Fix error when installing Koffi on Windows (2.3.2)
392
537
 
393
- #### Koffi 2.3.2 (2023-01-30)
538
+ #### Koffi 2.3.2
539
+
540
+ *Released on 2023-01-30*
394
541
 
395
542
  **Main changes:**
396
543
 
@@ -403,13 +550,17 @@
403
550
  - Avoid CNoke dependency
404
551
  - Clear out development dependencies from package.json
405
552
 
406
- #### Koffi 2.3.1 (2023-01-30)
553
+ #### Koffi 2.3.1
554
+
555
+ *Released on 2023-01-30*
407
556
 
408
557
  - Error out when trying to use ambiguous `void *` arguments (input and/or output)
409
558
  - Adjust TypeScript definitions ([@insraq](https://github.com/insraq))
410
559
  - Fix possible crash when parsing invalid prototype
411
560
 
412
- #### Koffi 2.3.0 (2023-01-25)
561
+ #### Koffi 2.3.0
562
+
563
+ *Released on 2023-01-25*
413
564
 
414
565
  **Main changes:**
415
566
 
@@ -428,21 +579,29 @@
428
579
 
429
580
  ### Koffi 2.2
430
581
 
431
- #### Koffi 2.2.5 (2023-01-23)
582
+ #### Koffi 2.2.5
583
+
584
+ *Released on 2023-01-23*
432
585
 
433
586
  - Relicense Koffi under LGPL 3.0
434
587
 
435
- #### Koffi 2.2.4 (2023-01-19)
588
+ #### Koffi 2.2.4
589
+
590
+ *Released on 2023-01-19*
436
591
 
437
592
  - Fix memory leak on Windows (in Koffi 2.2.3) when running many async calls
438
593
  - Reorganize documentation pages
439
594
 
440
- #### Koffi 2.2.3 (2023-01-17)
595
+ #### Koffi 2.2.3
596
+
597
+ *Released on 2023-01-17*
441
598
 
442
599
  - Support native code that uses [Structured Exception Handling (SEH)](https://learn.microsoft.com/en-us/cpp/cpp/structured-exception-handling-c-cpp) on Windows (x86, x64 and ARM64)
443
600
  - Try to use ebp/rbp as frame pointer in x86/x64 ASM code
444
601
 
445
- #### Koffi 2.2.2 (2023-01-14)
602
+ #### Koffi 2.2.2
603
+
604
+ *Released on 2023-01-14*
446
605
 
447
606
  **Main fixes:**
448
607
 
@@ -456,11 +615,15 @@
456
615
  - Check N-API version when module is loaded
457
616
  - Optimize callback unregistration
458
617
 
459
- #### Koffi 2.2.1 (2022-12-21)
618
+ #### Koffi 2.2.1
619
+
620
+ *Released on 2022-12-21*
460
621
 
461
622
  - Fix crash when [calling callback again after FFI call inside previous callback](https://github.com/Koromix/rygel/issues/15)
462
623
 
463
- #### Koffi 2.2.0 (2022-12-20)
624
+ #### Koffi 2.2.0
625
+
626
+ *Released on 2022-12-20*
464
627
 
465
628
  **New features:**
466
629
 
@@ -476,11 +639,15 @@
476
639
 
477
640
  ### Koffi 2.1
478
641
 
479
- #### Koffi 2.1.5 (2022-11-27)
642
+ #### Koffi 2.1.5
643
+
644
+ *Released on 2022-11-27*
480
645
 
481
646
  - Add missing README file to NPM package
482
647
 
483
- #### Koffi 2.1.4 (2022-11-25)
648
+ #### Koffi 2.1.4
649
+
650
+ *Released on 2022-11-25*
484
651
 
485
652
  **Main changes:**
486
653
 
@@ -489,21 +656,29 @@
489
656
 
490
657
  **Other changes:**
491
658
 
492
- - Moved Koffi to a new repository: https://github.com/Koromix/rygel/
659
+ - Moved Koffi to a new repository: https://codeberg.org/Koromix/rygel/
493
660
 
494
- #### Koffi 2.1.3 (2022-10-31)
661
+ #### Koffi 2.1.3
662
+
663
+ *Released on 2022-10-31*
495
664
 
496
665
  - Support up to 16 output parameters (instead of 8)
497
666
 
498
- #### Koffi 2.1.2 (2022-10-31)
667
+ #### Koffi 2.1.2
668
+
669
+ *Released on 2022-10-31*
499
670
 
500
671
  - Support up to 8 output parameters (instead of 4)
501
672
 
502
- #### Koffi 2.1.1 (2022-08-16)
673
+ #### Koffi 2.1.1
674
+
675
+ *Released on 2022-08-16*
503
676
 
504
677
  - Fix potential memory allocation bugs
505
678
 
506
- #### Koffi 2.1.0 (2022-08-13)
679
+ #### Koffi 2.1.0
680
+
681
+ *Released on 2022-08-13*
507
682
 
508
683
  **Main changes:**
509
684
 
@@ -523,11 +698,15 @@
523
698
 
524
699
  ### Koffi 2.0
525
700
 
526
- #### Koffi 2.0.1 (2022-07-30)
701
+ #### Koffi 2.0.1
702
+
703
+ *Released on 2022-07-30*
527
704
 
528
705
  - Return `undefined` (instead of null) for `void` functions
529
706
 
530
- #### Koffi 2.0.0 (2022-07-29)
707
+ #### Koffi 2.0.0
708
+
709
+ *Released on 2022-07-29*
531
710
 
532
711
  **Major new features:**
533
712
 
@@ -555,15 +734,21 @@ Consult the [migration guide](migration) for more information.
555
734
 
556
735
  ### Koffi 1.3
557
736
 
558
- #### Koffi 1.3.12 (2022-07-27)
737
+ #### Koffi 1.3.12
738
+
739
+ *Released on 2022-07-27*
559
740
 
560
741
  - Fix support for Yarn package manager
561
742
 
562
- #### Koffi 1.3.11 (2022-07-26)
743
+ #### Koffi 1.3.11
744
+
745
+ *Released on 2022-07-26*
563
746
 
564
747
  - Fix broken parsing of `void *` when used for first parameter
565
748
 
566
- #### Koffi 1.3.10 (2022-07-25)
749
+ #### Koffi 1.3.10
750
+
751
+ *Released on 2022-07-25*
567
752
 
568
753
  **Main fixes:**
569
754
 
@@ -575,11 +760,15 @@ Consult the [migration guide](migration) for more information.
575
760
 
576
761
  - Various documentation fixes and improvements
577
762
 
578
- #### Koffi 1.3.9 (2022-07-15)
763
+ #### Koffi 1.3.9
764
+
765
+ *Released on 2022-07-15*
579
766
 
580
767
  - Fix prebuild compatibility with Electron on Windows x64
581
768
 
582
- #### Koffi 1.3.8 (2022-07-12)
769
+ #### Koffi 1.3.8
770
+
771
+ *Released on 2022-07-12*
583
772
 
584
773
  **Main changes:**
585
774
 
@@ -590,7 +779,9 @@ Consult the [migration guide](migration) for more information.
590
779
 
591
780
  - Fix and harmonize a few error messages
592
781
 
593
- #### Koffi 1.3.7 (2022-07-07)
782
+ #### Koffi 1.3.7
783
+
784
+ *Released on 2022-07-07*
594
785
 
595
786
  **Main fixes:**
596
787
 
@@ -603,7 +794,9 @@ Consult the [migration guide](migration) for more information.
603
794
  - Add str/str16 type aliases for string/string16
604
795
  - Various documentation fixes and improvements
605
796
 
606
- #### Koffi 1.3.6 (2022-07-01)
797
+ #### Koffi 1.3.6
798
+
799
+ *Released on 2022-07-01*
607
800
 
608
801
  **Main fixes:**
609
802
 
@@ -615,7 +808,9 @@ Consult the [migration guide](migration) for more information.
615
808
  - Prebuild with Clang for Windows x64 and Linux x64 binaries
616
809
  - Various documentation improvements
617
810
 
618
- #### Koffi 1.3.5 (2022-06-25)
811
+ #### Koffi 1.3.5
812
+
813
+ *Released on 2022-06-25*
619
814
 
620
815
  **Main changes:**
621
816
 
@@ -627,11 +822,15 @@ Consult the [migration guide](migration) for more information.
627
822
  - Reduce default async memory stack and heap size
628
823
  - Various documentation improvements
629
824
 
630
- #### Koffi 1.3.4 (2022-06-24)
825
+ #### Koffi 1.3.4
826
+
827
+ *Released on 2022-06-24*
631
828
 
632
829
  - Fix possible OpenBSD i386 crash with `(void)` functions
633
830
 
634
- #### Koffi 1.3.3 (2022-06-24)
831
+ #### Koffi 1.3.3
832
+
833
+ *Released on 2022-06-24*
635
834
 
636
835
  **Main fixes:**
637
836
 
@@ -643,16 +842,22 @@ Consult the [migration guide](migration) for more information.
643
842
  - Disable unsafe compiler optimizations
644
843
  - Various documentation improvements
645
844
 
646
- #### Koffi 1.3.2 (2022-06-23)
845
+ #### Koffi 1.3.2
846
+
847
+ *Released on 2022-06-23*
647
848
 
648
849
  - Support compilation in C++14 mode (graceful degradation)
649
850
  - Support older toolchains on Linux (tested on Debian 9)
650
851
 
651
- #### Koffi 1.3.1 (2022-06-22)
852
+ #### Koffi 1.3.1
853
+
854
+ *Released on 2022-06-22*
652
855
 
653
856
  - The prebuilt binary is tested when Koffi is installed, and a rebuild happens if it fails to load
654
857
 
655
- #### Koffi 1.3.0 (2022-06-22)
858
+ #### Koffi 1.3.0
859
+
860
+ *Released on 2022-06-22*
656
861
 
657
862
  **Major changes:**
658
863
 
@@ -670,15 +875,21 @@ Consult the [migration guide](migration) for more information.
670
875
 
671
876
  ### Koffi 1.2
672
877
 
673
- #### Koffi 1.2.4 (2022-06-12)
878
+ #### Koffi 1.2.4
879
+
880
+ *Released on 2022-06-12*
674
881
 
675
882
  - Windows ARM64 is now supported
676
883
 
677
- #### Koffi 1.2.3 (2022-06-11)
884
+ #### Koffi 1.2.3
885
+
886
+ *Released on 2022-06-11*
678
887
 
679
888
  - A prebuilt binary for macOS ARM64 (M1) is now included
680
889
 
681
- #### Koffi 1.2.1 (2022-06-11)
890
+ #### Koffi 1.2.1
891
+
892
+ *Released on 2022-06-11*
682
893
 
683
894
  This entry documents changes since version 1.1.0.
684
895