koffi 1.0.1 → 1.0.4
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/CMakeLists.txt +12 -11
- package/README.md +23 -20
- package/build/qemu/1.0.4/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/1.0.4/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/1.0.4/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/1.0.4/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/1.0.4/koffi_linux_arm.tar.gz +0 -0
- package/build/qemu/1.0.4/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/1.0.4/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/1.0.4/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/1.0.4/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/1.0.4/koffi_win32_x64.tar.gz +0 -0
- package/package.json +8 -4
- package/qemu/qemu.js +794 -0
- package/qemu/registry/machines.json +415 -0
- package/qemu/registry/sha256sum.txt +45 -0
- package/src/{call_arm32.cc → abi_arm32.cc} +153 -219
- package/src/{call_arm32_fwd.S → abi_arm32_fwd.S} +0 -0
- package/src/{call_arm64.cc → abi_arm64.cc} +130 -123
- package/src/{call_arm64_fwd.S → abi_arm64_fwd.S} +0 -0
- package/src/{call_x64_sysv.cc → abi_x64_sysv.cc} +138 -135
- package/src/{call_x64_sysv_fwd.S → abi_x64_sysv_fwd.S} +0 -0
- package/src/{call_x64_win.cc → abi_x64_win.cc} +107 -99
- package/src/{call_x64_win_fwd.asm → abi_x64_win_fwd.asm} +0 -0
- package/src/{call_x86.cc → abi_x86.cc} +110 -107
- package/src/{call_x86_fwd.S → abi_x86_fwd.S} +0 -0
- package/src/{call_x86_fwd.asm → abi_x86_fwd.asm} +0 -0
- package/src/call.cc +353 -0
- package/src/call.hh +132 -4
- package/src/ffi.cc +16 -2
- package/src/ffi.hh +8 -12
- package/src/util.cc +7 -280
- package/src/util.hh +0 -107
- package/test/CMakeLists.txt +1 -0
- package/test/misc.c +355 -0
- package/test/misc.def +3 -0
- package/test/misc.js +227 -0
- package/test/raylib.js +165 -0
- package/test/sqlite.js +104 -0
- package/vendor/libcc/libcc.hh +1 -1
- package/build/qemu/1.0.1/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/1.0.1/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/1.0.1/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/1.0.1/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/1.0.1/koffi_linux_arm.tar.gz +0 -0
- package/build/qemu/1.0.1/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/1.0.1/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/1.0.1/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/1.0.1/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/1.0.1/koffi_win32_x64.tar.gz +0 -0
package/CMakeLists.txt
CHANGED
|
@@ -24,11 +24,12 @@ endif()
|
|
|
24
24
|
# ---- Koffi ----
|
|
25
25
|
|
|
26
26
|
set(KOFFI_SRC
|
|
27
|
-
src/
|
|
28
|
-
src/
|
|
29
|
-
src/
|
|
30
|
-
src/
|
|
31
|
-
src/
|
|
27
|
+
src/call.cc
|
|
28
|
+
src/abi_arm32.cc
|
|
29
|
+
src/abi_arm64.cc
|
|
30
|
+
src/abi_x64_sysv.cc
|
|
31
|
+
src/abi_x64_win.cc
|
|
32
|
+
src/abi_x86.cc
|
|
32
33
|
src/ffi.cc
|
|
33
34
|
src/parser.cc
|
|
34
35
|
src/util.cc
|
|
@@ -36,19 +37,19 @@ set(KOFFI_SRC
|
|
|
36
37
|
)
|
|
37
38
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
38
39
|
if(WIN32)
|
|
39
|
-
list(APPEND KOFFI_SRC src/
|
|
40
|
+
list(APPEND KOFFI_SRC src/abi_x64_win_fwd.asm)
|
|
40
41
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64")
|
|
41
|
-
list(APPEND KOFFI_SRC src/
|
|
42
|
+
list(APPEND KOFFI_SRC src/abi_arm64_fwd.S)
|
|
42
43
|
else()
|
|
43
|
-
list(APPEND KOFFI_SRC src/
|
|
44
|
+
list(APPEND KOFFI_SRC src/abi_x64_sysv_fwd.S)
|
|
44
45
|
endif()
|
|
45
46
|
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
46
47
|
if(WIN32)
|
|
47
|
-
list(APPEND KOFFI_SRC src/
|
|
48
|
+
list(APPEND KOFFI_SRC src/abi_x86_fwd.asm)
|
|
48
49
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i[3456]86|x86|AMD64")
|
|
49
|
-
list(APPEND KOFFI_SRC src/
|
|
50
|
+
list(APPEND KOFFI_SRC src/abi_x86_fwd.S)
|
|
50
51
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "armv[678]l")
|
|
51
|
-
list(APPEND KOFFI_SRC src/
|
|
52
|
+
list(APPEND KOFFI_SRC src/abi_arm32_fwd.S)
|
|
52
53
|
endif()
|
|
53
54
|
endif()
|
|
54
55
|
|
package/README.md
CHANGED
|
@@ -16,28 +16,31 @@ Koffi is a fast and easy-to-use FFI module for Node.js, with support for primiti
|
|
|
16
16
|
|
|
17
17
|
After the release of version 1.0, the following features are planned:
|
|
18
18
|
|
|
19
|
-
* 1.1:
|
|
20
|
-
* 1.2:
|
|
19
|
+
* 1.1: Asynchronous calls
|
|
20
|
+
* 1.2: C to JS callbacks
|
|
21
|
+
* 1.3: Unions and (fixed size) array types
|
|
21
22
|
|
|
22
23
|
The following platforms __are officially supported and tested__ at the moment:
|
|
23
24
|
|
|
24
|
-
Platoform | Architecture | JS to C
|
|
25
|
-
--------- | -------------------------------- |
|
|
26
|
-
Windows | x86 (cdecl, stdcall, fastcall) | 🟩
|
|
27
|
-
Windows | x86_64 | 🟩
|
|
28
|
-
Linux | x86 | 🟩
|
|
29
|
-
Linux | x86_64 | 🟩
|
|
30
|
-
Linux | ARM32+VFP Little Endian | 🟩
|
|
31
|
-
Linux | ARM64 Little Endian | 🟩
|
|
32
|
-
FreeBSD | x86 | 🟩
|
|
33
|
-
FreeBSD | x86_64 | 🟩
|
|
34
|
-
FreeBSD | ARM64 Little Endian | 🟩
|
|
35
|
-
macOS | x86_64 | 🟩
|
|
36
|
-
macOS | ARM64 (M1) Little Endian | 🟩
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
OpenBSD |
|
|
40
|
-
|
|
25
|
+
Platoform | Architecture | JS to C | C to JS (callback) | Pre-built binary
|
|
26
|
+
--------- | -------------------------------- | -------- | ------------------ | ----------------
|
|
27
|
+
Windows | x86 (cdecl, stdcall, fastcall) | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
28
|
+
Windows | x86_64 | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
29
|
+
Linux | x86 | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
30
|
+
Linux | x86_64 | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
31
|
+
Linux | ARM32+VFP Little Endian | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
32
|
+
Linux | ARM64 Little Endian | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
33
|
+
FreeBSD | x86 | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
34
|
+
FreeBSD | x86_64 | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
35
|
+
FreeBSD | ARM64 Little Endian | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
36
|
+
macOS | x86_64 | 🟩 Yes | 🟥 No | 🟩 Yes
|
|
37
|
+
macOS | ARM64 (M1) Little Endian | 🟩 Yes | 🟥 No | 🟥 No
|
|
38
|
+
OpenBSD | x86_64 | 🟧 Maybe | 🟥 No | 🟥 No
|
|
39
|
+
OpenBSD | x86 | 🟧 Maybe | 🟥 No | 🟥 No
|
|
40
|
+
OpenBSD | ARM64 Little Endian | 🟧 Maybe | 🟥 No | 🟥 No
|
|
41
|
+
NetBSD | x86_64 | 🟧 Maybe | 🟥 No | 🟥 No
|
|
42
|
+
NetBSD | x86 | 🟧 Maybe | 🟥 No | 🟥 No
|
|
43
|
+
NetBSD | ARM64 Little Endian | 🟧 Maybe | 🟥 No | 🟥 No
|
|
41
44
|
|
|
42
45
|
🟩 Tested, fully operational
|
|
43
46
|
🟧 May work, but not actively tested
|
|
@@ -101,7 +104,7 @@ MessageBoxA(null, 'Hello', 'Foobar', MB_ICONINFORMATION);
|
|
|
101
104
|
|
|
102
105
|
## Raylib example
|
|
103
106
|
|
|
104
|
-
This section assumes you know how to build C shared libraries, such as Raylib. You may need to fix the
|
|
107
|
+
This section assumes you know how to build C shared libraries, such as Raylib. You may need to fix the path to the library before you can do anything.
|
|
105
108
|
|
|
106
109
|
```js
|
|
107
110
|
const koffi = require('koffi');
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "koffi",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Fast and simple FFI (foreign function interface) for Node.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"foreign",
|
|
@@ -40,10 +40,14 @@
|
|
|
40
40
|
"benchmark/CMakeLists.txt",
|
|
41
41
|
"benchmark/atoi_*",
|
|
42
42
|
"benchmark/raylib_*",
|
|
43
|
+
"qemu/qemu.js",
|
|
44
|
+
"qemu/registry",
|
|
43
45
|
"test/CMakeLists.txt",
|
|
44
|
-
"test/
|
|
45
|
-
"test/
|
|
46
|
-
"test/
|
|
46
|
+
"test/misc.c",
|
|
47
|
+
"test/misc.def",
|
|
48
|
+
"test/misc.js",
|
|
49
|
+
"test/raylib.js",
|
|
50
|
+
"test/sqlite.js",
|
|
47
51
|
"vendor",
|
|
48
52
|
"LICENSE.txt",
|
|
49
53
|
"README.md",
|