Skip to content
IDE for building smart contracts on NEAR Protocol
TypeScript JavaScript CSS Rust HTML Shell Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
.vscode
bin
demos
fonts
img
lib
misc/arc-templates
notes
scripts
src
style
svg
templates
tests
.dockerignore
.gitattributes
.gitignore
.gitignore.travis
.nojekyll
.travis.yml
Dockerfile
LICENSE
README.md
build_image.sh
config.json
deploy.sh
favicon.ico
index.html
jest-puppeteer.config.js
package.json
stryker.conf.js
test-preprocessor.js
test-setup.js
test-shim.js
tsconfig.json
tsconfig.test.json
tslint.json
update_templates.sh
web-assembly-icon-white-64px.png
webpack.config.js
yarn.lock

README.md

NEAR Studio

Build Status

NEAR Studio is a cloud IDE for development of NEAR Protocol smart contracts and DApps.

It's heavily based on WebAssembly Studio.

Demo GIF

Dockerized 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.

Running your own local copy of the website

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

Deploying in production

Build for production:

yarn build

Deploy (need to have sudo on near-studio server):

./deploy.sh

Contributing

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.

Credits

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.

You can’t perform that action at this time.