darwin-x64 refresh
This commit is contained in:
parent
4ada56688f
commit
255ad00bf4
@ -300,7 +300,7 @@
|
||||
<Row>
|
||||
<Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/duktape#rust"><Data ss:Type="String">Duktape</Data></Cell>
|
||||
<Cell><Data ss:Type="String">Rust</Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
|
||||
@ -350,7 +350,7 @@
|
||||
<Row>
|
||||
<Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/v8#python"><Data ss:Type="String">V8</Data></Cell>
|
||||
<Cell><Data ss:Type="String">Python</Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
|
||||
@ -370,7 +370,7 @@
|
||||
<Row>
|
||||
<Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/jsc#rust"><Data ss:Type="String">JSC</Data></Cell>
|
||||
<Cell><Data ss:Type="String">Rust</Data></Cell>
|
||||
<Cell ss:StyleID="s16"/>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell>
|
||||
<Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell>
|
||||
<Cell ss:StyleID="s16"/>
|
||||
<Cell ss:StyleID="s16"/>
|
||||
|
@ -121,7 +121,7 @@ This demo was last tested in the following deployments:
|
||||
|
||||
| Architecture | BunJS | Date |
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `1.1.39` | 2024-12-17 |
|
||||
| `darwin-x64` | `1.2.8` | 2025-03-31 |
|
||||
| `darwin-arm` | `1.2.7` | 2025-03-30 |
|
||||
| `win11-x64` | `1.1.42` | 2024-12-22 |
|
||||
| `win11-arm` | `1.2.3` | 2025-02-23 |
|
||||
|
@ -40,7 +40,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | JS Engine | Pandas | Python | Date |
|
||||
|:-------------|:----------------|:-------|:-------|:-----------|
|
||||
| `darwin-x64` | Duktape `2.7.0` | 2.2.3 | 3.13.1 | 2024-12-31 |
|
||||
| `darwin-x64` | Duktape `2.7.0` | 2.2.3 | 3.13.1 | 2025-03-31 |
|
||||
| `darwin-arm` | Duktape `2.7.0` | 2.2.3 | 3.13.2 | 2025-03-30 |
|
||||
| `win11-x64` | Duktape `2.7.0` | 2.2.3 | 3.11.8 | 2024-12-21 |
|
||||
| `win11-arm` | Duktape `2.7.0` | 2.2.3 | 3.13.2 | 2025-02-23 |
|
||||
@ -527,7 +527,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | JS Engine | Polars | Python | Date |
|
||||
|:-------------|:----------------|:--------|:-------|:-----------|
|
||||
| `darwin-x64` | Duktape `2.7.0` | 1.18.0 | 3.13.1 | 2024-12-31 |
|
||||
| `darwin-x64` | Duktape `2.7.0` | 1.26.0 | 3.13.1 | 2025-03-31 |
|
||||
| `darwin-arm` | Duktape `2.7.0` | 1.26.0 | 3.13.2 | 2025-03-30 |
|
||||
| `win11-x64` | Duktape `2.7.0` | 1.17.1 | 3.11.8 | 2024-12-21 |
|
||||
| `win11-arm` | Duktape `2.7.0` | 1.23.0 | 3.13.2 | 2025-02-23 |
|
||||
|
@ -402,18 +402,18 @@ This demo was tested in the following environments:
|
||||
|
||||
| NodeJS | Date | Workarounds |
|
||||
|:-----------|:-----------|:-------------------------------|
|
||||
| `0.10.48` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `0.12.18` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `4.9.1` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `6.17.1` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `8.17.0` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `10.24.1` | 2024-06-21 | |
|
||||
| `12.22.12` | 2024-06-21 | |
|
||||
| `14.21.3` | 2024-06-21 | |
|
||||
| `16.20.2` | 2024-06-21 | |
|
||||
| `18.20.8` | 2025-03-30 | |
|
||||
| `20.18.0` | 2025-03-30 | |
|
||||
| `22.14.0` | 2025-03-30 | |
|
||||
| `0.10.48` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `0.12.18` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `4.9.1` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `6.17.1` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `8.17.0` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `10.24.1` | 2025-03-31 | |
|
||||
| `12.22.12` | 2025-03-31 | |
|
||||
| `14.21.3` | 2025-03-31 | |
|
||||
| `16.20.2` | 2025-03-31 | |
|
||||
| `18.20.8` | 2025-03-31 | |
|
||||
| `20.19.0` | 2025-03-31 | |
|
||||
| `22.14.0` | 2025-03-31 | |
|
||||
|
||||
The `NODE_TLS_REJECT_UNAUTHORIZED` workaround sets the value to `'0'`:
|
||||
|
||||
@ -444,7 +444,7 @@ If successful, the script will print CSV contents of the test file.
|
||||
|
||||
:::caution pass
|
||||
|
||||
For older versions of NodeJS, the script will fail due to a certificate error.
|
||||
For older versions of NodeJS, the script may fail due to a certificate error.
|
||||
The error can be suppressed by prepending the following line to the script:
|
||||
|
||||
```js title="SheetJSHTTPSGet.js (add to top)"
|
||||
@ -568,20 +568,20 @@ request(url, {encoding: null}, function(err, res, data) {
|
||||
|
||||
This demo was tested in the following environments:
|
||||
|
||||
| NodeJS | Date | Workarounds |
|
||||
|:-----------|:-----------|:-------------------------------|
|
||||
| `0.10.48` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `0.12.18` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `4.9.1` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `6.17.1` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `8.17.0` | 2024-06-21 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `10.24.1` | 2024-06-21 | |
|
||||
| `12.22.12` | 2024-06-21 | |
|
||||
| `14.21.3` | 2024-06-21 | |
|
||||
| `16.20.2` | 2024-06-21 | |
|
||||
| `18.20.8` | 2025-03-30 | |
|
||||
| `20.18.0` | 2025-03-30 | |
|
||||
| `22.14.0` | 2025-03-30 | |
|
||||
| NodeJS | `request` | Date | Workarounds |
|
||||
|:-----------|:----------|:-----------|:-------------------------------|
|
||||
| `0.10.48` | `2.22.0` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `0.12.18` | `2.22.0` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `4.9.1` | `2.22.0` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `6.17.1` | `2.88.2` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `8.17.0` | `2.88.2` | 2025-03-31 | `NODE_TLS_REJECT_UNAUTHORIZED` |
|
||||
| `10.24.1` | `2.88.2` | 2025-03-31 | |
|
||||
| `12.22.12` | `2.88.2` | 2025-03-31 | |
|
||||
| `14.21.3` | `2.88.2` | 2025-03-31 | |
|
||||
| `16.20.2` | `2.88.2` | 2025-03-31 | |
|
||||
| `18.20.8` | `2.88.2` | 2025-03-31 | |
|
||||
| `20.19.0` | `2.88.2` | 2025-03-31 | |
|
||||
| `22.14.0` | `2.88.2` | 2025-03-31 | |
|
||||
|
||||
The `NODE_TLS_REJECT_UNAUTHORIZED` workaround sets the value to `'0'`:
|
||||
|
||||
@ -612,7 +612,7 @@ If successful, the script will print CSV contents of the test file.
|
||||
|
||||
:::caution pass
|
||||
|
||||
For older versions of NodeJS, the script will fail due to a certificate error.
|
||||
For older versions of NodeJS, the script may fail due to a certificate error.
|
||||
The error can be suppressed by prepending the following line to the script:
|
||||
|
||||
```js title="SheetJSRequest.js (add to top)"
|
||||
@ -647,13 +647,16 @@ This demo was tested in the following environments:
|
||||
|
||||
| NodeJS | Axios | Date |
|
||||
|:-----------|:-------|:-----------|
|
||||
| `10.24.1` | 0.28.1 | 2024-06-21 |
|
||||
| `12.22.12` | 1.7.2 | 2024-06-21 |
|
||||
| `14.21.3` | 1.7.2 | 2024-06-21 |
|
||||
| `16.20.2` | 1.7.2 | 2024-06-21 |
|
||||
| `18.20.8` | 1.8.4 | 2025-03-30 |
|
||||
| `20.18.0` | 1.8.4 | 2025-03-30 |
|
||||
| `22.14.0` | 1.8.4 | 2025-03-30 |
|
||||
| `4.9.1` | 0.22.0 | 2025-03-31 |
|
||||
| `6.17.1` | 0.22.0 | 2025-03-31 |
|
||||
| `8.17.0` | 0.28.1 | 2025-03-31 |
|
||||
| `10.24.1` | 0.28.1 | 2025-03-31 |
|
||||
| `12.22.12` | 1.8.4 | 2025-03-31 |
|
||||
| `14.21.3` | 1.8.4 | 2025-03-31 |
|
||||
| `16.20.2` | 1.8.4 | 2025-03-31 |
|
||||
| `18.20.8` | 1.8.4 | 2025-03-31 |
|
||||
| `20.19.0` | 1.8.4 | 2025-03-31 |
|
||||
| `22.14.0` | 1.8.4 | 2025-03-31 |
|
||||
|
||||
:::
|
||||
|
||||
@ -694,6 +697,27 @@ node SheetJSAxios.js
|
||||
|
||||
If successful, the script will print CSV contents of the test file.
|
||||
|
||||
:::caution pass
|
||||
|
||||
Legacy NodeJS versions do not support `async` functions. The `async` function
|
||||
must be manually translated to a `then` chain:
|
||||
|
||||
```js title="SheetJSAxios.js (ES5)"
|
||||
const XLSX = require("xlsx"), axios = require("axios");
|
||||
|
||||
var url = 'https://docs.sheetjs.com/pres.numbers';
|
||||
|
||||
axios(url, {responseType:'arraybuffer'}).then(function(res) {
|
||||
/* at this point, res.data is a Buffer */
|
||||
var wb = XLSX.read(res.data, {type: "buffer"});
|
||||
/* print the first worksheet to console */
|
||||
var ws = wb.Sheets[wb.SheetNames[0]];
|
||||
console.log(XLSX.utils.sheet_to_csv(ws));
|
||||
});
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
</details>
|
||||
|
||||
## Other Platforms
|
||||
|
@ -332,7 +332,7 @@ This demo was tested in the following environments:
|
||||
|
||||
| Architecture | PhantomJS | Date |
|
||||
|:-------------|:----------|:-----------|
|
||||
| `darwin-x64` | `2.1.1` | 2024-12-17 |
|
||||
| `darwin-x64` | `2.1.1` | 2025-03-31 |
|
||||
| `win11-x64` | `2.1.1` | 2025-01-19 |
|
||||
| `linux-x64` | `2.1.1` | 2025-01-07 |
|
||||
|
||||
|
@ -372,7 +372,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | DenoDOM | Deno | Date |
|
||||
|:-------------|:--------|:-------|:-----------|
|
||||
| `darwin-x64` | 0.1.48 | 2.0.4 | 2024-10-30 |
|
||||
| `darwin-x64` | 0.1.48 | 2.2.6 | 2025-03-31 |
|
||||
| `darwin-arm` | 0.1.48 | 2.0.4 | 2024-10-30 |
|
||||
| `win11-x64` | 0.1.48 | 2.0.4 | 2024-10-30 |
|
||||
| `win11-arm` | 0.1.48 | 2.2.1 | 2025-02-23 |
|
||||
|
@ -239,8 +239,6 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS | Device | RN | Dev Platform | Date |
|
||||
|:-----------|:--------------------|:---------|:-------------|:-----------|
|
||||
| Android 34 | Pixel 3a | `0.76.5` | `darwin-x64` | 2024-12-31 |
|
||||
| iOS 18.2 | iPhone 16 Pro | `0.76.5` | `darwin-x64` | 2024-12-31 |
|
||||
| Android 34 | Pixel 3a | `0.76.8` | `darwin-arm` | 2025-03-26 |
|
||||
| iOS 18.3 | iPhone 16 Pro | `0.76.8` | `darwin-arm` | 2025-03-26 |
|
||||
| Android 35 | Pixel 9 | `0.76.5` | `win11-x64` | 2024-12-22 |
|
||||
@ -1096,8 +1094,6 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS | Device | RN | Dev Platform | Date |
|
||||
|:-----------|:------------------|:---------|:-------------|:-----------|
|
||||
| Android 34 | Pixel 3a | `0.76.5` | `darwin-x64` | 2024-12-31 |
|
||||
| iOS 18.2 | iPhone 16 Pro | `0.76.5` | `darwin-x64` | 2024-12-31 |
|
||||
| Android 34 | Pixel 3a | `0.76.5` | `darwin-arm` | 2025-01-05 |
|
||||
| iOS 18.2 | iPhone 16 Pro | `0.76.5` | `darwin-arm` | 2025-01-05 |
|
||||
| Android 35 | Pixel 9 | `0.76.5` | `win11-x64` | 2024-12-22 |
|
||||
|
@ -51,8 +51,6 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS | Device | CapacitorJS + FS | Dev Platform | Date |
|
||||
|:-----------|:--------------------|:------------------|:-------------|:-----------|
|
||||
| Android 35 | Pixel 9 Pro | `6.2.0` / `6.0.3` | `darwin-x64` | 2025-01-19 |
|
||||
| iOS 18.2 | iPhone 16 Pro Max | `6.2.0` / `6.0.3` | `darwin-x64` | 2025-01-19 |
|
||||
| Android 34 | Pixel 3a | `7.1.0` / `7.0.0` | `darwin-arm` | 2025-03-30 |
|
||||
| iOS 18.2 | iPhone 16 Pro Max | `7.1.0` / `7.0.0` | `darwin-arm` | 2025-03-30 |
|
||||
| Android 35 | Pixel 9 | `6.2.0` / `6.0.2` | `win11-x64` | 2024-12-21 |
|
||||
|
@ -50,15 +50,15 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS | Device | Dart | Flutter | Date |
|
||||
|:-----------|:------------------|:--------|:---------|:-----------|
|
||||
| Android 30 | NVIDIA Shield | `3.4.3` | `3.22.2` | 2024-06-09 |
|
||||
| iOS 15.1 | iPad Pro | `3.4.3` | `3.22.2` | 2024-06-09 |
|
||||
| Android 34 | NVIDIA Shield | `3.7.2` | `3.29.2` | 2025-03-31 |
|
||||
| iOS 15.6 | iPhone 13 Pro Max | `3.7.2` | `3.29.2` | 2025-03-31 |
|
||||
|
||||
**Simulators**
|
||||
|
||||
| OS | Device | Dart | Flutter | Dev Platform | Date |
|
||||
|:-----------|:------------------|:--------|:---------|:-------------|:-----------|
|
||||
| Android 34 | Pixel 3a | `3.4.3` | `3.22.2` | `darwin-x64` | 2024-06-09 |
|
||||
| iOS 17.5 | iPhone 15 Pro Max | `3.4.3` | `3.22.2` | `darwin-x64` | 2024-06-09 |
|
||||
| Android 35 | Pixel 9 Pro XL | `3.7.2` | `3.29.2` | `darwin-x64` | 2025-03-31 |
|
||||
| iOS 18.3 | iPhone 16 Pro Max | `3.7.2` | `3.29.2` | `darwin-x64` | 2025-03-31 |
|
||||
| Android 35 | Pixel 3a | `3.5.0` | `3.24.0` | `win11-x64` | 2024-08-10 |
|
||||
|
||||
:::
|
||||
@ -236,8 +236,8 @@ Run `flutter doctor` and confirm the following items are checked:
|
||||
<TabItem value="macos" label="macOS" default>
|
||||
|
||||
<pre>
|
||||
<span {...g}>[✓]</span> Android toolchain - develop for Android devices (Android SDK version 34.0.0)
|
||||
<span {...g}>[✓]</span> Xcode - develop for iOS and macOS (Xcode 15.4)
|
||||
<span {...g}>[✓]</span> Android toolchain - develop for Android devices (Android SDK version 36.0.0)
|
||||
<span {...g}>[✓]</span> Xcode - develop for iOS and macOS (Xcode 16.2)
|
||||
</pre>
|
||||
|
||||
</TabItem>
|
||||
@ -351,12 +351,17 @@ Click "OK" in each window (3 windows) and restart your computer.
|
||||
|
||||
</details>
|
||||
|
||||
Run `flutter emulators` and look for `android` and (on macOS only) `ios`
|
||||
emulators.
|
||||
List all available emulators:
|
||||
|
||||
```bash
|
||||
flutter emulators
|
||||
```
|
||||
|
||||
<Tabs groupId="os">
|
||||
<TabItem value="linux" label="Linux">
|
||||
|
||||
There should be at least one `android` emulator:
|
||||
|
||||
```
|
||||
Id • Name • Manufacturer • Platform
|
||||
|
||||
@ -366,16 +371,20 @@ Pixel_3a_API_35 • Pixel 3a API 35 • Google • android
|
||||
</TabItem>
|
||||
<TabItem value="macos" label="macOS">
|
||||
|
||||
```
|
||||
Id • Name • Manufacturer • Platform
|
||||
There should be at least one `android` emulator and one `ios` simulator:
|
||||
|
||||
apple_ios_simulator • iOS Simulator • Apple • ios
|
||||
Pixel_3a_API_34 • Pixel 3a API 34 • Google • android
|
||||
```
|
||||
Id • Name • Manufacturer • Platform
|
||||
|
||||
apple_ios_simulator • iOS Simulator • Apple • ios
|
||||
Pixel_9_Pro_XL_API_35 • Pixel 9 Pro XL API 35 • Google • android
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
There should be at least one `android` emulator:
|
||||
|
||||
```
|
||||
Id • Name • Manufacturer • Platform
|
||||
|
||||
@ -420,16 +429,18 @@ List the available emulators with `flutter emulators`:
|
||||
% flutter emulators
|
||||
2 available emulators:
|
||||
|
||||
apple_ios_simulator • iOS Simulator • Apple • ios
|
||||
Pixel_3a_API_34 • Pixel 3a API 34 • Google • android
|
||||
^^^^^^^^^^^^^^^--- the first column is the name
|
||||
Id • Name • Manufacturer • Platform
|
||||
|
||||
apple_ios_simulator • iOS Simulator • Apple • ios
|
||||
Pixel_9_Pro_XL_API_35 • Pixel 9 Pro XL API 35 • Google • android
|
||||
^^^^^^^^^^^^^^^^^^^^^--- the first column is the name for `emulator avd`
|
||||
```
|
||||
|
||||
The first column shows the name that should be passed to `emulator -avd`. In a
|
||||
previous test, the name was `Pixel_3a_API_34` and the launch command was:
|
||||
previous test, the name was `Pixel_9_Pro_XL_API_35` and the launch command was:
|
||||
|
||||
```bash
|
||||
emulator -avd Pixel_3a_API_34
|
||||
emulator -avd Pixel_9_Pro_XL_API_35
|
||||
```
|
||||
|
||||
:::note pass
|
||||
@ -439,7 +450,7 @@ On macOS, `~/Library/Android/sdk/emulator/` is the typical location for the
|
||||
|
||||
```bash
|
||||
export PATH="$PATH":~/Library/Android/sdk/emulator
|
||||
emulator -avd Pixel_3a_API_34
|
||||
emulator -avd Pixel_9_Pro_XL_API_35
|
||||
```
|
||||
|
||||
:::
|
||||
@ -634,7 +645,7 @@ flutter -v -d emulator-5554 run
|
||||
|
||||
</details>
|
||||
|
||||
:::info pass
|
||||
:::info Troubleshooting
|
||||
|
||||
In some demo runs, the build failed with an Android SDK error:
|
||||
|
||||
@ -662,6 +673,57 @@ Searching for `minSdkVersion` should reveal the following line:
|
||||
minSdkVersion 21
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
In some demo runs, the build failed with an Android NDK error:
|
||||
|
||||
```
|
||||
Your project is configured with Android NDK 26.3.11579264, but the following plugin(s) depend on a different Android NDK version:
|
||||
- flutter_js requires Android NDK 27.0.12077973
|
||||
Fix this issue by using the highest Android NDK version (they are backward compatible).
|
||||
Add the following to /.../android/app/build.gradle.kts:
|
||||
|
||||
android {
|
||||
ndkVersion = "27.0.12077973"
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
This was fixed by editing `android/app/build.gradle.kts`.
|
||||
|
||||
Searching for `ndkVersion` should reveal the following line:
|
||||
|
||||
```text title="android\app\build.gradle.kts"
|
||||
ndkVersion = flutter.ndkVersion
|
||||
```
|
||||
|
||||
`flutter.ndkVersion` should be replaced with `27.0.12077973`:
|
||||
|
||||
```text title="android\app\build.gradle.kts"
|
||||
ndkVersion = "27.0.12077973"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
In some demo runs, the build failed with an Android namespace error:
|
||||
|
||||
```
|
||||
A problem occurred configuring project ':flutter_js'.
|
||||
> Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
|
||||
> Namespace not specified. Specify a namespace in the module's build file: /Users/sheetjs/.pub-cache/hosted/pub.dev/flutter_js-0.8.2/android/build.gradle. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace.
|
||||
```
|
||||
|
||||
This affects `flutter_js` version `0.8.2`.
|
||||
|
||||
The file (`flutter_js-0.8.2/android/build.gradle`) should be manually edited. In
|
||||
the `android` block, add a `namespace` field:
|
||||
|
||||
```text title="cached flutter_js android/build.gradle (add highlighted line)"
|
||||
android {
|
||||
// highlight-next-line
|
||||
namespace "io.abner.flutter_js"
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
11) Close the Android emulator.
|
||||
@ -704,6 +766,28 @@ The list should include the device:
|
||||
flutter build apk --release
|
||||
```
|
||||
|
||||
:::info Troubleshooting
|
||||
|
||||
In some demo runs, the build failed with an Android resource error:
|
||||
|
||||
```
|
||||
Execution failed for task ':flutter_js:verifyReleaseResources'.
|
||||
> A failure occurred while executing com.android.build.gradle.tasks.VerifyLibraryResourcesTask$Action
|
||||
> Android resource linking failed
|
||||
ERROR: /private/tmp/sheetjs_flutter/build/flutter_js/intermediates/merged_res/release/mergeReleaseResources/values/values.xml:194: AAPT: error: resource android:attr/lStar not found.
|
||||
```
|
||||
|
||||
The file (`flutter_js-0.8.2/android/build.gradle`) should be manually edited. In
|
||||
the `android` block, force the `compileSdkVersion` to be `31`:
|
||||
|
||||
```text title="cached flutter_js android/build.gradle (add highlighted line)"
|
||||
android {
|
||||
// highlight-next-line
|
||||
compileSdkVersion 31
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
17) Install on the Android device:
|
||||
|
||||
```bash
|
||||
@ -766,6 +850,16 @@ device will ask for permission:
|
||||
|
||||
Tap "OK" to continue.
|
||||
|
||||
:::info pass
|
||||
|
||||
In some test runs, the app requested for local network access:
|
||||
|
||||
> "Sheetjs Flutter" would like to find and connect to devices on your local network.
|
||||
|
||||
Local network access is not required for the demo. Select "Don't Allow".
|
||||
|
||||
:::
|
||||
|
||||
:::caution pass
|
||||
|
||||
When this demo was last tested, the build failed with an error:
|
||||
|
@ -207,8 +207,8 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS and Version | Architecture | Electron | Date |
|
||||
|:---------------|:-------------|:---------|:-----------|
|
||||
| macOS 15.2 | `darwin-x64` | `33.2.1` | 2024-12-31 |
|
||||
| macOS 14.5 | `darwin-arm` | `35.1.2` | 2025-03-38 |
|
||||
| macOS 15.3 | `darwin-x64` | `35.1.2` | 2025-03-31 |
|
||||
| macOS 14.5 | `darwin-arm` | `35.1.2` | 2025-03-30 |
|
||||
| Windows 11 | `win11-x64` | `33.2.1` | 2025-02-11 |
|
||||
| Windows 11 | `win11-arm` | `33.2.1` | 2025-02-23 |
|
||||
| Linux (HoloOS) | `linux-x64` | `33.2.1` | 2025-01-02 |
|
||||
|
@ -121,7 +121,7 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS and Version | Architecture | NW.js | Date | Notes |
|
||||
|:---------------|:-------------|:---------|:-----------|:---------------------|
|
||||
| macOS 15.2 | `darwin-x64` | `0.94.0` | 2024-12-31 | |
|
||||
| macOS 15.3.2 | `darwin-x64` | `0.94.0` | 2025-03-31 | |
|
||||
| macOS 14.5 | `darwin-arm` | `0.94.0` | 2025-03-30 | |
|
||||
| Windows 11 | `win11-x64` | `0.94.0` | 2024-12-19 | |
|
||||
| Windows 11 | `win11-arm` | `0.94.0` | 2025-02-23 | |
|
||||
|
@ -297,7 +297,7 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS and Version | Architecture | Wails | Date |
|
||||
|:---------------|:-------------|:----------|:-----------|
|
||||
| macOS 15.2 | `darwin-x64` | `v2.9.2` | 2024-12-31 |
|
||||
| macOS 15.3.2 | `darwin-x64` | `v2.10.1` | 2025-03-31 |
|
||||
| macOS 14.5 | `darwin-arm` | `v2.10.1` | 2025-03-30 |
|
||||
| Windows 11 | `win11-x64` | `v2.9.2` | 2024-12-21 |
|
||||
| Windows 11 | `win11-arm` | `v2.10` | 2025-02-23 |
|
||||
|
@ -353,7 +353,7 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS and Version | Architecture | Tauri | Date |
|
||||
|:---------------|:-------------|:----------|:-----------|
|
||||
| macOS 15.2 | `darwin-x64` | `v1.6.0` | 2024-12-31 |
|
||||
| macOS 15.3.2 | `darwin-x64` | `v1.6.0` | 2025-03-31 |
|
||||
| macOS 14.5 | `darwin-arm` | `v1.6.0` | 2025-03-30 |
|
||||
| Windows 11 | `win11-x64` | `v1.6.0` | 2024-12-21 |
|
||||
| Windows 11 | `win11-arm` | `v1.6.0` | 2025-02-23 |
|
||||
|
@ -192,7 +192,7 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS and Version | Architecture | Server | Client | Date |
|
||||
|:---------------|:-------------|:---------|:---------|:-----------|
|
||||
| macOS 15.2 | `darwin-x64` | `5.5.0` | `5.5.0` | 2024-12-31 |
|
||||
| macOS 15.3.2 | `darwin-x64` | `6.0.0` | `6.0.0` | 2025-03-31 |
|
||||
| macOS 14.5 | `darwin-arm` | `6.0.0` | `6.0.0` | 2025-03-30 |
|
||||
| Windows 11 | `win11-x64` | `5.5.0` | `5.5.0` | 2024-12-20 |
|
||||
| Windows 11 | `win11-arm` | `5.6.0` | `5.6.0` | 2025-02-23 |
|
||||
|
@ -50,7 +50,7 @@ This demo was tested in the following environments:
|
||||
| Windows 11 C# | `win11-x64` | `v0.75.11` | 2024-12-22 |
|
||||
| Windows 11 C++ | `win11-arm` | `v0.77.2` | 2025-02-23 |
|
||||
| Windows 11 C# | `win11-arm` | `v0.77.2` | 2025-02-23 |
|
||||
| MacOS 14.7 | `darwin-x64` | `v0.75.13` | 2024-10-26 |
|
||||
| MacOS 15.3.2 | `darwin-x64` | `v0.76.7` | 2025-03-31 |
|
||||
| MacOS 14.5 | `darwin-arm` | `v0.75.16` | 2024-12-22 |
|
||||
|
||||
:::
|
||||
@ -675,26 +675,15 @@ select `pres.xlsx` . The app will refresh and display the data from the file.
|
||||
|
||||
## macOS Demo
|
||||
|
||||
:::info pass
|
||||
|
||||
When the demo was last tested, the official website asserted that the React
|
||||
Native for macOS required React Native `0.71`.
|
||||
|
||||
**The official documentation is out of date.**
|
||||
|
||||
There exist official `react-native-macos` releases compatible with RN `0.75`
|
||||
|
||||
:::
|
||||
|
||||
0) Follow the "Setting up the development environment"[^6] guide in the React
|
||||
Native documentation for "React Native CLI Quickstart" + "macOS" + "iOS".
|
||||
|
||||
### Project Setup
|
||||
|
||||
1) Create a new React Native project using React Native `0.75.4`:
|
||||
1) Create a new React Native project using React Native `0.76.8`:
|
||||
|
||||
```bash
|
||||
npx -y @react-native-community/cli init SheetJSmacOS --version 0.75.4
|
||||
npx -y @react-native-community/cli init SheetJSmacOS --version 0.76.8
|
||||
cd SheetJSmacOS
|
||||
```
|
||||
|
||||
@ -714,6 +703,7 @@ scheme is fundamentally different from `react-native`.[^5]
|
||||
|
||||
```bash
|
||||
npx -y react-native-macos-init --no-telemetry
|
||||
cd macos; pod install; cd ..
|
||||
```
|
||||
|
||||
:::caution pass
|
||||
@ -827,7 +817,6 @@ A) Copy the highlighted line and paste under `/* Begin PBXBuildFile section */`:
|
||||
/* Begin PBXBuildFile section */
|
||||
// highlight-next-line
|
||||
4717DC6A28CC499A00A9BE56 /* RCTDocumentPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 4717DC6928CC499A00A9BE56 /* RCTDocumentPicker.m */; };
|
||||
2C5F4006FF53E87968033016 /* libPods-SheetJSmacOS-macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1DD40D19AD16D57CAA4CB6 /* libPods-SheetJSmacOS-macOS.a */; };
|
||||
```
|
||||
|
||||
:::
|
||||
|
@ -29,7 +29,7 @@ This demo was tested by SheetJS users in the following deployments:
|
||||
|
||||
| Architecture | Version | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `14.0` | 2024-06-05 |
|
||||
| `darwin-x64` | `14.1` | 2025-03-31 |
|
||||
| `win11-x64` | `14.0` | 2024-12-19 |
|
||||
|
||||
:::
|
||||
@ -181,12 +181,12 @@ This demo tests the NodeJS external engine and dedicated command line tools.
|
||||
|
||||
### NodeJS Engine
|
||||
|
||||
0) Install NodeJS. When the demo was tested, version `20.14.0` was installed.
|
||||
0) Install NodeJS. When the demo was tested, version `20.19.0` was installed.
|
||||
|
||||
1) Install dependencies in the Home folder (`~` or `$HOME` or `%HOMEPATH%`):
|
||||
|
||||
<CodeBlock language="bash">{`\
|
||||
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz zeromq@6.1.2`}
|
||||
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz zeromq@6.4.0`}
|
||||
</CodeBlock>
|
||||
|
||||
2) Open a new Mathematica Notebook and register NodeJS. When the example was
|
||||
|
@ -29,7 +29,7 @@ This demo was tested by SheetJS users in the following deployments:
|
||||
|
||||
| Architecture | Version | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | R2024a | 2024-06-09 |
|
||||
| `darwin-x64` | R2024b | 2025-03-31 |
|
||||
| `win11-x64` | R2024b | 2024-12-21 |
|
||||
|
||||
:::
|
||||
@ -235,7 +235,7 @@ run in the macOS Terminal or Windows PowerShell:
|
||||
<CodeBlock language="bash">{`\
|
||||
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz exit-on-epipe commander@2
|
||||
curl -LO https://docs.sheetjs.com/cli/xlsx-cli.js
|
||||
npx nexe -t 14.15.3 xlsx-cli.js`}
|
||||
npx -y nexe -t 14.15.3 xlsx-cli.js`}
|
||||
</CodeBlock>
|
||||
|
||||
2) Download https://docs.sheetjs.com/pres.numbers to the workspace folder:
|
||||
|
@ -128,7 +128,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Version | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `2.7.0` | 2024-12-31 |
|
||||
| `darwin-x64` | `2.7.0` | 2025-03-31 |
|
||||
| `darwin-arm` | `2.7.0` | 2025-02-13 |
|
||||
| `win11-x64` | `2.7.0` | 2024-12-20 |
|
||||
| `win11-arm` | `2.7.0` | 2025-02-23 |
|
||||
@ -405,7 +405,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Version | PHP | Date |
|
||||
|:-------------|:--------|:---------|:-----------|
|
||||
| `darwin-x64` | `2.7.0` | `8.4.2` | 2024-12-31 |
|
||||
| `darwin-x64` | `2.7.0` | `8.4.2` | 2025-03-31 |
|
||||
| `darwin-arm` | `2.7.0` | `8.4.4` | 2025-02-25 |
|
||||
| `linux-x64` | `2.7.0` | `8.3.3` | 2024-12-31 |
|
||||
| `linux-arm` | `2.7.0` | `8.2.26` | 2025-02-15 |
|
||||
@ -547,7 +547,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Version | Python | Date |
|
||||
|:-------------|:--------|:---------|:-----------|
|
||||
| `darwin-x64` | `2.7.0` | `3.13.1` | 2024-12-31 |
|
||||
| `darwin-x64` | `2.7.0` | `3.13.1` | 2025-03-31 |
|
||||
| `darwin-arm` | `2.7.0` | `3.12.3` | 2025-03-30 |
|
||||
| `linux-x64` | `2.7.0` | `3.11.7` | 2024-12-31 |
|
||||
| `linux-arm` | `2.7.0` | `3.11.2` | 2025-02-15 |
|
||||
@ -784,7 +784,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Version | Zig | Date |
|
||||
|:-------------|:--------|:---------|:-----------|
|
||||
| `darwin-x64` | `2.7.0` | `0.13.0` | 2024-12-31 |
|
||||
| `darwin-x64` | `2.7.0` | `0.14.0` | 2025-03-31 |
|
||||
| `darwin-arm` | `2.7.0` | `0.13.0` | 2025-02-13 |
|
||||
| `win11-x64` | `2.7.0` | `0.13.0` | 2024-12-20 |
|
||||
| `win11-arm` | `2.7.0` | `0.13.0` | 2025-02-23 |
|
||||
@ -803,8 +803,8 @@ mkdir sheetjs-zig
|
||||
cd sheetjs-zig
|
||||
```
|
||||
|
||||
1) Download Zig 0.13.0 from https://ziglang.org/download/ and extract to the
|
||||
project folder.
|
||||
1) Download the Zig tarball from https://ziglang.org/download/ and extract to
|
||||
the project folder.
|
||||
|
||||
<Tabs groupId="triple">
|
||||
<TabItem value="darwin-x64" label="MacOS">
|
||||
@ -812,7 +812,7 @@ project folder.
|
||||
For X64 Mac:
|
||||
|
||||
```bash
|
||||
curl -LO https://ziglang.org/download/0.13.0/zig-macos-x86_64-0.13.0.tar.xz
|
||||
curl -LO https://ziglang.org/download/0.14.0/zig-macos-x86_64-0.14.0.tar.xz
|
||||
tar -xzf zig-macos-*.tar.xz
|
||||
```
|
||||
|
||||
@ -933,10 +933,8 @@ mv *.js src`}
|
||||
|
||||
```zig title="build.zig (add highlighted lines)"
|
||||
const exe = b.addExecutable(.{
|
||||
.name = "sheetjs-zig",
|
||||
.root_source_file = b.path("src/main.zig"),
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
.name = "sheetjs_zig",
|
||||
.root_module = exe_mod,
|
||||
});
|
||||
// highlight-start
|
||||
exe.addCSourceFile(.{ .file = b.path("duktape-2.7.0/src/duktape.c"), .flags = &.{ "-std=c99", "-fno-sanitize=undefined" } });
|
||||
@ -1019,7 +1017,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Version | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `2.2.0` | 2024-12-31 |
|
||||
| `darwin-x64` | `2.2.0` | 2025-03-31 |
|
||||
| `darwin-arm` | `2.2.0` | 2025-03-30 |
|
||||
| `linux-x64` | `2.2.0` | 2024-12-31 |
|
||||
| `linux-arm` | `2.2.0` | 2025-02-15 |
|
||||
@ -1114,6 +1112,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Version | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `2.2.1` | 2025-03-31 |
|
||||
| `darwin-arm` | `2.2.1` | 2025-03-31 |
|
||||
|
||||
:::
|
||||
|
@ -146,7 +146,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| V8 Version | Platform | OS Version | Compiler | Date |
|
||||
|:--------------|:-------------|:--------------|:-----------------|:-----------|
|
||||
| `13.3.228` | `darwin-x64` | macOS 15.1.1 | `clang 16.0.0` | 2024-12-03 |
|
||||
| `13.7.5` | `darwin-x64` | macOS 15.3.2 | `clang 16.0.0` | 2025-03-31 |
|
||||
| `13.5.92` | `darwin-arm` | macOS 14.5 | `clang 16.0.0` | 2025-02-15 |
|
||||
| `12.7.130` | `win11-x64` | Windows 11 | `CL 19.42.34435` | 2024-12-20 |
|
||||
| `12.7.130` | `linux-x64` | HoloOS 3.6.20 | `gcc 13.2.1` | 2025-01-02 |
|
||||
@ -287,7 +287,7 @@ export PATH="/usr/local/lib/depot_tools:$PATH"
|
||||
```
|
||||
|
||||
At this point, it is strongly recommended to add the line to a shell startup
|
||||
script such as `.bashrc` or `.zshrc`
|
||||
script such as `.bashrc` or `.zshrc` or `.zprofile`
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win" label="Windows">
|
||||
@ -435,11 +435,11 @@ The recommended fix is to delete the referenced folder and re-run `gclient sync`
|
||||
</Tabs>
|
||||
|
||||
|
||||
5) Checkout the desired version. The following command pulls `13.5.92`:
|
||||
5) Checkout the desired version. The following command pulls `13.7.5`:
|
||||
|
||||
|
||||
```bash
|
||||
git checkout tags/13.5.92 -b sample
|
||||
git checkout tags/13.7.5 -b sample
|
||||
```
|
||||
|
||||
:::caution pass
|
||||
@ -447,14 +447,14 @@ git checkout tags/13.5.92 -b sample
|
||||
The official documentation recommends:
|
||||
|
||||
```bash
|
||||
git checkout refs/tags/13.5.92 -b sample -t
|
||||
git checkout refs/tags/13.7.5 -b sample -t
|
||||
```
|
||||
|
||||
This command failed in local testing:
|
||||
|
||||
```
|
||||
E:\v8\v8>git checkout refs/tags/13.5.92 -b sample -t
|
||||
fatal: cannot set up tracking information; starting point 'refs/tags/13.5.92' is not a branch
|
||||
E:\v8\v8>git checkout refs/tags/13.7.5 -b sample -t
|
||||
fatal: cannot set up tracking information; starting point 'refs/tags/13.7.5' is not a branch
|
||||
```
|
||||
|
||||
:::
|
||||
@ -471,9 +471,9 @@ tools/dev/v8gen.py x64.release.sample
|
||||
ninja -C out.gn/x64.release.sample v8_monolith
|
||||
```
|
||||
|
||||
:::danger pass
|
||||
:::caution pass
|
||||
|
||||
**This does not work in newer Python releases due to a breaking change!**
|
||||
**This may not work in newer Python releases due to a breaking change!**
|
||||
|
||||
Python 3.13 removed the `pipes` module from the standard library[^9]. `v8gen.py`
|
||||
will fail on newer Python releases with the following traceback:
|
||||
@ -698,7 +698,7 @@ ninja -C out.gn\x64.release.sample v8_monolith
|
||||
```bash
|
||||
g++ -I. -Iinclude samples/hello-world.cc -o hello_world -fno-rtti -lv8_monolith \
|
||||
-ldl -Lout.gn/x64.release.sample/obj/ -pthread \
|
||||
-std=c++20 -DV8_COMPRESS_POINTERS=1 -DV8_ENABLE_SANDBOX
|
||||
-std=c++20 -DV8_COMPRESS_POINTERS=1 -DV8_ENABLE_SANDBOX -framework Foundation
|
||||
./hello_world
|
||||
```
|
||||
|
||||
@ -1279,8 +1279,8 @@ This demo was last tested in the following deployments:
|
||||
|
||||
| Architecture | V8 Version | Date |
|
||||
|:-------------|:--------------|:-----------|
|
||||
| `darwin-x64` | `12.3.219.12` | 2024-07-16 |
|
||||
| `darwin-arm` | `12.3.219.12` | 2025-03-30 |
|
||||
| `darwin-x64` | `13.3.415.23` | 2025-03-31 |
|
||||
| `darwin-arm` | `13.3.415.23` | 2025-03-31 |
|
||||
| `win11-x64` | `12.3.219.12` | 2024-12-20 |
|
||||
| `win11-arm` | `12.3.219.12` | 2025-02-23 |
|
||||
| `linux-x64` | `12.3.219.12` | 2025-01-10 |
|
||||
@ -1359,7 +1359,7 @@ dotnet run
|
||||
4) Add ClearScript to the project:
|
||||
|
||||
```bash
|
||||
dotnet add package Microsoft.ClearScript.Complete --version 7.4.5
|
||||
dotnet add package Microsoft.ClearScript.Complete --version 7.5.0
|
||||
```
|
||||
|
||||
5) Download the SheetJS standalone script and test file. Move both files to the
|
||||
@ -1481,6 +1481,7 @@ This demo was last tested in the following deployments:
|
||||
|
||||
| Architecture | V8 Version | Python | Date |
|
||||
|:-------------|:--------------|:---------|:-----------|
|
||||
| `darwin-x64` | `13.1.201.22` | `3.13.1` | 2025-03-31 |
|
||||
| `darwin-arm` | `13.0.245.16` | `3.13.0` | 2024-10-20 |
|
||||
|
||||
:::
|
||||
|
@ -32,7 +32,7 @@ Swift on MacOS supports JavaScriptCore without additional dependencies.
|
||||
|
||||
| Architecture | Swift | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `6.0.2` | 2024-12-17 |
|
||||
| `darwin-x64` | `6.0.3` | 2025-03-31 |
|
||||
| `darwin-arm` | `6.0.3` | 2025-03-30 |
|
||||
|
||||
[**C / C++ Compiled from Source**](#c)
|
||||
@ -882,6 +882,7 @@ This demo was last tested in the following deployments:
|
||||
|
||||
| Architecture | Date |
|
||||
|:-------------|:-----------|
|
||||
| `darwin-x64` | 2025-03-31 |
|
||||
| `darwin-arm` | 2025-03-30 |
|
||||
|
||||
:::
|
||||
|
@ -163,7 +163,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Jint | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `4.1.0` | 2024-12-17 |
|
||||
| `darwin-x64` | `4.2.1` | 2025-03-31 |
|
||||
| `darwin-arm` | `4.2.0` | 2025-02-13 |
|
||||
| `win11-x64` | `4.1.0` | 2024-12-20 |
|
||||
| `win11-arm` | `4.2.0` | 2025-02-23 |
|
||||
@ -248,7 +248,7 @@ dotnet run
|
||||
|
||||
```bash
|
||||
dotnet nuget add source https://www.myget.org/F/jint/api/v3/index.json
|
||||
dotnet add package Jint --version 4.2.0
|
||||
dotnet add package Jint --version 4.2.1
|
||||
```
|
||||
|
||||
To verify Jint is installed, replace `Program.cs` with the following:
|
||||
|
@ -105,7 +105,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Git Commit | Go version | Date |
|
||||
|:-------------|:-----------|:-----------|:-----------|
|
||||
| `darwin-x64` | `79f3a7e` | `1.23.3` | 2024-12-17 |
|
||||
| `darwin-x64` | `bcd7cc6` | `1.24.1` | 2025-03-31 |
|
||||
| `darwin-arm` | `5ef83b8` | `1.24.0` | 2025-02-13 |
|
||||
| `win11-x64` | `79f3a7e` | `1.23.4` | 2024-12-20 |
|
||||
| `win11-arm` | `5ef83b8` | `1.24.0` | 2025-02-23 |
|
||||
|
@ -27,7 +27,7 @@ command-line tool for reading data from files.
|
||||
:::note pass
|
||||
|
||||
Many QuickJS functions are not documented. The explanation was verified against
|
||||
the latest release (commit `6e2e68f`).
|
||||
commit `0d7aaed`.
|
||||
|
||||
:::
|
||||
|
||||
@ -263,14 +263,14 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Git Commit | Date |
|
||||
|:-------------|:-----------|:-----------|
|
||||
| `darwin-x64` | `6e2e68f` | 2024-12-17 |
|
||||
| `darwin-x64` | `0d7aaed` | 2025-03-31 |
|
||||
| `darwin-arm` | `6e2e68f` | 2024-12-17 |
|
||||
| `win11-x64` | `6e2e68f` | 2024-12-19 |
|
||||
| `win11-arm` | `6e2e68f` | 2025-02-23 |
|
||||
| `linux-x64` | `6e2e68f` | 2025-01-09 |
|
||||
| `linux-arm` | `6e2e68f` | 2025-02-15 |
|
||||
|
||||
When the demo was tested, `6e2e68f` was the HEAD commit on the `master` branch.
|
||||
When the demo was tested, `0d7aaed` was the HEAD commit on the `master` branch.
|
||||
|
||||
:::
|
||||
|
||||
@ -286,7 +286,7 @@ tests were run entirely within Windows Subsystem for Linux.
|
||||
```bash
|
||||
git clone https://github.com/bellard/quickjs
|
||||
cd quickjs
|
||||
git checkout 6e2e68f
|
||||
git checkout 0d7aaed
|
||||
make
|
||||
cd ..
|
||||
```
|
||||
@ -359,9 +359,9 @@ This demo was tested in the following environments:
|
||||
|
||||
| Git Commit | Date |
|
||||
|:-----------|:-----------|
|
||||
| `6e2e68f` | 2025-01-09 |
|
||||
| `0d7aaed` | 2025-03-31 |
|
||||
|
||||
When the demo was tested, `6e2e68f` was the HEAD commit on the `master` branch.
|
||||
When the demo was tested, `0d7aaed` was the HEAD commit on the `master` branch.
|
||||
|
||||
:::
|
||||
|
||||
@ -371,7 +371,7 @@ and build the `quickjs` project:
|
||||
```bash
|
||||
git clone https://github.com/bellard/quickjs
|
||||
cd quickjs
|
||||
git checkout 6e2e68f
|
||||
git checkout 0d7aaed
|
||||
make
|
||||
cd ..
|
||||
```
|
||||
|
@ -28,7 +28,7 @@ command-line tool for reading data from files.
|
||||
:::info pass
|
||||
|
||||
Many Hermes functions are not documented. The explanation was verified against
|
||||
commit `d070c74`.
|
||||
commit `8ef11b4`.
|
||||
|
||||
:::
|
||||
|
||||
@ -364,7 +364,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Git Commit | Date |
|
||||
|:-------------|:-----------|:-----------|
|
||||
| `darwin-x64` | `d070c74` | 2024-12-17 |
|
||||
| `darwin-x64` | `8ef11b4` | 2025-03-31 |
|
||||
| `darwin-arm` | `388376f` | 2025-01-13 |
|
||||
| `linux-x64` | `388376f` | 2024-12-17 |
|
||||
| `linux-arm` | `388376f` | 2025-02-15 |
|
||||
@ -439,6 +439,36 @@ curl -LO https://docs.sheetjs.com/hermes/sheetjs-hermes.cpp
|
||||
make init
|
||||
```
|
||||
|
||||
:::danger pass
|
||||
|
||||
In some test runs using CMake 4, the build failed due to CMake issues:
|
||||
|
||||
```
|
||||
CMake Error at CMakeLists.txt:42 (cmake_policy):
|
||||
Policy CMP0026 may not be set to OLD behavior because this version of CMake
|
||||
no longer supports it. The policy was introduced in CMake version 3.0.0,
|
||||
and use of NEW behavior is now required.
|
||||
```
|
||||
|
||||
The referenced line should be removed:
|
||||
|
||||
```text title="hermes/CMakeLists.txt (remove highlighted line)
|
||||
# bundles for Apple platforms.
|
||||
if (POLICY CMP0026)
|
||||
// highlight-next-line
|
||||
cmake_policy(SET CMP0026 OLD) <-- remove this line
|
||||
endif()
|
||||
```
|
||||
|
||||
After removing the line, remove the `build_release` tool and try again:
|
||||
|
||||
```bash
|
||||
rm -rf build_release
|
||||
make init
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
:::caution pass
|
||||
|
||||
In some test runs, the build failed due to Ninja issues:
|
||||
@ -817,7 +847,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Hermes | Date |
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `0.13.0` | 2024-12-17 |
|
||||
| `darwin-x64` | `0.13.0` | 2025-03-31 |
|
||||
| `win11-x64` | `0.13.0` | 2024-12-20 |
|
||||
| `win11-arm` | `0.13.0` | 2025-02-23 |
|
||||
| `linux-x64` | `0.13.0` | 2024-12-31 |
|
||||
@ -945,6 +975,6 @@ If successful, the script will print CSV data from the test file.
|
||||
[^3]: See ["Workbook Object"](/docs/csf/book)
|
||||
[^4]: See [`sheet_to_csv` in "Utilities"](/docs/api/utilities/csv#csv-output)
|
||||
[^5]: See [`microsoft/hermes-windows`](https://github.com/microsoft/hermes-windows) on GitHub
|
||||
[^6]: See ["Dependencies" in "Building and Running"](https://hermesengine.dev/docs/building-and-running/#dependencies) in the Hermes Documentation
|
||||
[^6]: See ["Dependencies" in "Building and Running"](https://hermesengine.dev/docs/building-and-running/#dependencies) in the Hermes Documentation. If this page redirects to the source repo, [see the following `archive.org` snapshot.](https://web.archive.org/web/20240103234151/http://hermesengine.dev/docs/building-and-running/)
|
||||
[^7]: See ["Download Python"](https://www.python.org/downloads/) in the Python website. When the demo was last tested, Python 3.11.9 was installed.
|
||||
[^8]: See [the Visual Studio website](https://visualstudio.microsoft.com/#vs-section) for download links.
|
||||
|
@ -87,7 +87,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Platform | Ruby | ExecJS | Date |
|
||||
|:-------------|:---------|:---------|:-----------|
|
||||
| `darwin-x64` | `2.6.10` | `2.10.0` | 2024-12-17 |
|
||||
| `darwin-x64` | `2.6.10` | `2.10.0` | 2025-03-31 |
|
||||
| `darwin-arm` | `2.6.10` | `2.10.0` | 2025-02-13 |
|
||||
| `win11-x64` | `3.3.6` | `2.10.0` | 2024-12-20 |
|
||||
| `win11-arm` | `3.2.3` | `2.10.0` | 2025-02-23 |
|
||||
|
@ -132,7 +132,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Git Commit | Date |
|
||||
|:-------------|:-----------|:-----------|
|
||||
| `darwin-x64` | `e26c81f` | 2024-12-17 |
|
||||
| `darwin-x64` | `36becec` | 2025-03-31 |
|
||||
| `darwin-arm` | `e26c81f` | 2025-01-13 |
|
||||
| `win11-x64` | `e26c81f` | 2024-12-19 |
|
||||
| `win11-arm` | `e26c81f` | 2025-02-23 |
|
||||
@ -189,7 +189,7 @@ The commands in this demo should be run in "ARM64 Native Tools Command Prompt".
|
||||
```bash
|
||||
git clone https://github.com/chakra-core/ChakraCore.git
|
||||
cd ChakraCore
|
||||
git checkout e26c81f
|
||||
git checkout 36becec
|
||||
cd ..
|
||||
```
|
||||
|
||||
@ -229,6 +229,40 @@ There are known issues with MacOS 15.1 SDK and ChakraCore JIT. These issues did
|
||||
not affect earlier tests against MacOS 14.5. The current recommendation is to
|
||||
disable JIT and use the system ICU implementation.
|
||||
|
||||
:::
|
||||
|
||||
:::info pass
|
||||
|
||||
If CMake 4 is installed, the build may fail with CMake errors:
|
||||
|
||||
```
|
||||
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
|
||||
Compatibility with CMake < 3.5 has been removed from CMake.
|
||||
```
|
||||
|
||||
The workaround involves manually editing the `CMakeLists.txt` files. When this
|
||||
demo was last tested, there were 4 files:
|
||||
|
||||
- `CMakeLists.txt`
|
||||
- `pal/CMakeLists.txt`
|
||||
- `pal/src/CMakeLists.txt`
|
||||
- `lib/wabt/CMakeLists.txt`
|
||||
|
||||
Each file will have a `cmake_minimum_required` directive. For example, the root
|
||||
`CMakeLists.txt` file has a minimum version of 3.2:
|
||||
|
||||
```text title="CMakeLists.txt (commit 36becec)"
|
||||
cmake_minimum_required(VERSION 3.2)
|
||||
```
|
||||
|
||||
The version number should be updated to 4.0:
|
||||
|
||||
```text title="CMakeLists.txt (edit version number)"
|
||||
cmake_minimum_required(VERSION 4.0)
|
||||
```
|
||||
|
||||
After updating all four files, the build script will run.
|
||||
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
@ -541,7 +575,7 @@ If successful, the program will print the contents of the first sheet as CSV.
|
||||
|
||||
:::note Tested Deployments
|
||||
|
||||
This demo was last tested on 2025-01-09 against `ch` commit `e26c81f`.
|
||||
This demo was last tested on 2025-03-31 against `ch` commit `36becec`.
|
||||
|
||||
:::
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: Rust + Boa
|
||||
title: Rusty Sheets with Boa
|
||||
sidebar_label: Rust + Boa
|
||||
pagination_prev: demos/bigdata/index
|
||||
pagination_next: solutions/input
|
||||
---
|
||||
@ -29,21 +30,16 @@ for reading data from spreadsheets and generating CSV rows.
|
||||
A JS context can be constructed in one line:
|
||||
|
||||
```rust
|
||||
use boa_engine::Context;
|
||||
|
||||
/* initialize */
|
||||
let context = &mut Context::default();
|
||||
let context = &mut boa_engine::Context::default();
|
||||
```
|
||||
|
||||
The following helper function evaluates strings as JS code:
|
||||
|
||||
```rust
|
||||
use std::string::String;
|
||||
use boa_engine::{Context, Source, JsError};
|
||||
|
||||
/* simple wrapper to evaluate code snippets */
|
||||
fn eval_code(c: &mut Context, code: &str) -> Result<String, JsError> {
|
||||
let src = Source::from_bytes(code);
|
||||
fn eval_code(c: &mut boa_engine::Context, code: &str) -> Result<std::string::String, boa_engine::JsError> {
|
||||
let src = boa_engine::Source::from_bytes(code);
|
||||
match c.eval(src) {
|
||||
Ok(res) => { return Ok(res.to_string(c).unwrap().to_std_string_escaped()); }
|
||||
Err(e) => { return Err(e); }
|
||||
@ -56,25 +52,13 @@ fn eval_code(c: &mut Context, code: &str) -> Result<String, JsError> {
|
||||
The [SheetJS Standalone scripts](/docs/getting-started/installation/standalone)
|
||||
can be parsed and evaluated in a Boa context.
|
||||
|
||||
Boa provides a special helper to read source code from a path:
|
||||
Boa provides a special helper `boa_engine::Source::from_filepath` to read source
|
||||
code from a path, but it is recommended to inline the SheetJS standalone script
|
||||
using the `include_str!` macro:
|
||||
|
||||
```rust
|
||||
use std::path::Path;
|
||||
use std::string::String;
|
||||
use boa_engine::{js_string, Context, Source, JsError};
|
||||
|
||||
/* simple wrapper to evaluate an entire script file */
|
||||
fn eval_file(c: &mut Context, path: &str) -> Result<String, JsError> {
|
||||
let src = Source::from_filepath(Path::new(path)).unwrap();
|
||||
match c.eval(src) {
|
||||
Ok(res) => { return Ok(res.to_string(c).unwrap().to_std_string_escaped()); }
|
||||
Err(e) => { return Err(e); }
|
||||
};
|
||||
}
|
||||
|
||||
// ...
|
||||
/* load library */
|
||||
match eval_file(context, "./xlsx.full.min.js") {
|
||||
match eval_code(context, include_str!("../xlsx.full.min.js")) {
|
||||
Ok(_res) => {}
|
||||
Err(e) => { return eprintln!("Uncaught {e}"); }
|
||||
}
|
||||
@ -97,10 +81,10 @@ Boa supports `ArrayBuffer` natively. This snippet reads data from a file into
|
||||
|
||||
```rust
|
||||
/* read file */
|
||||
let data: Vec<u8> = fs::read("pres.xlsx").unwrap();
|
||||
let array: JsArrayBuffer = JsArrayBuffer::from_byte_block(data, context).unwrap();
|
||||
let attrs = Attribute::WRITABLE | Attribute::ENUMERABLE | Attribute::CONFIGURABLE;
|
||||
context.register_global_property(js_string!("buf"), array, attrs);
|
||||
let data: Vec<u8> = std::fs::read("pres.xlsx").unwrap();
|
||||
let array: boa_engine::object::builtins::JsArrayBuffer = boa_engine::object::builtins::JsArrayBuffer::from_byte_block(file, context).unwrap();
|
||||
let attrs = boa_engine::property::Attribute::WRITABLE | boa_engine::property::Attribute::ENUMERABLE | boa_engine::property::Attribute::CONFIGURABLE;
|
||||
let _ = context.register_global_property(boa_engine::js_string!("buf"), array, attrs);
|
||||
|
||||
/* parse with SheetJS */
|
||||
match eval_code(context, "void (globalThis.wb = XLSX.read(buf))") {
|
||||
@ -120,7 +104,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Boa | Date |
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `0.20.0` | 2024-12-17 |
|
||||
| `darwin-x64` | `0.20.0` | 2025-03-31 |
|
||||
| `darwin-arm` | `0.20.0` | 2025-02-13 |
|
||||
| `win11-x64` | `0.20.0` | 2024-12-19 |
|
||||
| `win11-arm` | `0.20.0` | 2025-02-23 |
|
||||
@ -177,7 +161,7 @@ curl -L -o src/main.rs https://docs.sheetjs.com/boa/main.rs
|
||||
5) Build and run the app in release mode:
|
||||
|
||||
```bash
|
||||
cargo run --release
|
||||
cargo run --release pres.xlsx
|
||||
```
|
||||
|
||||
After a short wait, the contents will be displayed in CSV form.
|
||||
|
@ -127,7 +127,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Version | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `0.066` | 2024-12-17 |
|
||||
| `darwin-x64` | `0.066` | 2025-03-31 |
|
||||
| `darwin-arm` | `0.066` | 2025-02-13 |
|
||||
| `linux-x64` | `0.066` | 2025-01-10 |
|
||||
| `linux-arm` | `0.066` | 2025-02-15 |
|
||||
|
@ -36,7 +36,7 @@ This demo was tested in the following environments:
|
||||
|
||||
| Architecture | Commit | Date |
|
||||
|:-------------|:----------|:-----------|
|
||||
| `darwin-x64` | `d2d30df` | 2024-12-17 |
|
||||
| `darwin-x64` | `5020015` | 2025-03-31 |
|
||||
| `darwin-arm` | `d2d30df` | 2025-02-13 |
|
||||
| `win11-x64` | `d2d30df` | 2024-12-19 |
|
||||
| `win11-arm` | `5020015` | 2025-02-23 |
|
||||
|
@ -36,7 +36,7 @@ as [Duktape](/docs/demos/engines/duktape).
|
||||
:::info pass
|
||||
|
||||
Many MuJS functions are not documented. The explanation was verified against
|
||||
version `1.3.5`.
|
||||
version `1.3.6`.
|
||||
|
||||
:::
|
||||
|
||||
@ -322,7 +322,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Version | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `1.3.5` | 2024-12-17 |
|
||||
| `darwin-x64` | `1.3.6` | 2025-03-31 |
|
||||
| `darwin-arm` | `1.3.5` | 2025-02-13 |
|
||||
| `win11-x64` | `1.3.5` | 2024-12-19 |
|
||||
| `win11-arm` | `1.3.5` | 2025-02-23 |
|
||||
@ -355,9 +355,9 @@ cd sheetjs-mu
|
||||
2) Build the MuJS shared library from source:
|
||||
|
||||
```bash
|
||||
curl -LO https://mujs.com/downloads/mujs-1.3.5.zip
|
||||
unzip mujs-1.3.5.zip
|
||||
cd mujs-1.3.5
|
||||
curl -LO https://mujs.com/downloads/mujs-1.3.6.zip
|
||||
unzip mujs-1.3.6.zip
|
||||
cd mujs-1.3.6
|
||||
make release
|
||||
cd ..
|
||||
```
|
||||
@ -365,7 +365,7 @@ cd ..
|
||||
3) Copy the `mujs.h` header file and `libmujs.a` library to the project folder:
|
||||
|
||||
```bash
|
||||
cp mujs-1.3.5/build/release/libmujs.a mujs-1.3.5/mujs.h .
|
||||
cp mujs-1.3.6/build/release/libmujs.a mujs-1.3.6/mujs.h .
|
||||
```
|
||||
|
||||
4) Download [`SheetJSMu.c`](pathname:///mujs/SheetJSMu.c):
|
||||
|
@ -176,7 +176,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Jurassic | Date |
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `3.2.8` | 2024-12-17 |
|
||||
| `darwin-x64` | `3.2.9` | 2025-03-31 |
|
||||
| `darwin-arm` | `3.2.9` | 2025-03-30 |
|
||||
| `win11-x64` | `3.2.8` | 2024-12-19 |
|
||||
| `win11-arm` | `3.2.9` | 2025-02-23 |
|
||||
|
@ -43,7 +43,7 @@ These instructions were tested on the following platforms:
|
||||
|:------------------------------|:-------------|:-----------|
|
||||
| Linux (Steam Deck Holo x64) | `linux-x64` | 2025-01-10 |
|
||||
| Linux (Debian Linux AArch64) | `linux-arm` | 2025-01-14 |
|
||||
| MacOS 14.4 (x64) | `darwin-x64` | 2024-07-12 |
|
||||
| MacOS 15.3 (x64) | `darwin-x64` | 2025-03-31 |
|
||||
| MacOS 15.2 (ARM64) | `darwin-arm` | 2025-03-07 |
|
||||
| Windows 10 (x64) + WSL Ubuntu | `win10-x64` | 2024-07-12 |
|
||||
| Windows 11 (x64) + WSL Ubuntu | `win11-x64` | 2025-01-14 |
|
||||
@ -255,15 +255,18 @@ are displayed in the `Next steps` section:
|
||||
```bash
|
||||
: # zsh
|
||||
echo >> $HOME/.zprofile
|
||||
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.zprofile
|
||||
echo 'if [ -e "/opt/homebrew/bin/brew" ]; then eval "$(/opt/homebrew/bin/brew shellenv)"; fi' >> $HOME/.zprofile
|
||||
echo 'if [ -e "/usr/local/bin/brew" ]; then eval "$(/usr/local/bin/brew shellenv)"; fi' >> $HOME/.zprofile
|
||||
|
||||
: # bash
|
||||
echo >> $HOME/.bash_profile
|
||||
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.bash_profile
|
||||
echo 'if [ -e "/opt/homebrew/bin/brew" ]; then eval "$(/opt/homebrew/bin/brew shellenv)"; fi' >> $HOME/.bash_profile
|
||||
echo 'if [ -e "/usr/local/bin/brew" ]; then eval "$(/usr/local/bin/brew shellenv)"; fi' >> $HOME/.bash_profile
|
||||
|
||||
: # other
|
||||
echo >> $HOME/.profile
|
||||
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.profile
|
||||
echo 'if [ -e "/opt/homebrew/bin/brew" ]; then eval "$(/opt/homebrew/bin/brew shellenv)"; fi' >> $HOME/.profile
|
||||
echo 'if [ -e "/usr/local/bin/brew" ]; then eval "$(/usr/local/bin/brew shellenv)"; fi' >> $HOME/.profile
|
||||
```
|
||||
|
||||
C) Close the window, open a new terminal window, and disable analytics:
|
||||
|
@ -1,22 +1,8 @@
|
||||
/*! sheetjs (C) SheetJS -- https://sheetjs.com */
|
||||
use std::path::Path;
|
||||
use std::string::String;
|
||||
use std::fs;
|
||||
|
||||
use boa_engine::{js_string, Context, Source, JsError};
|
||||
use boa_engine::object::builtins::JsArrayBuffer;
|
||||
use boa_engine::property::Attribute;
|
||||
|
||||
fn eval_file(c: &mut Context, path: &str) -> Result<String, JsError> {
|
||||
let src = Source::from_filepath(Path::new(path)).unwrap();
|
||||
match c.eval(src) {
|
||||
Ok(res) => { return Ok(res.to_string(c).unwrap().to_std_string_escaped()); }
|
||||
Err(e) => { return Err(e); }
|
||||
};
|
||||
}
|
||||
|
||||
fn eval_code(c: &mut Context, code: &str) -> Result<String, JsError> {
|
||||
let src = Source::from_bytes(code);
|
||||
/* simple wrapper to evaluate code snippets */
|
||||
fn eval_code(c: &mut boa_engine::Context, code: &str) -> Result<std::string::String, boa_engine::JsError> {
|
||||
let src = boa_engine::Source::from_bytes(code);
|
||||
match c.eval(src) {
|
||||
Ok(res) => { return Ok(res.to_string(c).unwrap().to_std_string_escaped()); }
|
||||
Err(e) => { return Err(e); }
|
||||
@ -24,10 +10,11 @@ fn eval_code(c: &mut Context, code: &str) -> Result<String, JsError> {
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let context = &mut Context::default();
|
||||
/* initialize */
|
||||
let context = &mut boa_engine::Context::default();
|
||||
|
||||
/* load library */
|
||||
match eval_file(context, "./xlsx.full.min.js") {
|
||||
match eval_code(context, include_str!("../xlsx.full.min.js")) {
|
||||
Ok(_res) => {}
|
||||
Err(e) => { return eprintln!("Uncaught {e}"); }
|
||||
}
|
||||
@ -39,10 +26,17 @@ fn main() {
|
||||
}
|
||||
|
||||
/* read file */
|
||||
let data: Vec<u8> = fs::read("pres.xlsx").unwrap();
|
||||
let array: JsArrayBuffer = JsArrayBuffer::from_byte_block(data, context).unwrap();
|
||||
let attrs = Attribute::WRITABLE | Attribute::ENUMERABLE | Attribute::CONFIGURABLE;
|
||||
let _ = context.register_global_property(js_string!("buf"), array, attrs);
|
||||
{
|
||||
let mut iter = std::env::args();
|
||||
let path: String = iter.nth(1).expect("must specify a file name");
|
||||
|
||||
let file: Vec<u8> = std::fs::read(path.clone()).unwrap();
|
||||
|
||||
/* push data to boa */
|
||||
let array: boa_engine::object::builtins::JsArrayBuffer = boa_engine::object::builtins::JsArrayBuffer::from_byte_block(file, context).unwrap();
|
||||
let attrs = boa_engine::property::Attribute::WRITABLE | boa_engine::property::Attribute::ENUMERABLE | boa_engine::property::Attribute::CONFIGURABLE;
|
||||
let _ = context.register_global_property(boa_engine::js_string!("buf"), array, attrs);
|
||||
}
|
||||
|
||||
/* parse workbook and assign to global `wb` property */
|
||||
match eval_code(context, "void (globalThis.wb = XLSX.read(buf))") {
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 88 KiB |
@ -1,5 +1,5 @@
|
||||
# Note: The official Hermes documentation includes zero guidance on embedding.=
|
||||
# Tested against commit 388376f05d0c2c836c8761e372fdfafd9bf077fc on darwin-x64
|
||||
# Tested against commit 8ef11b45d7b078434605658421efb34cf436c005 on darwin-x64
|
||||
# History https://git.sheetjs.com/sheetjs/docs.sheetjs.com/commits/branch/master/docz/static/hermes/Makefile
|
||||
|
||||
MYCC=llvm-g++
|
||||
@ -71,5 +71,5 @@ sheetjs-hermes.cpp:
|
||||
|
||||
.PHONY: init
|
||||
init:
|
||||
if [ ! -e hermes ]; then git clone https://github.com/facebook/hermes.git; cd hermes; git checkout 388376f05d0c2c836c8761e372fdfafd9bf077fc; cd ..; fi
|
||||
if [ ! -e hermes ]; then git clone https://github.com/facebook/hermes.git; cd hermes; git checkout 8ef11b45d7b078434605658421efb34cf436c005; cd ..; fi
|
||||
if [ ! -e build_release ]; then cmake -S hermes -B build_release -G Ninja -DCMAKE_BUILD_TYPE=Release -DHERMES_BUILD_APPLE_FRAMEWORK=OFF; cmake --build ./build_release; fi
|
Loading…
Reference in New Issue
Block a user