NEAR Studio is a cloud IDE for development of NEAR Protocol smart contracts and DApps.
It's heavily based on WebAssembly Studio.
Dockerized studio operates as a micro-service. It uses nginx to serve the local static content. As the result, Studio is not parametrizable with environment variables. All configs of Near Studio are currently available in config.json and are used to generate the static content.
To run a local copy, you will need to install node.js and webpack on your computer, then run the following commands:
yarn
To build NEAR Studio whenever a file changes run:
yarn build-watch
To start a dev web server run:
yarn dev-server
Before submitting a pull request run:
yarn test
Build for production:
yarn build
Deploy (need to have sudo
on near-studio
server):
./deploy.sh
If you want to contribute upstream to WebAssemblyStudio, please get familiar with the contributing guide.
Join our Discord if you want to help with NEAR-specific stuff or just stay in touch with development progress.
We also have Telegram with more curated updates.
This project depends on several excellent libraries and tools:
-
WebAssembly Studio is used as a skeleton for our IDE.
-
Monaco Editor is used for rich text editing, tree views and context menus.
-
WebAssembly Binary Toolkit is used to assemble and disassemble
.wasm
files. -
Binaryen is used to validate and optimize
.wasm
files. -
Clang Format is used to format C/C++ files.
-
Cassowary.js is used to make split panes work.
-
Showdown is used to automatically preview
.md
files. -
Capstone.js is used to disassemble
x86
code. -
AssemblyScript is used to compile TypeScript smart contracts into WebAssembly.
-
bignum.wasm Provides big numbers (128-bit and more) implementation for use with AssemblyScript.
-
BigInteger.js Provides big numbers (arbitrary length) implementation for use in JS host code for smart contracts.
-
LLVM, Rust, Emscripten running server side.
-
And of course: React, WebPack, TypeScript and TSLint.