External Libraries

An external library is a library that is outside of the src directory (most likely in an entirely different project).

$ tree
.
├── my_library
│   ├── Cargo.toml
│   ├── Forc.toml
│   └─── src
│       └── lib.sw
│
└── my_other_library
    ├── Cargo.toml
    ├── Forc.toml
    └─── src
        └── lib.sw

Libraries

my_other_library

my_other_library has a function quix() which can be imported into my_library because it uses the pub keyword.

library;

pub fn quix() {}

my_library

To be able to use quix() inside my_library there are two steps to take.

Add to Dependencies

Add my_other_library as a dependency under the [dependencies] section of the my_library Forc.toml file.

[project]
authors = ["Fuel Labs <contact@fuel.sh>"]
entry = "lib.sw"
license = "Apache-2.0"
name = "my_library"

[dependencies]
my_other_library = { path = "../my_other_library" }
std = { path = "../../../../../../../../../sway-lib-std" }

Import

Use the use keyword to selectively import our code from my_other_library

library;

use my_other_library::quix;

// `quix` from `my_other_library` is now available throughout the file