Since Anura Web Core SDK is still in a pre-release state, we don't have a final list of supported browsers. We plan to target the list below, but we will update the documentation to finalize this list over time.

Target supported browsers are:

Operating System Browser Minimum Version
Windows Google Chrome Last 3 versions
Windows Microsoft Edge Last 3 versions
macOS Google Chrome Last 3 versions
macOS Apple Safari >=17
Android Google Chrome Last 3 versions
iOS Apple Safari >=17
iOS Google Chrome Last 3 versions

Other browsers (except Firefox) that are not listed in the table may also work but are not officially supported by us.

  • 25 fps minimum (stable 30 fps recommended)
  • Accurate frame timestamps (ms) are required

This package relies on the SharedArrayBuffer API to enable high-performance shared memory across threads. Since SharedArrayBuffer requires a secure environment due to modern browser security restrictions, you need to configure your server and environment properly for the package to function correctly.

To use SharedArrayBuffer, your application must serve content with the following HTTP response headers to enable cross-origin isolation:

  1. Cross-Origin-Opener-Policy (COOP):
Cross-Origin-Opener-Policy: same-origin
  1. Cross-Origin-Embedder-Policy (COEP):
Cross-Origin-Embedder-Policy: require-corp

These headers ensure your application runs in a secure context and prevents potential side-channel attacks like Spectre.

If you're serving your application with an Express.js server, you can add the required headers like this:

const express = require('express');
const app = express();

app.use((req, res, next) => {
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
next();
});

app.use(express.static('public'));

app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
  • CORS Errors: Ensure that all resources (e.g., scripts, images) are served with the correct Cross-Origin-Resource-Policy header and allow embedding if required.

  • Blocked SharedArrayBuffer: Verify that your server is adding the required headers. Check using browser developer tools under the "Network" tab.

The payload data chunks are not very heavy (mostly less than 500 KB). Any stable internet connection which can handle such payloads is expected to work fine.