edit-text is written in Rust, and so you will need a
Rust compiler in order to serve the application. Rust may be installed using
your system package manager, but the preferred way to download and install Rust
is through the
rustup toolchain available at rustup.rs.
To check if you have
rustup installed, you can run the following command:
$ rustup show active-toolchain nightly-2018-09-25-x86_64-apple-darwin # for example
This command should print a rust version that is equivalent to the contents of
./rust-toolchain file. This is the version of the nightly Rust compiler
the project currently depends on. This file is updated periodically;
will automatically manage downloading and using the correct compiler version for
Installing Node.js: To build the frontend you will need to install something
called Node.js and Yarn. To install
Node.js, see installation instructions for your
OS. To check if you have a
recent version of Node.js installed, see if the output of this command is
$ node -v v10.12.0 # for example
The frontend is written partly in TypeScript, and the build tool uses Yarn to
the installation instructions for your
OS or just run
npm i -g yarn.
To see if Yarn is installed and available:
$ yarn -v v1.10.1 # for example
Clone the repository from Github:
git clone https://github.com/tcr/edit-text
Build commands are executed using the
./tools script. You can rebuild
individual edit-text components with
./tools frontend-build, etc. Run
./tools help for more information.
Run the server
The production configuration of edit-text is a long-running server process, and one or many WebAssembly + TypeScript clients running in the browser that connect to it.
You can build the WebAssembly client as well as the frontend webpack module using the following command:
This cross-compiles all frontend code and pulls in the compiled WebAssembly binary, using wasm-bindgen to talk to the frontend.
In your terminal session, you can then run this command to start the server:
Now open http://localhost:8000/ and you are brought to a welcome page to start editing text!
A simple development pattern is to launch
./tools server in one window, and
to watch and recompile frontend code whenever it's modified with this command in
This command watches the edit-frontend directory and continuously builds its after each change. The frontend will periodically display a notification if a newer version of the client code has been compiled.
After you make changes to
should kill and re-run the
./tools server command to rebuild and launch it.
frontend-watch command will automatically rebuild code that it depends
on for you.