sway/README.md
Daniel Frederico Lins Leite 567b5b82a8
Some checks are pending
Codspeed Benchmarks / benchmarks (push) Waiting to run
CI / check-sdk-harness-test-suite-compatibility (push) Waiting to run
CI / build-mdbook (push) Waiting to run
CI / build-forc-doc-sway-lib-std (push) Waiting to run
CI / build-forc-test-project (push) Waiting to run
CI / cargo-build-workspace (push) Waiting to run
CI / cargo-clippy (push) Waiting to run
CI / cargo-toml-fmt-check (push) Waiting to run
CI / cargo-fmt-check (push) Waiting to run
CI / build-reference-examples (push) Waiting to run
CI / forc-fmt-check-sway-lib-std (push) Waiting to run
CI / forc-fmt-check-sway-examples (push) Waiting to run
CI / forc-fmt-check-panic (push) Waiting to run
CI / build-sway-examples (push) Waiting to run
CI / verifications-complete (push) Blocked by required conditions
CI / check-dependency-version-formats (push) Waiting to run
CI / check-forc-manifest-version (push) Waiting to run
CI / get-fuel-core-version (push) Waiting to run
CI / build-sway-lib-std (push) Waiting to run
CI / cargo-run-e2e-test (push) Blocked by required conditions
CI / cargo-run-e2e-test-release (push) Blocked by required conditions
CI / cargo-test-lib-std (push) Waiting to run
CI / publish (push) Blocked by required conditions
github pages / deploy (push) Waiting to run
CI / forc-run-benchmarks (push) Waiting to run
CI / forc-unit-tests (push) Waiting to run
CI / forc-pkg-fuels-deps-check (push) Waiting to run
CI / cargo-test-forc-debug (push) Blocked by required conditions
CI / cargo-test-forc-client (push) Blocked by required conditions
CI / cargo-test-forc-mcp (push) Blocked by required conditions
CI / cargo-test-forc-node (push) Blocked by required conditions
CI / cargo-test-sway-lsp (push) Waiting to run
CI / cargo-test-forc (push) Waiting to run
CI / cargo-test-workspace (push) Waiting to run
CI / cargo-unused-deps-check (push) Waiting to run
CI / notify-slack-on-failure (push) Blocked by required conditions
CI / pre-publish-check (push) Waiting to run
CI / publish-sway-lib-std (push) Blocked by required conditions
CI / Build and upload forc binaries to release (push) Blocked by required conditions
One justfile to run them all (#7369)
## Description

This PR brings all the scripts that we have, and push a couple more into
one `just` file (https://github.com/casey/just).

Initially we are just calling the script directly, but we can improve it
later.

## Checklist

- [ ] I have linked to any relevant issues.
- [ ] I have commented my code, particularly in hard-to-understand
areas.
- [ ] I have updated the documentation where relevant (API docs, the
reference, and the Sway book).
- [ ] If my change requires substantial documentation changes, I have
[requested support from the DevRel
team](https://github.com/FuelLabs/devrel-requests/issues/new/choose)
- [ ] I have added tests that prove my fix is effective or that my
feature works.
- [ ] I have added (or requested a maintainer to add) the necessary
`Breaking*` or `New Feature` labels where relevant.
- [x] I have done my best to ensure that my PR adheres to [the Fuel Labs
Code Review
Standards](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md).
- [x] I have requested a review from the relevant team or maintainers.
2025-09-04 10:05:41 +10:00

86 lines
2.6 KiB
Markdown

# Sway
[![build](https://github.com/FuelLabs/sway/actions/workflows/ci.yml/badge.svg)](https://github.com/FuelLabs/sway/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/forc?label=latest)](https://crates.io/crates/forc)
[![docs](https://docs.rs/forc/badge.svg)](https://docs.rs/forc/)
[![twitter](https://img.shields.io/twitter/follow/SwayLang)](https://x.com/SwayLang)
[![discord](https://img.shields.io/badge/chat%20on-discord-orange?&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/xfpK4Pe)
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.
## 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`:
```sh
rustup 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.
```sh
export PATH="${HOME}/.cargo/bin:${PATH}"
```
### Building Forc
Clone the repository and build the Sway toolchain:
```sh
git clone git@github.com:FuelLabs/sway.git
cd sway
cargo build
```
Confirm the Sway toolchain built successfully:
```sh
cargo 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](https://fuellabs.github.io/sway/master/book/reference/contributing_to_sway.html) section of the Sway book for guidelines and instructions to help you get started.