Portal
Desktop runtime & development environment for JavaScript decentralized applications driven by Astral network.
Prerequisites
Before you can install & use Portal u need manually prepare the following dependencies:
Astral
Astral is a core & mandatory networking dependency for Portal. It provides a plenty of features like p2p, encryption, identity, storage, and unified API for services and apps.
Wails
Portal GUI runner uses Wails source code as a base, also it requires same dependencies for production and development purpose. For Installing them follow official Wails installation guideline.
Install
Portal sources can produce production or development executable. Generally speaking, the development runtime is an extended version of the production runtime.
- Install production runtime if you want to:
- Run frontend application.
- Run backend application.
- Install developer runtime if you want to:
- Create new application.
- Run development server.
- Build application.
- Generate application bundle.
Linux
Systray:
sudo apt-get install gcc libgtk-3-dev libayatana-appindicator3-dev
Linux & MacOS (Windows?)
Install production runtime:
go install -tags "desktop,wv2runtime.download,production" github.com/cryptopunkscc/go-astral-js/cmd/portal
Install development runtime:
go install -tags dev github.com/cryptopunkscc/go-astral-js/cmd/portal
How to use
Portal provides command line interface created using clir library.
Example commands
Print help.
portal -help
Run development server.
portal dev ./example/project
Create base application project from template.
portal create -n my_react_app -t react
Generate application bundle
portal bundle ./example/project
Run application bundle
portal open ./example/project
Legacy runners
v8 backend
go run ./cmd/legacy/v8 ./example/basic/main.js
goja backend
go run ./cmd/legacy/goja ./example/basic/main.js
WebView frontend
go run ./cmd/legacy/webview ./example/basic/index.html
Compatibility
Supported platforms for specific implementation.
- Frontend
- wails - ES6
- WebView - ES6
- Backend
- goja - ES6 (partial?)
- Linux
- MacOS
- Windows ?
- Android ?
- V8 - ES6