koffi 2.16.0-beta.2 → 2.16.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.
- package/CHANGELOG.md +59 -0
- package/build/koffi/darwin_arm64/koffi.node +0 -0
- package/build/koffi/darwin_x64/koffi.node +0 -0
- package/build/koffi/freebsd_arm64/koffi.node +0 -0
- package/build/koffi/freebsd_ia32/koffi.node +0 -0
- package/build/koffi/freebsd_x64/koffi.node +0 -0
- package/build/koffi/linux_arm64/koffi.node +0 -0
- package/build/koffi/linux_armhf/koffi.node +0 -0
- package/build/koffi/linux_ia32/koffi.node +0 -0
- package/build/koffi/linux_loong64/koffi.node +0 -0
- package/build/koffi/linux_riscv64d/koffi.node +0 -0
- package/build/koffi/linux_x64/koffi.node +0 -0
- package/build/koffi/musl_arm64/koffi.node +0 -0
- package/build/koffi/musl_x64/koffi.node +0 -0
- package/build/koffi/openbsd_ia32/koffi.node +0 -0
- package/build/koffi/openbsd_x64/koffi.node +0 -0
- package/build/koffi/win32_arm64/koffi.exp +0 -0
- package/build/koffi/win32_arm64/koffi.lib +0 -0
- package/build/koffi/win32_arm64/koffi.node +0 -0
- package/build/koffi/win32_ia32/koffi.exp +0 -0
- package/build/koffi/win32_ia32/koffi.lib +0 -0
- package/build/koffi/win32_ia32/koffi.node +0 -0
- package/build/koffi/win32_x64/koffi.exp +0 -0
- package/build/koffi/win32_x64/koffi.lib +0 -0
- package/build/koffi/win32_x64/koffi.node +0 -0
- package/index.d.ts +9 -11
- package/index.js +6 -9
- package/indirect.js +6 -9
- package/lib/native/base/base.cc +1 -6
- package/package.json +3 -3
- package/src/cnoke/assets/FindCNoke.cmake +27 -16
- package/src/cnoke/assets/toolchains.json +126 -0
- package/src/cnoke/cnoke.js +27 -33
- package/src/cnoke/src/builder.js +124 -63
- package/src/cnoke/src/tools.js +1 -5
- package/src/koffi/CMakeLists.txt +32 -21
- package/src/koffi/src/{abi/arm32.cc → abi_arm32.cc} +235 -238
- package/src/koffi/src/{abi/arm32_asm.S → abi_arm32_asm.S} +19 -15
- package/src/koffi/src/{abi/arm64.cc → abi_arm64.cc} +253 -274
- package/src/koffi/src/{abi/arm64_asm.S → abi_arm64_asm.S} +16 -10
- package/src/koffi/src/{abi/arm64_asm.asm → abi_arm64_asm.asm} +17 -10
- package/src/koffi/src/{abi/loong64_asm.S → abi_loong64_asm.S} +16 -10
- package/src/koffi/src/{abi/riscv64.cc → abi_riscv64.cc} +233 -236
- package/src/koffi/src/{abi/riscv64_asm.S → abi_riscv64_asm.S} +16 -10
- package/src/koffi/src/{abi/x64_sysv.cc → abi_x64_sysv.cc} +208 -212
- package/src/koffi/src/{abi/x64_sysv_asm.S → abi_x64_sysv_asm.S} +17 -10
- package/src/koffi/src/{abi/x64_win.cc → abi_x64_win.cc} +175 -206
- package/src/koffi/src/{abi/x64_win_asm.S → abi_x64_win_asm.S} +49 -27
- package/src/koffi/src/{abi/x64_win_asm.asm → abi_x64_win_asm.asm} +54 -27
- package/src/koffi/src/{abi/x86.cc → abi_x86.cc} +187 -226
- package/src/koffi/src/{abi/x86_asm.S → abi_x86_asm.S} +36 -21
- package/src/koffi/src/{abi/x86_asm.asm → abi_x86_asm.asm} +31 -16
- package/src/koffi/src/call.cc +473 -287
- package/src/koffi/src/call.hh +15 -18
- package/src/koffi/src/ffi.cc +167 -183
- package/src/koffi/src/ffi.hh +59 -13
- package/src/koffi/src/init.js +1 -0
- package/src/koffi/src/util.cc +113 -159
- package/src/koffi/src/util.hh +23 -74
- package/src/koffi/src/win32.cc +13 -0
- package/src/koffi/src/win32.hh +7 -0
- package/src/koffi/tools/write_trampolines.js +77 -0
- package/doc/README.md +0 -27
- package/doc/assets.ini +0 -24
- package/doc/build.sh +0 -9
- package/doc/develop.sh +0 -15
- package/doc/pages/404.md +0 -17
- package/doc/pages.ini +0 -86
- package/doc/static/highlight.js +0 -8
- package/doc/static/koffi.css +0 -11
- package/doc/static/koffi.png +0 -0
- package/doc/static/logo.webp +0 -0
- package/doc/static/perf_linux.png +0 -0
- package/doc/static/perf_windows.png +0 -0
- package/doc/static/print.css +0 -10
- package/doc/templates/code.html +0 -48
- package/doc/templates/page.html +0 -47
- package/src/koffi/cmake/raylib.cmake +0 -85
- package/src/koffi/cmake/sqlite3.cmake +0 -9
- package/src/koffi/examples/electron-builder/README.md +0 -11
- package/src/koffi/examples/electron-builder/package.json +0 -21
- package/src/koffi/examples/electron-builder/src/app.js +0 -20
- package/src/koffi/examples/electron-builder/src/index.html +0 -143
- package/src/koffi/examples/electron-builder/src/preload.js +0 -5
- package/src/koffi/examples/electron-forge/README.md +0 -25
- package/src/koffi/examples/electron-forge/forge.config.js +0 -63
- package/src/koffi/examples/electron-forge/package.json +0 -39
- package/src/koffi/examples/electron-forge/src/index.css +0 -7
- package/src/koffi/examples/electron-forge/src/index.html +0 -143
- package/src/koffi/examples/electron-forge/src/main.js +0 -52
- package/src/koffi/examples/electron-forge/src/preload.js +0 -5
- package/src/koffi/examples/electron-forge/src/renderer.js +0 -31
- package/src/koffi/examples/electron-forge/webpack.main.config.js +0 -11
- package/src/koffi/examples/electron-forge/webpack.renderer.config.js +0 -13
- package/src/koffi/examples/electron-forge/webpack.rules.js +0 -35
- package/src/koffi/examples/node-esbuild/README.md +0 -19
- package/src/koffi/examples/node-esbuild/index.js +0 -2
- package/src/koffi/examples/node-esbuild/package.json +0 -16
- package/src/koffi/examples/nwjs/README.md +0 -20
- package/src/koffi/examples/nwjs/package.json +0 -11
- package/src/koffi/examples/nwjs/src/index.html +0 -145
- package/src/koffi/examples/nwjs/src/package.json +0 -10
- package/src/koffi/examples/yao-pkg/README.md +0 -17
- package/src/koffi/examples/yao-pkg/index.js +0 -2
- package/src/koffi/examples/yao-pkg/package.json +0 -22
- package/src/koffi/src/primitives.inc +0 -39
- package/src/koffi/src/trampolines/armasm.inc +0 -32771
- package/src/koffi/src/trampolines/gnu.inc +0 -24577
- package/src/koffi/src/trampolines/masm32.inc +0 -32769
- package/src/koffi/src/trampolines/masm64.inc +0 -32769
- package/src/koffi/src/trampolines/prototypes.inc +0 -16388
- package/vendor/node-addon-api/CHANGELOG.md +0 -1272
- package/vendor/node-addon-api/CODE_OF_CONDUCT.md +0 -4
- package/vendor/node-addon-api/CONTRIBUTING.md +0 -203
- package/vendor/node-addon-api/appveyor.yml +0 -37
- package/vendor/node-addon-api/benchmark/README.md +0 -47
- package/vendor/node-addon-api/benchmark/binding.gyp +0 -25
- package/vendor/node-addon-api/benchmark/function_args.cc +0 -250
- package/vendor/node-addon-api/benchmark/function_args.js +0 -60
- package/vendor/node-addon-api/benchmark/index.js +0 -34
- package/vendor/node-addon-api/benchmark/property_descriptor.cc +0 -84
- package/vendor/node-addon-api/benchmark/property_descriptor.js +0 -38
- package/vendor/node-addon-api/common.gypi +0 -21
- package/vendor/node-addon-api/doc/README.md +0 -145
- package/vendor/node-addon-api/doc/addon.md +0 -163
- package/vendor/node-addon-api/doc/array.md +0 -81
- package/vendor/node-addon-api/doc/array_buffer.md +0 -165
- package/vendor/node-addon-api/doc/async_context.md +0 -86
- package/vendor/node-addon-api/doc/async_operations.md +0 -31
- package/vendor/node-addon-api/doc/async_worker.md +0 -428
- package/vendor/node-addon-api/doc/async_worker_variants.md +0 -578
- package/vendor/node-addon-api/doc/basic_env.md +0 -200
- package/vendor/node-addon-api/doc/bigint.md +0 -97
- package/vendor/node-addon-api/doc/boolean.md +0 -68
- package/vendor/node-addon-api/doc/buffer.md +0 -245
- package/vendor/node-addon-api/doc/callback_scope.md +0 -54
- package/vendor/node-addon-api/doc/callbackinfo.md +0 -97
- package/vendor/node-addon-api/doc/checker-tool.md +0 -32
- package/vendor/node-addon-api/doc/class_property_descriptor.md +0 -123
- package/vendor/node-addon-api/doc/cmake-js.md +0 -87
- package/vendor/node-addon-api/doc/contributing/creating_a_release.md +0 -95
- package/vendor/node-addon-api/doc/conversion-tool.md +0 -28
- package/vendor/node-addon-api/doc/dataview.md +0 -248
- package/vendor/node-addon-api/doc/date.md +0 -68
- package/vendor/node-addon-api/doc/env.md +0 -87
- package/vendor/node-addon-api/doc/error.md +0 -120
- package/vendor/node-addon-api/doc/error_handling.md +0 -266
- package/vendor/node-addon-api/doc/escapable_handle_scope.md +0 -80
- package/vendor/node-addon-api/doc/external.md +0 -79
- package/vendor/node-addon-api/doc/external_buffer.md +0 -18
- package/vendor/node-addon-api/doc/finalization.md +0 -153
- package/vendor/node-addon-api/doc/function.md +0 -402
- package/vendor/node-addon-api/doc/function_reference.md +0 -238
- package/vendor/node-addon-api/doc/generator.md +0 -13
- package/vendor/node-addon-api/doc/handle_scope.md +0 -77
- package/vendor/node-addon-api/doc/hierarchy.md +0 -95
- package/vendor/node-addon-api/doc/instance_wrap.md +0 -408
- package/vendor/node-addon-api/doc/maybe.md +0 -76
- package/vendor/node-addon-api/doc/memory_management.md +0 -27
- package/vendor/node-addon-api/doc/name.md +0 -29
- package/vendor/node-addon-api/doc/node-gyp.md +0 -82
- package/vendor/node-addon-api/doc/number.md +0 -163
- package/vendor/node-addon-api/doc/object.md +0 -411
- package/vendor/node-addon-api/doc/object_lifetime_management.md +0 -83
- package/vendor/node-addon-api/doc/object_reference.md +0 -117
- package/vendor/node-addon-api/doc/object_wrap.md +0 -604
- package/vendor/node-addon-api/doc/prebuild_tools.md +0 -16
- package/vendor/node-addon-api/doc/promises.md +0 -130
- package/vendor/node-addon-api/doc/property_descriptor.md +0 -286
- package/vendor/node-addon-api/doc/propertylvalue.md +0 -50
- package/vendor/node-addon-api/doc/range_error.md +0 -59
- package/vendor/node-addon-api/doc/reference.md +0 -113
- package/vendor/node-addon-api/doc/setup.md +0 -115
- package/vendor/node-addon-api/doc/string.md +0 -93
- package/vendor/node-addon-api/doc/symbol.md +0 -61
- package/vendor/node-addon-api/doc/syntax_error.md +0 -66
- package/vendor/node-addon-api/doc/threadsafe.md +0 -121
- package/vendor/node-addon-api/doc/threadsafe_function.md +0 -290
- package/vendor/node-addon-api/doc/type_error.md +0 -59
- package/vendor/node-addon-api/doc/type_taggable.md +0 -40
- package/vendor/node-addon-api/doc/typed_array.md +0 -78
- package/vendor/node-addon-api/doc/typed_array_of.md +0 -137
- package/vendor/node-addon-api/doc/typed_threadsafe_function.md +0 -306
- package/vendor/node-addon-api/doc/value.md +0 -368
- package/vendor/node-addon-api/doc/version_management.md +0 -43
- package/vendor/node-addon-api/eslint.config.js +0 -5
- package/vendor/node-addon-api/except.gypi +0 -25
- package/vendor/node-addon-api/index.js +0 -14
- package/vendor/node-addon-api/node_addon_api.gyp +0 -42
- package/vendor/node-addon-api/node_api.gyp +0 -9
- package/vendor/node-addon-api/noexcept.gypi +0 -26
- package/vendor/node-addon-api/nothing.c +0 -0
- package/vendor/node-addon-api/package-support.json +0 -21
- package/vendor/node-addon-api/package.json +0 -480
- package/vendor/node-addon-api/release-please-config.json +0 -15
- package/vendor/node-addon-api/test/README.md +0 -91
- package/vendor/node-addon-api/test/addon.cc +0 -44
- package/vendor/node-addon-api/test/addon.js +0 -7
- package/vendor/node-addon-api/test/addon_build/index.js +0 -49
- package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +0 -18
- package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +0 -63
- package/vendor/node-addon-api/test/addon_build/tpl/index.js +0 -9
- package/vendor/node-addon-api/test/addon_build/tpl/package.json +0 -11
- package/vendor/node-addon-api/test/addon_data.cc +0 -98
- package/vendor/node-addon-api/test/addon_data.js +0 -24
- package/vendor/node-addon-api/test/array_buffer.cc +0 -243
- package/vendor/node-addon-api/test/array_buffer.js +0 -70
- package/vendor/node-addon-api/test/async_context.cc +0 -36
- package/vendor/node-addon-api/test/async_context.js +0 -122
- package/vendor/node-addon-api/test/async_progress_queue_worker.cc +0 -248
- package/vendor/node-addon-api/test/async_progress_queue_worker.js +0 -180
- package/vendor/node-addon-api/test/async_progress_worker.cc +0 -357
- package/vendor/node-addon-api/test/async_progress_worker.js +0 -200
- package/vendor/node-addon-api/test/async_worker.cc +0 -341
- package/vendor/node-addon-api/test/async_worker.js +0 -264
- package/vendor/node-addon-api/test/async_worker_nocallback.js +0 -19
- package/vendor/node-addon-api/test/async_worker_persistent.cc +0 -63
- package/vendor/node-addon-api/test/async_worker_persistent.js +0 -24
- package/vendor/node-addon-api/test/basic_types/array.cc +0 -40
- package/vendor/node-addon-api/test/basic_types/array.js +0 -34
- package/vendor/node-addon-api/test/basic_types/boolean.cc +0 -40
- package/vendor/node-addon-api/test/basic_types/boolean.js +0 -34
- package/vendor/node-addon-api/test/basic_types/number.cc +0 -105
- package/vendor/node-addon-api/test/basic_types/number.js +0 -115
- package/vendor/node-addon-api/test/basic_types/value.cc +0 -177
- package/vendor/node-addon-api/test/basic_types/value.js +0 -173
- package/vendor/node-addon-api/test/bigint.cc +0 -91
- package/vendor/node-addon-api/test/bigint.js +0 -53
- package/vendor/node-addon-api/test/binding-swallowexcept.cc +0 -12
- package/vendor/node-addon-api/test/binding.cc +0 -200
- package/vendor/node-addon-api/test/binding.gyp +0 -160
- package/vendor/node-addon-api/test/buffer.cc +0 -185
- package/vendor/node-addon-api/test/buffer.h +0 -26
- package/vendor/node-addon-api/test/buffer.js +0 -150
- package/vendor/node-addon-api/test/buffer_new_or_copy-inl.h +0 -68
- package/vendor/node-addon-api/test/buffer_no_external.cc +0 -24
- package/vendor/node-addon-api/test/callbackInfo.cc +0 -27
- package/vendor/node-addon-api/test/callbackInfo.js +0 -9
- package/vendor/node-addon-api/test/callbackscope.cc +0 -39
- package/vendor/node-addon-api/test/callbackscope.js +0 -49
- package/vendor/node-addon-api/test/child_processes/addon.js +0 -11
- package/vendor/node-addon-api/test/child_processes/addon_data.js +0 -24
- package/vendor/node-addon-api/test/child_processes/objectwrap_function.js +0 -22
- package/vendor/node-addon-api/test/child_processes/threadsafe_function_exception.js +0 -33
- package/vendor/node-addon-api/test/child_processes/typed_threadsafe_function_exception.js +0 -19
- package/vendor/node-addon-api/test/common/index.js +0 -246
- package/vendor/node-addon-api/test/common/test_helper.h +0 -71
- package/vendor/node-addon-api/test/dataview/dataview.cc +0 -48
- package/vendor/node-addon-api/test/dataview/dataview.js +0 -35
- package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +0 -115
- package/vendor/node-addon-api/test/dataview/dataview_read_write.js +0 -92
- package/vendor/node-addon-api/test/date.cc +0 -45
- package/vendor/node-addon-api/test/date.js +0 -18
- package/vendor/node-addon-api/test/env_cleanup.cc +0 -100
- package/vendor/node-addon-api/test/env_cleanup.js +0 -55
- package/vendor/node-addon-api/test/env_misc.cc +0 -25
- package/vendor/node-addon-api/test/env_misc.js +0 -12
- package/vendor/node-addon-api/test/error.cc +0 -436
- package/vendor/node-addon-api/test/error.js +0 -111
- package/vendor/node-addon-api/test/error_handling_for_primitives.cc +0 -13
- package/vendor/node-addon-api/test/error_handling_for_primitives.js +0 -29
- package/vendor/node-addon-api/test/error_terminating_environment.js +0 -99
- package/vendor/node-addon-api/test/except_all.cc +0 -22
- package/vendor/node-addon-api/test/except_all.js +0 -14
- package/vendor/node-addon-api/test/exports.js +0 -19
- package/vendor/node-addon-api/test/external.cc +0 -85
- package/vendor/node-addon-api/test/external.js +0 -85
- package/vendor/node-addon-api/test/finalizer_order.cc +0 -152
- package/vendor/node-addon-api/test/finalizer_order.js +0 -98
- package/vendor/node-addon-api/test/function.cc +0 -338
- package/vendor/node-addon-api/test/function.js +0 -137
- package/vendor/node-addon-api/test/function_reference.cc +0 -204
- package/vendor/node-addon-api/test/function_reference.js +0 -157
- package/vendor/node-addon-api/test/globalObject/global_object.cc +0 -61
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +0 -31
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +0 -58
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +0 -40
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +0 -56
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +0 -28
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +0 -46
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +0 -31
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +0 -56
- package/vendor/node-addon-api/test/handlescope.cc +0 -86
- package/vendor/node-addon-api/test/handlescope.js +0 -16
- package/vendor/node-addon-api/test/index.js +0 -160
- package/vendor/node-addon-api/test/maybe/check.cc +0 -69
- package/vendor/node-addon-api/test/maybe/index.js +0 -50
- package/vendor/node-addon-api/test/memory_management.cc +0 -18
- package/vendor/node-addon-api/test/memory_management.js +0 -9
- package/vendor/node-addon-api/test/movable_callbacks.cc +0 -23
- package/vendor/node-addon-api/test/movable_callbacks.js +0 -21
- package/vendor/node-addon-api/test/name.cc +0 -110
- package/vendor/node-addon-api/test/name.js +0 -59
- package/vendor/node-addon-api/test/napi_child.js +0 -14
- package/vendor/node-addon-api/test/object/delete_property.cc +0 -38
- package/vendor/node-addon-api/test/object/delete_property.js +0 -41
- package/vendor/node-addon-api/test/object/finalizer.cc +0 -30
- package/vendor/node-addon-api/test/object/finalizer.js +0 -28
- package/vendor/node-addon-api/test/object/get_property.cc +0 -34
- package/vendor/node-addon-api/test/object/get_property.js +0 -40
- package/vendor/node-addon-api/test/object/has_own_property.cc +0 -34
- package/vendor/node-addon-api/test/object/has_own_property.js +0 -34
- package/vendor/node-addon-api/test/object/has_property.cc +0 -38
- package/vendor/node-addon-api/test/object/has_property.js +0 -37
- package/vendor/node-addon-api/test/object/object.cc +0 -430
- package/vendor/node-addon-api/test/object/object.js +0 -218
- package/vendor/node-addon-api/test/object/object_deprecated.cc +0 -70
- package/vendor/node-addon-api/test/object/object_deprecated.js +0 -42
- package/vendor/node-addon-api/test/object/object_freeze_seal.cc +0 -25
- package/vendor/node-addon-api/test/object/object_freeze_seal.js +0 -61
- package/vendor/node-addon-api/test/object/set_property.cc +0 -45
- package/vendor/node-addon-api/test/object/set_property.js +0 -30
- package/vendor/node-addon-api/test/object/subscript_operator.cc +0 -58
- package/vendor/node-addon-api/test/object/subscript_operator.js +0 -17
- package/vendor/node-addon-api/test/object_reference.cc +0 -417
- package/vendor/node-addon-api/test/object_reference.js +0 -262
- package/vendor/node-addon-api/test/objectwrap.cc +0 -295
- package/vendor/node-addon-api/test/objectwrap.js +0 -309
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +0 -26
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +0 -18
- package/vendor/node-addon-api/test/objectwrap_function.cc +0 -43
- package/vendor/node-addon-api/test/objectwrap_function.js +0 -6
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +0 -30
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +0 -13
- package/vendor/node-addon-api/test/objectwrap_removewrap.cc +0 -45
- package/vendor/node-addon-api/test/objectwrap_removewrap.js +0 -32
- package/vendor/node-addon-api/test/objectwrap_worker_thread.js +0 -20
- package/vendor/node-addon-api/test/promise.cc +0 -111
- package/vendor/node-addon-api/test/promise.js +0 -43
- package/vendor/node-addon-api/test/reference.cc +0 -78
- package/vendor/node-addon-api/test/reference.js +0 -20
- package/vendor/node-addon-api/test/require_basic_finalizers/index.js +0 -38
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/addon.cc +0 -12
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/binding.gyp +0 -48
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/index.js +0 -3
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/package.json +0 -11
- package/vendor/node-addon-api/test/run_script.cc +0 -56
- package/vendor/node-addon-api/test/run_script.js +0 -45
- package/vendor/node-addon-api/test/symbol.cc +0 -79
- package/vendor/node-addon-api/test/symbol.js +0 -66
- package/vendor/node-addon-api/test/testUtil.js +0 -54
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +0 -230
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +0 -225
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +0 -155
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +0 -13
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.cc +0 -50
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.js +0 -20
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +0 -125
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +0 -14
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +0 -27
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +0 -7
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +0 -240
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +0 -59
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +0 -55
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +0 -98
- package/vendor/node-addon-api/test/thunking_manual.cc +0 -127
- package/vendor/node-addon-api/test/thunking_manual.js +0 -16
- package/vendor/node-addon-api/test/type_taggable.cc +0 -66
- package/vendor/node-addon-api/test/type_taggable.js +0 -59
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +0 -215
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +0 -188
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +0 -120
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +0 -14
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.cc +0 -39
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.js +0 -13
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +0 -127
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +0 -14
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +0 -32
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +0 -8
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +0 -237
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +0 -59
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +0 -67
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +0 -98
- package/vendor/node-addon-api/test/typedarray-bigint.js +0 -58
- package/vendor/node-addon-api/test/typedarray.cc +0 -413
- package/vendor/node-addon-api/test/typedarray.js +0 -103
- package/vendor/node-addon-api/test/value_type_cast.cc +0 -60
- package/vendor/node-addon-api/test/value_type_cast.js +0 -106
- package/vendor/node-addon-api/test/version_management.cc +0 -28
- package/vendor/node-addon-api/test/version_management.js +0 -29
- package/vendor/node-addon-api/tools/README.md +0 -73
- package/vendor/node-addon-api/tools/check-napi.js +0 -99
- package/vendor/node-addon-api/tools/clang-format.js +0 -71
- package/vendor/node-addon-api/tools/conversion.js +0 -301
- package/vendor/node-addon-api/unit-test/README.md +0 -28
- package/vendor/node-addon-api/unit-test/binding-file-template.js +0 -39
- package/vendor/node-addon-api/unit-test/binding.gyp +0 -72
- package/vendor/node-addon-api/unit-test/exceptions.js +0 -32
- package/vendor/node-addon-api/unit-test/generate-binding-cc.js +0 -61
- package/vendor/node-addon-api/unit-test/injectTestParams.js +0 -101
- package/vendor/node-addon-api/unit-test/listOfTestModules.js +0 -88
- package/vendor/node-addon-api/unit-test/matchModules.js +0 -65
- package/vendor/node-addon-api/unit-test/setup.js +0 -13
- package/vendor/node-addon-api/unit-test/spawnTask.js +0 -26
- package/vendor/node-addon-api/unit-test/test.js +0 -30
- package/vendor/node-api-headers/CHANGELOG.md +0 -130
- package/vendor/node-api-headers/CODE_OF_CONDUCT.md +0 -4
- package/vendor/node-api-headers/CONTRIBUTING.md +0 -32
- package/vendor/node-api-headers/CREATING_A_RELEASE.md +0 -68
- package/vendor/node-api-headers/index.js +0 -17
- package/vendor/node-api-headers/lib/clang-utils.js +0 -50
- package/vendor/node-api-headers/lib/parse-utils.js +0 -92
- package/vendor/node-api-headers/package.json +0 -59
- package/vendor/node-api-headers/release-please-config.json +0 -12
- package/vendor/node-api-headers/scripts/update-headers.js +0 -246
- package/vendor/node-api-headers/scripts/write-symbols.js +0 -154
- package/vendor/node-api-headers/scripts/write-win32-def.js +0 -52
- package/vendor/node-api-headers/symbols.js +0 -257
- package/vendor/node-api-headers/test/parse-utils.js +0 -21
- /package/doc/{pages/benchmarks.md → benchmarks.md} +0 -0
- /package/doc/{pages/callbacks.md → callbacks.md} +0 -0
- /package/doc/{pages/contribute.md → contribute.md} +0 -0
- /package/doc/{pages/functions.md → functions.md} +0 -0
- /package/doc/{pages/index.md → index.md} +0 -0
- /package/doc/{pages/input.md → input.md} +0 -0
- /package/doc/{pages/migration.md → migration.md} +0 -0
- /package/doc/{pages/misc.md → misc.md} +0 -0
- /package/doc/{pages/output.md → output.md} +0 -0
- /package/doc/{pages/packaging.md → packaging.md} +0 -0
- /package/doc/{pages/platforms.md → platforms.md} +0 -0
- /package/doc/{pages/pointers.md → pointers.md} +0 -0
- /package/doc/{pages/start.md → start.md} +0 -0
- /package/doc/{pages/unions.md → unions.md} +0 -0
- /package/doc/{pages/variables.md → variables.md} +0 -0
- /package/src/koffi/src/{abi/loong64.cc → abi_loong64.cc} +0 -0
package/src/koffi/src/util.hh
CHANGED
|
@@ -98,76 +98,13 @@ static inline bool IsObject(Napi::Value value)
|
|
|
98
98
|
return value.IsObject() && !IsNullOrUndefined(value) && !value.IsArray();
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
bool TryNumber(Napi::Value value, T *out_value)
|
|
101
|
+
static inline bool IsRawBuffer(Napi::Value value)
|
|
103
102
|
{
|
|
104
|
-
|
|
105
|
-
{
|
|
106
|
-
T v;
|
|
107
|
-
napi_status status;
|
|
108
|
-
|
|
109
|
-
if constexpr (std::is_same_v<T, double>) {
|
|
110
|
-
status = napi_get_value_double(value.Env(), value, &v);
|
|
111
|
-
} else if constexpr (std::is_same_v<T, float>) {
|
|
112
|
-
double d;
|
|
113
|
-
status = napi_get_value_double(value.Env(), value, &d);
|
|
114
|
-
v = (float)d;
|
|
115
|
-
} else {
|
|
116
|
-
int64_t i64;
|
|
117
|
-
status = napi_get_value_int64(value.Env(), value, &i64);
|
|
118
|
-
v = (T)i64;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
if (status == napi_ok) [[likely]] {
|
|
122
|
-
*out_value = v;
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (value.IsBigInt()) {
|
|
128
|
-
Napi::BigInt bigint = value.As<Napi::BigInt>();
|
|
129
|
-
|
|
130
|
-
bool lossless;
|
|
131
|
-
*out_value = (T)bigint.Uint64Value(&lossless);
|
|
132
|
-
|
|
133
|
-
return true;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return false;
|
|
103
|
+
return value.IsTypedArray() || value.IsArrayBuffer();
|
|
137
104
|
}
|
|
138
105
|
|
|
139
|
-
static inline
|
|
106
|
+
static inline Span<uint8_t> GetRawBuffer(Napi::Value value)
|
|
140
107
|
{
|
|
141
|
-
if (IsNullOrUndefined(value)) {
|
|
142
|
-
*out_ptr = nullptr;
|
|
143
|
-
return true;
|
|
144
|
-
} else if (uintptr_t ptr = 0; TryNumber(value, &ptr)) {
|
|
145
|
-
*out_ptr = (void *)ptr;
|
|
146
|
-
return true;
|
|
147
|
-
} else if (value.IsTypedArray()) {
|
|
148
|
-
napi_get_typedarray_info(value.Env(), value, nullptr, nullptr, out_ptr, nullptr, nullptr);
|
|
149
|
-
return true;
|
|
150
|
-
} else if (value.IsExternal()) {
|
|
151
|
-
Napi::External<void> external = value.As<Napi::External<void>>();
|
|
152
|
-
|
|
153
|
-
*out_ptr = (void *)external.Data();
|
|
154
|
-
return true;
|
|
155
|
-
} else if (value.IsArrayBuffer()) {
|
|
156
|
-
Napi::ArrayBuffer buffer = value.As<Napi::ArrayBuffer>();
|
|
157
|
-
|
|
158
|
-
*out_ptr = (void *)buffer.Data();
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
return false;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
static inline bool TryBuffer(Napi::Value value, Span<uint8_t> *out_buffer)
|
|
166
|
-
{
|
|
167
|
-
// Before somewhere around Node 20.12, napi_get_buffer_info() would assert/crash
|
|
168
|
-
// when used with something it did not support, instead of returning napi_invalid_arg.
|
|
169
|
-
// So we need to call napi_is_buffer(), at least for now.
|
|
170
|
-
|
|
171
108
|
if (value.IsBuffer()) {
|
|
172
109
|
void *ptr = nullptr;
|
|
173
110
|
size_t length = 0;
|
|
@@ -175,20 +112,35 @@ static inline bool TryBuffer(Napi::Value value, Span<uint8_t> *out_buffer)
|
|
|
175
112
|
// Assume it works
|
|
176
113
|
napi_get_buffer_info(value.Env(), value, &ptr, &length);
|
|
177
114
|
|
|
178
|
-
|
|
179
|
-
return true;
|
|
115
|
+
return MakeSpan((uint8_t *)ptr, (Size)length);
|
|
180
116
|
} else if (value.IsArrayBuffer()) {
|
|
181
117
|
Napi::ArrayBuffer buffer = value.As<Napi::ArrayBuffer>();
|
|
182
118
|
|
|
183
|
-
|
|
184
|
-
return true;
|
|
119
|
+
return MakeSpan((uint8_t *)buffer.Data(), (Size)buffer.ByteLength());
|
|
185
120
|
}
|
|
186
121
|
|
|
187
|
-
|
|
122
|
+
K_UNREACHABLE();
|
|
188
123
|
}
|
|
189
124
|
|
|
190
125
|
int GetTypedArrayType(const TypeInfo *type);
|
|
191
126
|
|
|
127
|
+
template <typename T>
|
|
128
|
+
T GetNumber(Napi::Value value)
|
|
129
|
+
{
|
|
130
|
+
K_ASSERT(value.IsNumber() || value.IsBigInt());
|
|
131
|
+
|
|
132
|
+
if (value.IsNumber()) [[likely]] {
|
|
133
|
+
return (T)value.As<Napi::Number>().DoubleValue();
|
|
134
|
+
} else if (value.IsBigInt()) {
|
|
135
|
+
Napi::BigInt bigint = value.As<Napi::BigInt>();
|
|
136
|
+
|
|
137
|
+
bool lossless;
|
|
138
|
+
return (T)bigint.Uint64Value(&lossless);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
K_UNREACHABLE();
|
|
142
|
+
}
|
|
143
|
+
|
|
192
144
|
template <typename T>
|
|
193
145
|
Size NullTerminatedLength(const T *ptr)
|
|
194
146
|
{
|
|
@@ -260,9 +212,6 @@ static inline Napi::Array GetOwnPropertyNames(Napi::Object obj)
|
|
|
260
212
|
|
|
261
213
|
Napi::Function WrapFunction(Napi::Env env, const FunctionInfo *func);
|
|
262
214
|
|
|
263
|
-
Napi::Value WrapPointer(Napi::Env env, const TypeInfo *ref, void *ptr);
|
|
264
|
-
Napi::Value WrapCallback(Napi::Env env, const TypeInfo *ref, void *ptr);
|
|
265
|
-
|
|
266
215
|
bool DetectCallConvention(Span<const char> name, CallConvention *out_convention);
|
|
267
216
|
|
|
268
217
|
int AnalyseFlat(const TypeInfo *type, FunctionRef<void(const TypeInfo *type, int offset, int count)> func);
|
package/src/koffi/src/win32.cc
CHANGED
|
@@ -180,6 +180,19 @@ int GetDllMachine(const wchar_t *filename)
|
|
|
180
180
|
return GetFileMachine(h, true);
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
extern "C" int __cdecl SehHandler(void *ptr, void *, void *ctx, void *)
|
|
184
|
+
{
|
|
185
|
+
EXCEPTION_RECORD *rec = (EXCEPTION_RECORD *)ptr;
|
|
186
|
+
|
|
187
|
+
if (!(rec->ExceptionFlags & (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND))) {
|
|
188
|
+
EXCEPTION_POINTERS ep = { rec, (CONTEXT *)ctx };
|
|
189
|
+
UnhandledExceptionFilter(&ep);
|
|
190
|
+
ExitProcess(rec->ExceptionCode);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return ExceptionContinueSearch;
|
|
194
|
+
}
|
|
195
|
+
|
|
183
196
|
}
|
|
184
197
|
|
|
185
198
|
#endif
|
package/src/koffi/src/win32.hh
CHANGED
|
@@ -87,6 +87,11 @@ static_assert(offsetof(TEB, DeallocationStack) == 0xE0C);
|
|
|
87
87
|
static_assert(offsetof(TEB, GuaranteedStackBytes) == 0x0F78);
|
|
88
88
|
static_assert(offsetof(TEB, SameTebFlags) == 0xFCA);
|
|
89
89
|
|
|
90
|
+
struct SehFrame {
|
|
91
|
+
void *Next;
|
|
92
|
+
void *Handler;
|
|
93
|
+
};
|
|
94
|
+
|
|
90
95
|
#endif
|
|
91
96
|
|
|
92
97
|
static inline TEB *GetTEB()
|
|
@@ -109,4 +114,6 @@ void *LoadWindowsLibrary(Napi::Env env, Span<const char> path); // Returns HANDL
|
|
|
109
114
|
int GetSelfMachine();
|
|
110
115
|
int GetDllMachine(const wchar_t *filename);
|
|
111
116
|
|
|
117
|
+
extern "C" int __cdecl SehHandler(void *ptr, void *, void *ctx, void *);
|
|
118
|
+
|
|
112
119
|
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
|
|
4
|
+
|
|
5
|
+
const fs = require('fs');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
|
|
8
|
+
main();
|
|
9
|
+
|
|
10
|
+
async function main() {
|
|
11
|
+
try {
|
|
12
|
+
await run();
|
|
13
|
+
} catch (err) {
|
|
14
|
+
console.error(err);
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function run() {
|
|
20
|
+
let args = process.argv.slice(2);
|
|
21
|
+
|
|
22
|
+
if (args.length < 2)
|
|
23
|
+
throw new Error('Usage: write_trampolines.js DIRECTORY N');
|
|
24
|
+
|
|
25
|
+
let dest_dir = args[0]?.trim?.();
|
|
26
|
+
let n = parseInt(args[1], 10);
|
|
27
|
+
|
|
28
|
+
if (!dest_dir)
|
|
29
|
+
throw new Error('Destination directory is empty');
|
|
30
|
+
if (Number.isNaN(n))
|
|
31
|
+
throw new Error('N must be an integer');
|
|
32
|
+
|
|
33
|
+
if (!fs.existsSync(dest_dir))
|
|
34
|
+
fs.mkdirSync(dest_dir);
|
|
35
|
+
|
|
36
|
+
writeAsmTrampolines(path.join(dest_dir, 'gnu.inc'), n,
|
|
37
|
+
i => `.global SYMBOL(Trampoline${i})`,
|
|
38
|
+
i => `SYMBOL(Trampoline${i}):\n trampoline ${i}`
|
|
39
|
+
);
|
|
40
|
+
writeAsmTrampolines(path.join(dest_dir, 'armasm.inc'), n,
|
|
41
|
+
i => ` EXPORT Trampoline${i}`,
|
|
42
|
+
i => `Trampoline${i} PROC\n trampoline ${i}\n ENDP`,
|
|
43
|
+
` END`
|
|
44
|
+
);
|
|
45
|
+
writeAsmTrampolines(path.join(dest_dir, 'masm64.inc'), n,
|
|
46
|
+
i => `public Trampoline${i}`,
|
|
47
|
+
i => `Trampoline${i} proc frame\n trampoline ${i}\nTrampoline${i} endp`
|
|
48
|
+
);
|
|
49
|
+
writeAsmTrampolines(path.join(dest_dir, 'masm32.inc'), n,
|
|
50
|
+
i => `public Trampoline${i}`,
|
|
51
|
+
i => `Trampoline${i} proc\n trampoline ${i}\nTrampoline${i} endp`
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function writeAsmTrampolines(filename, n, fmt_export, fmt_proc, end = null) {
|
|
56
|
+
let lines = [];
|
|
57
|
+
|
|
58
|
+
for (let i = 0; i < n; i++) {
|
|
59
|
+
let line = fmt_export(i);
|
|
60
|
+
lines.push(line);
|
|
61
|
+
}
|
|
62
|
+
lines.push('');
|
|
63
|
+
|
|
64
|
+
for (let i = 0; i < n; i++) {
|
|
65
|
+
let line = fmt_proc(i);
|
|
66
|
+
lines.push(line);
|
|
67
|
+
}
|
|
68
|
+
lines.push('');
|
|
69
|
+
|
|
70
|
+
if (end !== null) {
|
|
71
|
+
lines.push(end);
|
|
72
|
+
lines.push('');
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
let content = lines.join('\n');
|
|
76
|
+
fs.writeFileSync(filename, content);
|
|
77
|
+
}
|
package/doc/README.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Install required dependencies
|
|
2
|
-
|
|
3
|
-
On Debian and Ubuntu use the following commands:
|
|
4
|
-
|
|
5
|
-
```sh
|
|
6
|
-
sudo apt update
|
|
7
|
-
sudo apt install build-essential
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
On RPM-based distributions such as Fedora or Rocky Linux, use:
|
|
11
|
-
|
|
12
|
-
```sh
|
|
13
|
-
sudo dnf groupinstall "Development Tools"
|
|
14
|
-
sudo dnf install clang
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
# Run the develop script
|
|
18
|
-
|
|
19
|
-
Run the development script from the website directory:
|
|
20
|
-
|
|
21
|
-
```sh
|
|
22
|
-
./develop.sh
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Open the proposed link at `http://localhost:8000/`.
|
|
26
|
-
|
|
27
|
-
Change page content at will and builds will happen automatically. You just need to refresh the page.
|
package/doc/assets.ini
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
EsbuildPath = ../../vendor/esbuild/native/node_modules/@esbuild
|
|
2
|
-
EsbuildRoot = ../..
|
|
3
|
-
|
|
4
|
-
[favicon.png]
|
|
5
|
-
Type = Copy
|
|
6
|
-
From = static/koffi.png
|
|
7
|
-
|
|
8
|
-
[static]
|
|
9
|
-
Type = Copy
|
|
10
|
-
From = static
|
|
11
|
-
Ignore = favicon.png *.js *.css
|
|
12
|
-
|
|
13
|
-
[static/site.min.js]
|
|
14
|
-
Type = Bundle
|
|
15
|
-
Source = ../../lib/web/flat/static.js
|
|
16
|
-
|
|
17
|
-
[static/highlight.min.js]
|
|
18
|
-
Type = Bundle
|
|
19
|
-
Source = static/highlight.js
|
|
20
|
-
|
|
21
|
-
[static/site.min.css]
|
|
22
|
-
Type = Bundle
|
|
23
|
-
Source = static/koffi.css
|
|
24
|
-
Options = --loader:.woff2=file --loader:.png=file --loader:.webp=file
|
package/doc/build.sh
DELETED
package/doc/develop.sh
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/bin/bash -e
|
|
2
|
-
|
|
3
|
-
cd "$(dirname $0)"
|
|
4
|
-
|
|
5
|
-
../../bootstrap.sh
|
|
6
|
-
../../felix -pFast nestor hodler
|
|
7
|
-
|
|
8
|
-
trap 'kill $(jobs -p) 2>/dev/null' EXIT
|
|
9
|
-
trap 'kill $(jobs -p) 2>/dev/null' SIGINT
|
|
10
|
-
|
|
11
|
-
mkdir -p dist
|
|
12
|
-
../../bin/Fast/nestor dist/ &
|
|
13
|
-
../../bin/Fast/hodler . -O dist --loop --sourcemap &
|
|
14
|
-
|
|
15
|
-
wait $(jobs -p)
|
package/doc/pages/404.md
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
*The page you requested does not exist...*
|
|
2
|
-
|
|
3
|
-
<div class="error">Error 404</div>
|
|
4
|
-
|
|
5
|
-
<style>
|
|
6
|
-
main {
|
|
7
|
-
display: flex;
|
|
8
|
-
flex-direction: column;
|
|
9
|
-
align-items: center;
|
|
10
|
-
justify-content: center;
|
|
11
|
-
}
|
|
12
|
-
.error {
|
|
13
|
-
margin: 0.8em;
|
|
14
|
-
font-size: 4em;
|
|
15
|
-
font-weight: bold;
|
|
16
|
-
}
|
|
17
|
-
</style>
|
package/doc/pages.ini
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
[pages/index.md]
|
|
2
|
-
Title = Koffi
|
|
3
|
-
Menu = Overview
|
|
4
|
-
Description = Koffi presentation and features
|
|
5
|
-
Template = templates/page.html
|
|
6
|
-
|
|
7
|
-
[pages/start.md]
|
|
8
|
-
Title = Get started | Koffi
|
|
9
|
-
Menu = Documentation / Get started
|
|
10
|
-
Description = Install and start using Koffi in your Node.js project
|
|
11
|
-
Template = templates/code.html
|
|
12
|
-
|
|
13
|
-
[pages/functions.md]
|
|
14
|
-
Title = Function calls | Koffi
|
|
15
|
-
Menu = Documentation / Function calls
|
|
16
|
-
Description = Call native functions
|
|
17
|
-
Template = templates/code.html
|
|
18
|
-
|
|
19
|
-
[pages/input.md]
|
|
20
|
-
Title = Input parameters | Koffi
|
|
21
|
-
Menu = Documentation / Input parameters
|
|
22
|
-
Template = templates/code.html
|
|
23
|
-
|
|
24
|
-
[pages/pointers.md]
|
|
25
|
-
Title = Data pointers | Koffi
|
|
26
|
-
Menu = Documentation / Data pointers
|
|
27
|
-
Template = templates/code.html
|
|
28
|
-
|
|
29
|
-
[pages/output.md]
|
|
30
|
-
Title = Output parameters | Koffi
|
|
31
|
-
Menu = Documentation / Output parameters
|
|
32
|
-
Template = templates/code.html
|
|
33
|
-
|
|
34
|
-
[pages/unions.md]
|
|
35
|
-
Title = Union values | Koffi
|
|
36
|
-
Menu = Documentation / Union values
|
|
37
|
-
Template = templates/code.html
|
|
38
|
-
|
|
39
|
-
[pages/variables.md]
|
|
40
|
-
Title = Exported variables | Koffi
|
|
41
|
-
Menu = Documentation / Exported variables
|
|
42
|
-
Template = templates/code.html
|
|
43
|
-
|
|
44
|
-
[pages/callbacks.md]
|
|
45
|
-
Title = Callbacks | Koffi
|
|
46
|
-
Menu = Documentation / Javascript callbacks
|
|
47
|
-
Template = templates/code.html
|
|
48
|
-
|
|
49
|
-
[pages/misc.md]
|
|
50
|
-
Title = Miscellaneous | Koffi
|
|
51
|
-
Menu = Documentation / Miscellaneous
|
|
52
|
-
Template = templates/code.html
|
|
53
|
-
|
|
54
|
-
[pages/packaging.md]
|
|
55
|
-
Title = Packaging | Koffi
|
|
56
|
-
Menu = Documentation / Bundlers and Koffi
|
|
57
|
-
Template = templates/code.html
|
|
58
|
-
|
|
59
|
-
[pages/migration.md]
|
|
60
|
-
Title = Migration | Koffi
|
|
61
|
-
Menu = Documentation / Migration guide
|
|
62
|
-
Description = Migration between major Koffi versions
|
|
63
|
-
Template = templates/code.html
|
|
64
|
-
|
|
65
|
-
[pages/benchmarks.md]
|
|
66
|
-
Title = Benchmarks | Koffi
|
|
67
|
-
Menu = Benchmarks
|
|
68
|
-
Description = Performance of Koffi compared to NAPI and node-ffi
|
|
69
|
-
Template = templates/code.html
|
|
70
|
-
|
|
71
|
-
[pages/contribute.md]
|
|
72
|
-
Title = Contribute | Koffi
|
|
73
|
-
Menu = Contribute
|
|
74
|
-
Description = How to get, build and test Koffi code
|
|
75
|
-
Template = templates/code.html
|
|
76
|
-
|
|
77
|
-
[changelog]
|
|
78
|
-
SourceFile = ../../src/koffi/CHANGELOG.md
|
|
79
|
-
Title = Changelog | Koffi
|
|
80
|
-
Menu = Changelog
|
|
81
|
-
Description = List of Koffi versions
|
|
82
|
-
Template = templates/page.html
|
|
83
|
-
|
|
84
|
-
[pages/404.md]
|
|
85
|
-
Title = Page not found
|
|
86
|
-
Template = templates/page.html
|
package/doc/static/highlight.js
DELETED
package/doc/static/koffi.css
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/* SPDX-License-Identifier: MIT */
|
|
2
|
-
/* SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com> */
|
|
3
|
-
|
|
4
|
-
@import url('../../../lib/web/flat/flat.css');
|
|
5
|
-
@import url('../../../vendor/highlight.js/styles/base16/tomorrow.css');
|
|
6
|
-
|
|
7
|
-
html {
|
|
8
|
-
--top_color: #ec7400;
|
|
9
|
-
--button_color: #ec7400;
|
|
10
|
-
--anchor_color: #ec7400;
|
|
11
|
-
}
|
package/doc/static/koffi.png
DELETED
|
Binary file
|
package/doc/static/logo.webp
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/doc/static/print.css
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/* SPDX-License-Identifier: MIT */
|
|
2
|
-
/* SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com> */
|
|
3
|
-
|
|
4
|
-
@media print {
|
|
5
|
-
.schema { width: 90%; }
|
|
6
|
-
|
|
7
|
-
.columns { display: block; }
|
|
8
|
-
.columns > * { width: auto; }
|
|
9
|
-
.columns > * + * { margin-top: 3em; }
|
|
10
|
-
}
|
package/doc/templates/code.html
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en" class="nojs">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
|
|
7
|
-
<title>{{ TITLE }}</title>
|
|
8
|
-
<meta name="author" content="Niels Martignène">
|
|
9
|
-
<meta name="description" content="{{ DESCRIPTION }}">
|
|
10
|
-
<link rel="icon" href="{{ ASSET favicon.png }}">
|
|
11
|
-
|
|
12
|
-
<meta name="theme-color" content="#6aa051">
|
|
13
|
-
<link rel="stylesheet" href="{{ ASSET static/site.min.css }}">
|
|
14
|
-
|
|
15
|
-
<script type="text/javascript" src="{{ ASSET static/site.min.js }}"></script>
|
|
16
|
-
<script type="text/javascript" src="{{ ASSET static/highlight.min.js }}"></script>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<nav id="top">
|
|
21
|
-
<div class="deploy"></div>
|
|
22
|
-
<menu>
|
|
23
|
-
<a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}" width="370" height="198" alt="" /></a>
|
|
24
|
-
|
|
25
|
-
{{ LINKS }}
|
|
26
|
-
|
|
27
|
-
<div style="flex: 1;"></div>
|
|
28
|
-
|
|
29
|
-
<li><a href="https://www.npmjs.com/package/koffi" style="border-bottom-color: transparent; margin-top: 8px;"><img src="https://img.shields.io/npm/v/koffi?color=brightgreen&cacheSeconds=7200" alt="NPM"/></a></li>
|
|
30
|
-
<li><a href="https://github.com/Koromix/koffi" style="border-bottom-color: transparent; margin-top: 8px;"><img src="https://img.shields.io/badge/GitHub-Koffi-ff6600" alt="GitHub"/></a></li>
|
|
31
|
-
</menu>
|
|
32
|
-
</nav>
|
|
33
|
-
|
|
34
|
-
{{ TOC }}
|
|
35
|
-
|
|
36
|
-
<main>
|
|
37
|
-
{{ CONTENT }}
|
|
38
|
-
</main>
|
|
39
|
-
|
|
40
|
-
<footer>
|
|
41
|
-
<div>Koffi © 2025</div>
|
|
42
|
-
<div style="font-size: 0.8em;">
|
|
43
|
-
Niels Martignène (<a href="https://koromix.dev/" target="_blank">Koromix</a>)<br>
|
|
44
|
-
<a href="mailto:niels.martignene@protonmail.com" style="font-weight: bold; color: inherit;">niels.martignene@protonmail.com</a>
|
|
45
|
-
</div>
|
|
46
|
-
</footer>
|
|
47
|
-
</body>
|
|
48
|
-
</html>
|
package/doc/templates/page.html
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en" class="nojs">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
|
|
7
|
-
<title>{{ TITLE }}</title>
|
|
8
|
-
<meta name="author" content="Niels Martignène">
|
|
9
|
-
<meta name="description" content="{{ DESCRIPTION }}">
|
|
10
|
-
<link rel="icon" href="{{ ASSET favicon.png }}">
|
|
11
|
-
|
|
12
|
-
<meta name="theme-color" content="#6aa051">
|
|
13
|
-
<link rel="stylesheet" href="{{ ASSET static/site.min.css }}">
|
|
14
|
-
|
|
15
|
-
<script type="text/javascript" src="{{ ASSET static/site.min.js }}"></script>
|
|
16
|
-
</head>
|
|
17
|
-
|
|
18
|
-
<body>
|
|
19
|
-
<nav id="top">
|
|
20
|
-
<div class="deploy"></div>
|
|
21
|
-
<menu>
|
|
22
|
-
<a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}" width="370" height="198" alt="" /></a>
|
|
23
|
-
|
|
24
|
-
{{ LINKS }}
|
|
25
|
-
|
|
26
|
-
<div style="flex: 1;"></div>
|
|
27
|
-
|
|
28
|
-
<li><a href="https://www.npmjs.com/package/koffi" style="border-bottom-color: transparent; margin-top: 8px;"><img src="https://img.shields.io/npm/v/koffi?color=brightgreen&cacheSeconds=7200" alt="NPM"/></a></li>
|
|
29
|
-
<li><a href="https://github.com/Koromix/koffi" style="border-bottom-color: transparent; margin-top: 8px;"><img src="https://img.shields.io/badge/GitHub-Koffi-ff6600" alt="GitHub"/></a></li>
|
|
30
|
-
</menu>
|
|
31
|
-
</nav>
|
|
32
|
-
|
|
33
|
-
{{ TOC }}
|
|
34
|
-
|
|
35
|
-
<main>
|
|
36
|
-
{{ CONTENT }}
|
|
37
|
-
</main>
|
|
38
|
-
|
|
39
|
-
<footer>
|
|
40
|
-
<div>Koffi © 2025</div>
|
|
41
|
-
<div style="font-size: 0.8em;">
|
|
42
|
-
Niels Martignène (<a href="https://koromix.dev/" target="_blank">Koromix</a>)<br>
|
|
43
|
-
<a href="mailto:niels.martignene@protonmail.com" style="font-weight: bold; color: inherit;">niels.martignene@protonmail.com</a>
|
|
44
|
-
</div>
|
|
45
|
-
</footer>
|
|
46
|
-
</body>
|
|
47
|
-
</html>
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# SPDX-License-Identifier: MIT
|
|
2
|
-
# SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
|
|
3
|
-
|
|
4
|
-
add_library(raylib SHARED
|
|
5
|
-
../../../vendor/raylib/src/rcore.c
|
|
6
|
-
../../../vendor/raylib/src/rshapes.c
|
|
7
|
-
../../../vendor/raylib/src/rtextures.c
|
|
8
|
-
../../../vendor/raylib/src/rtext.c
|
|
9
|
-
../../../vendor/raylib/src/rmodels.c
|
|
10
|
-
../../../vendor/raylib/src/utils.c
|
|
11
|
-
../../../vendor/raylib/src/rglfw.c
|
|
12
|
-
../../../vendor/raylib/src/raudio.c
|
|
13
|
-
)
|
|
14
|
-
set_target_properties(raylib PROPERTIES PREFIX "")
|
|
15
|
-
target_include_directories(raylib PRIVATE ../../../vendor/raylib/src/external/glfw/include)
|
|
16
|
-
target_compile_definitions(raylib PRIVATE PLATFORM_DESKTOP GRAPHICS_API_OPENGL_21 BUILD_LIBTYPE_SHARED NDEBUG)
|
|
17
|
-
|
|
18
|
-
if(MSVC)
|
|
19
|
-
target_compile_options(raylib PRIVATE /wd4244 /wd4305)
|
|
20
|
-
else()
|
|
21
|
-
target_compile_options(raylib PRIVATE -Wno-sign-compare -Wno-old-style-declaration
|
|
22
|
-
-Wno-unused-function -Wno-missing-field-initializers
|
|
23
|
-
-Wno-unused-value -Wno-implicit-fallthrough -Wno-stringop-overflow
|
|
24
|
-
-Wno-unused-result)
|
|
25
|
-
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
26
|
-
target_compile_options(raylib PRIVATE -Wno-unknown-warning-option)
|
|
27
|
-
endif()
|
|
28
|
-
endif()
|
|
29
|
-
|
|
30
|
-
if(WIN32)
|
|
31
|
-
target_compile_definitions(raylib PRIVATE _GLFW_WIN32 _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE)
|
|
32
|
-
target_link_libraries(raylib PRIVATE winmm)
|
|
33
|
-
endif()
|
|
34
|
-
|
|
35
|
-
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
36
|
-
target_compile_definitions(raylib PRIVATE _GNU_SOURCE)
|
|
37
|
-
endif()
|
|
38
|
-
|
|
39
|
-
if(CMAKE_SYSTEM_NAME MATCHES "BSD")
|
|
40
|
-
target_include_directories(raylib PRIVATE /usr/local/include)
|
|
41
|
-
endif()
|
|
42
|
-
|
|
43
|
-
if(APPLE)
|
|
44
|
-
target_compile_options(raylib PRIVATE -Wno-unknown-warning-option -Wno-macro-redefined)
|
|
45
|
-
target_compile_definitions(raylib PRIVATE _GLFW_COCOA GL_SILENCE_DEPRECATION)
|
|
46
|
-
set_source_files_properties(../../../vendor/raylib/src/rglfw.c PROPERTIES COMPILE_FLAGS "-x objective-c")
|
|
47
|
-
target_link_libraries(raylib PRIVATE "-framework Cocoa" "-framework IOKit" "-framework CoreFoundation" "-framework OpenGL")
|
|
48
|
-
endif()
|
|
49
|
-
|
|
50
|
-
if(UNIX AND NOT APPLE)
|
|
51
|
-
set(missing_xlib "")
|
|
52
|
-
|
|
53
|
-
find_path(XLIB_INCLUDE_DIRS X11/Xlib.h)
|
|
54
|
-
if(NOT XLIB_INCLUDE_DIRS)
|
|
55
|
-
list(APPEND missing_xlib Xlib)
|
|
56
|
-
endif()
|
|
57
|
-
find_path(XCURSOR_INCLUDE_DIRS X11/Xcursor/Xcursor.h)
|
|
58
|
-
if(NOT XCURSOR_INCLUDE_DIRS)
|
|
59
|
-
list(APPEND missing_xlib Xcursor)
|
|
60
|
-
endif()
|
|
61
|
-
find_path(XRANDR_INCLUDE_DIRS X11/extensions/Xrandr.h)
|
|
62
|
-
if(NOT XRANDR_INCLUDE_DIRS)
|
|
63
|
-
list(APPEND missing_xlib Xrandr)
|
|
64
|
-
endif()
|
|
65
|
-
find_path(XKB_INCLUDE_DIRS X11/XKBlib.h)
|
|
66
|
-
if(NOT XKB_INCLUDE_DIRS)
|
|
67
|
-
list(APPEND missing_xlib Xkbcommon)
|
|
68
|
-
endif()
|
|
69
|
-
find_path(XINERAMA_INCLUDE_DIRS X11/extensions/Xinerama.h)
|
|
70
|
-
if(NOT XINERAMA_INCLUDE_DIRS)
|
|
71
|
-
list(APPEND missing_xlib Xinerama)
|
|
72
|
-
endif()
|
|
73
|
-
find_path(XINPUT_INCLUDE_DIRS X11/extensions/XInput2.h)
|
|
74
|
-
if(NOT XINPUT_INCLUDE_DIRS)
|
|
75
|
-
list(APPEND missing_xlib XInput2)
|
|
76
|
-
endif()
|
|
77
|
-
|
|
78
|
-
if(missing_xlib)
|
|
79
|
-
list(JOIN missing_xlib ", " missing_xlib_str)
|
|
80
|
-
message(FATAL_ERROR "Missing X11 development files: ${missing_xlib_str}")
|
|
81
|
-
endif()
|
|
82
|
-
|
|
83
|
-
target_compile_definitions(raylib PRIVATE _GLFW_X11)
|
|
84
|
-
target_include_directories(raylib PRIVATE ${XLIB_INCLUDE_DIRS})
|
|
85
|
-
endif()
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# SPDX-License-Identifier: MIT
|
|
2
|
-
# SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
|
|
3
|
-
|
|
4
|
-
add_library(sqlite3 SHARED ../../../vendor/sqlite3mc/sqlite3.c)
|
|
5
|
-
set_target_properties(sqlite3 PROPERTIES PREFIX "")
|
|
6
|
-
|
|
7
|
-
if(WIN32)
|
|
8
|
-
target_compile_definitions(sqlite3 PRIVATE SQLITE_API=__declspec\(dllexport\))
|
|
9
|
-
endif()
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
This is a simple example shows:
|
|
2
|
-
|
|
3
|
-
- How to communicate with Koffi from a renderer window
|
|
4
|
-
- How to use electron-builder with an application that uses Koffi
|
|
5
|
-
|
|
6
|
-
Use the following commands to package the app for your system:
|
|
7
|
-
|
|
8
|
-
```sh
|
|
9
|
-
npm install
|
|
10
|
-
npm run dist
|
|
11
|
-
```
|