⌘K

Icon SunFilledIcon MoonStars
Standard Library

Icon LinkStandard Library

Similar to Rust, Sway comes with its own standard library.

The Sway Standard Library is the foundation of portable Sway software, a set of minimal shared abstractions for the broader Sway ecosystem. It offers core types, like Result<T, E> and Option<T>, library-defined operations on language primitives, native asset management, blockchain contextual operations, access control, storage management, and support for types from other VMs, among many other things.

The entire Sway standard library is a Forc project called std, and is available directly here Icon Link. Navigate to the appropriate tagged release if the latest master is not compatible. You can find the latest std documentation here Icon Link.

Icon LinkUsing the Standard Library

The standard library is made implicitly available to all Forc projects created using forc new . In other words, it is not required to manually specify std as an explicit dependency. Forc will automatically use the version of std that matches its version.

Importing items from the standard library can be done using the use keyword, just as importing items from any Sway project. For example:

use std::storage::storage_vec::*;

This imports the StorageVec type into the current namespace.

Icon LinkStandard Library Prelude

Sway comes with a variety of things in its standard library. However, if you had to manually import every single thing that you used, it would be very verbose. But importing a lot of things that a program never uses isn't good either. A balance needs to be struck.

The prelude is the list of things that Sway automatically imports into every Sway program. It's kept as small as possible, and is focused on things which are used in almost every single Sway program.

The current version of the prelude lives in std::prelude Icon Link, and re-exports the following: