Sway
๐ด Empowering everyone to build reliable and efficient smart contracts.
Sway is a language developed for the [Fuel](https://docs.fuel.network/docs/intro/what-is-fuel/) blockchain. It is heavily inspired by Rust and aims to bring modern language development and performance to the blockchain ecosystem. The project is written primarily in Rust, distributed under the Apache License 2.0 license, first published in 2021. It has gained significant community traction with 61,622 stars and 5,420 forks on GitHub. Key topics include: compiler, fuel, language, sway.
Sway
Sway is a language developed for the Fuel blockchain. It is heavily inspired by Rust and aims to bring modern language development and performance to the blockchain ecosystem.
Documentation
For user documentation, including installing release builds, see the Sway Book: https://fuellabs.github.io/sway/latest/.
For Sway Standard library documentation, see: https://fuellabs.github.io/sway/master/std/
Also view the technical reference for the Sway programming language: https://fuellabs.github.io/sway/master/reference/
Building from Source
This section is for developing the Sway compiler and toolchain. For developing contracts and using Sway, see the above documentation section.
Dependencies
Sway is built in Rust. To begin, install the Rust toolchain following instructions at https://www.rust-lang.org/tools/install. Then configure your Rust toolchain to use Rust stable:
shrustup default stable
If not already done, add the Cargo bin directory to your PATH by adding the following line to ~/.profile and restarting the shell session.
shexport PATH="${HOME}/.cargo/bin:${PATH}"
Building Forc
Clone the repository and build the Sway toolchain:
shgit clone git@github.com:FuelLabs/sway.git cd sway cargo build
Confirm the Sway toolchain built successfully:
shcargo run --bin forc -- --help
All other scripts/commands
For all other scripts and commands use https://github.com/casey/just:
> just --list
Available recipes:
[automation]
update-contract-ids
update-fuel-dependencies
[benchmark]
benchmark
benchmark-tests
collect-gas-usage
[build]
build-highlightjs
build-prism
generate-sway-lib-std
[ci]
ci-check
install-ci-check
[test]
test-forc-fmt-check-panic
Contributing to Sway
We welcome contributions to Sway!
Please see the Contributing To Sway section of the Sway book for guidelines and instructions to help you get started.
Contributors
Showing top 12 contributors by commit count.
