Skip to content

Commit a8da485

Browse files
committed
update readme
1 parent 853b5d2 commit a8da485

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

β€ŽREADME.md

+23-12
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,27 @@ The fast (and dangerous πŸ‰) node.js FFI library
66

77
This is an initial Proof of Concept for surfacing all the lower level bindings
88
necessary into JS-land so we can generate FFI wrappers from JS itself, without
9-
any dependencies on third party non-JS libraries like libffi or libtcc.
9+
any dependencies on third party non-JS libraries like ```libffi``` or ```libtcc```.
1010

11-
This should run on node.js current and LTS on Linux/x64. Additions will be made
12-
shortly to allow building and running on macos/arm64 and Linux/arm64/raspberry pi.
11+
This should run on [```node.js```](https://nodejs.org) current and LTS on ```Linux x64/arm64``` and ```macos arm64```.
12+
It has been tested on ```Raspberry Pi 3B+``` which has a ```Cortex A53``` and works fine there.
13+
It will also probably work on older versions of ```node.js``` but will need to be
14+
rebuilt for older versions of V8 that ```node.js``` embeds. Please report on issues
15+
you find.
1316

14-
It should also be possible to do the same on Windows and other platforms. It's will
15-
*just* be a matter of implementing the assembler for the small subset of instructions
16-
required to wrap standard C function calls and implementing the calling conventions
17-
for the different OS's.
17+
It currently supports (with bugs and pretty much zero safety) passing any ```integer```
18+
types, ```strings``` and ```pointers```. float support and struct passing will be coming a
19+
little later. There are benchmarks coming soon that will show how to do callbacks
20+
from ```C/C++``` to ```JS``` too.
21+
22+
It should be pretty easy to add a lot of libraries to this using the [bindings
23+
definitions](https://github.com/just-js/lo/tree/main/lib) that already exist for the [lo](https://github.com/just-js/lo) runtime. It should also be possible to
24+
run this on [```Bun```](https://bun.sh) if there is some work done on Bun side to add symbols for the
25+
V8 fastcall api's (which won't have any effect on Bun/JSC).
26+
27+
Windows support should not be a lot of work (famous last words!).
28+
29+
Right now assumption is 64-bit platforms only.
1830

1931
πŸ‰πŸ‰πŸ‰ Beware! πŸ‰πŸ‰πŸ‰
2032
There are many dragons here. This is surfacing a lot of dangerous things
@@ -29,13 +41,12 @@ we add have on the baseline implementation.
2941
| OS | Arch | Supported | Planned |
3042
| --- | --- | --- | --- |
3143
| linux | x64 | :white_check_mark: | |
32-
| linux | arm64 | | :heavy_check_mark: |
44+
| linux | arm64 | :white_check_mark: | |
3345
| macos | x64 | | :heavy_check_mark: |
34-
| macos | arn64 | | :heavy_check_mark: |
46+
| macos | arn64 | :white_check_mark: | |
3547
| windows | x64 | | :heavy_check_mark: |
36-
| windows | x64 | | |
37-
| android | arm64 | | |
38-
48+
| windows | x64 | | :heavy_check_mark: |
49+
| android | arm64 | | :heavy_check_mark: |
3950

4051
## Building
4152

0 commit comments

Comments
Β (0)