# fuellabs/sway

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/fuellabs-sway).**

61,626 stars · 5,421 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/FuelLabs/sway
- Homepage: https://docs.fuel.network/docs/sway/
- awesome-repositories: https://awesome-repositories.com/repository/fuellabs-sway.md

## Topics

`compiler` `fuel` `language` `sway`

## Description

Sway is a smart contract development language and programming environment designed for writing, compiling, and deploying secure blockchain programs. It serves as a type-safe language for building on-chain logic and a static analysis toolchain that validates contracts before they are executed on a network.

The ecosystem provides a development environment focused on blockchain application logic and web3 backend engineering. It integrates a type-safe programming approach to reduce vulnerabilities and ensure reliable state transitions for decentralized services.

The toolchain incorporates static analysis and formal verification to prove the correctness of contract logic. It utilizes a strongly-typed front-end and a resource-constrained memory model to prevent runtime errors and resource exhaustion.

## Tags

### Part of an Awesome List

- [Smart Contract Development](https://awesome-repositories.com/f/awesome-lists/devtools/smart-contract-development.md) — Offers a complete environment for building, testing, and deploying secure blockchain smart contracts.
- [Web3 and Blockchain](https://awesome-repositories.com/f/awesome-lists/devtools/web3-and-blockchain.md) — Provides the programmable logic layer required for building automated transactions and Web3 backend services.

### Networking & Communication

- [Decentralized & Blockchain Technologies](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/decentralized-blockchain-technologies.md) — Enables the design of backend rules and state transitions for decentralized blockchain applications.
- [Smart Contract Development Frameworks](https://awesome-repositories.com/f/networking-communication/smart-contract-development-frameworks.md) — Provides a comprehensive framework for writing, compiling, and deploying secure blockchain smart contracts. ([source](https://github.com/fuellabs/sway#readme))

### Programming Languages & Runtimes

- [Programming Environments & Tooling](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/programming-environments-tooling.md) — Provides a dedicated programming environment with specialized tooling for building reliable on-chain programs.
- [Statically Typed Languages](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/type-systems/type-checking-disciplines/statically-typed-languages.md) — Integrates static analysis and type-checking to prevent runtime errors during the compilation phase.
- [Smart Contract Languages](https://awesome-repositories.com/f/programming-languages-runtimes/smart-contract-languages.md) — Functions as a type-safe programming language specifically designed for secure and efficient smart contract development.
- [Strongly-Typed Languages](https://awesome-repositories.com/f/programming-languages-runtimes/strongly-typed-languages.md) — Employs a strongly-typed language front-end to catch logic errors before deployment to the network.

### Software Engineering & Architecture

- [State Machine Logic](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic.md) — Ensures network-wide consistency by utilizing a deterministic state machine for processing transactions.
- [Static Analysis](https://awesome-repositories.com/f/software-engineering-architecture/static-analysis.md) — Includes a static analysis toolchain that validates contract structures and types to ensure security before execution.
- [Smart Contract Type-Safety](https://awesome-repositories.com/f/software-engineering-architecture/type-safe-development/smart-contract-type-safety.md) — Reduces vulnerabilities in smart contracts by enforcing strict data types during the development process.
- [Virtual Machine Execution Models](https://awesome-repositories.com/f/software-engineering-architecture/virtual-machine-execution-models.md) — Implements a low-level execution model for deterministic processing of bytecode on a blockchain virtual machine.

### Testing & Quality Assurance

- [Formal Verification Tools](https://awesome-repositories.com/f/testing-quality-assurance/validation-verification/formal-verification-tools.md) — Provides tooling to mathematically prove the correctness of smart contract logic and eliminate security vulnerabilities.

### Development Tools & Productivity

- [Blockchain Memory Models](https://awesome-repositories.com/f/development-tools-productivity/scripting-runtimes/resource-constrained-runtimes/blockchain-memory-models.md) — Utilizes a resource-constrained memory model to prevent infinite loops and resource exhaustion during contract execution.
