Cables Standalone Version
cables.gl and cables standalone are mainly developed by undev, with contributions by the cables community and support by various other parties and projects.
In Development
This is the development version of cables.gl packages into a standalone, executable application using electron for mac/windows/linux.
This is under heavy development, things may (and will) break, use it at your own peril. Please provide feedback in the issue tracker attached to this repository.
Download
mac/win/linux: cables standalone
Mac
Download the latest version for mac (m1/m2
or intel macs
).
Open the .dmg
, drag the icon to your applications folder or any other place you want and start it. Acknowledge that this software has been
downloaded form the internet (the executable is signed and notarized, though) and start patching!
Win
Download the latest version for windows (portable executable). Unpack the software and run it. You might need to acknowledge that this software is not signed and select "more info" and/or "run anyhow" on the shown dialog. Once that is done, start patching!
Linux
Download the latest version for linux (AppImage).
Once you downloaded the package, set its permissions to executable via your file-manager or using the terminal (chmod +x ...AppImage
).
Open the AppImage and start patching!
Builds
About
Cables Standalone uses Electron to bring the cables editor and ops to your desktop. For this it uses Electron to keep up to date with the features in the browser version. As your browser is "sandboxed" different security measures apply, this is no longer the case in the standalone version. This is intentional and gives great power, but also some responsibility is now shifted to the user-site. Read about some of the implication on the Electron site.
IMPORTANT:
The current electron settings, as of now, are almost exactly the opposite that electron suggests. This might change for later versions, or be configurable. But a lot of these suggestions only make sense for "static" apps that do not run or execute external code, this - on the other hand - is THE main reason we do this. For now: KNOW THE PEOPLE YOU GET YOUR OPS OR PATCHES FROM!
this.editorWindow = new BrowserWindow({
"width": 1920,
"height": 1080,
"webPreferences": {
"nodeIntegration": true,
"nodeIntegrationInWorker": true,
"nodeIntegrationInSubFrames": true,
"contextIsolation": false,
"sandbox": false,
"webSecurity": false,
"allowRunningInsecureContent": true,
"plugins": true,
"experimentalFeatures": true,
"v8CacheOptions": "none"
}
});
Giving Feedback
Issue Workflow
- create an issue, pick "Bug report" or "Feature Request" from the templates
- the issue will be assigned a "new" label
- we will check on these issues regularly, add them to a milestone and remove the "new" label
- once we added the feature or fixed the bug in any release (also dev/nightly) we will close the issue
- stable releases will have a changelog with all the closed issues
Development
Set up local environment
- the preferred way of developing cables locally is using the
cables_dev
repository: https://github.com/cables-gl/cables_dev - that repo contains scripts that will set up everything for you to get started
- Read up about setting up everything for you to start contributing to cables in the section on "Developing Cables" of the official cables documentation.
Local Build
- set up your local environment (see above)
- change to
cables_electron
directory (cd cables_electron
) - run
npm install --no-save
- run
npm run build
to build the standalone version - run
npm run start
to start the standalone from the checked out sources
Local Development
- set up your local environment (see above)
- change to
cables_electron
directory (cd cables_electron
) - run
npm install --no-save
- run
npm run build
- use
npm run start
to start the app- this will start watchers for changes in client-side javascript dirs (e.g.
src_client
and../shared/client/
- when making changes to files in these directories, a reload of the electron app is enough to see the changes (Cmd/Ctrl+R)
- this will start watchers for changes in client-side javascript dirs (e.g.
- if you want to develop on ops and/or the ui, change to cables_dev (
cd ..
) and runnpm run start:standalone
- this will create watchers on files in
cables
andcables_ui
that trigger a rebuild on change - when making changes to files in these directories, a reload of the electron app is enough to see the changes (Cmd/Ctrl+R)
- this will create watchers on files in
Building an executable
- take the steps that are described in "Local Build" above
- use
npm run pack
ornpm run dist
(will try to sign the exe) - add:mac
,:win
,:linux
to only build one architecture - find the executable in
dist/
Appreciation
Thanks to the cables community and our supporters for making this possible. If you like this project, think about supporting it on patreon.
This project was partly funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594.