---
title: "Getting Started"
description: "Using the IanaIO toolkit"
---

## Using the Whole Toolkit

Using the whole toolkit via the umbrella `ianaio` crate lets you hit the ground
running, with everything at your fingertips. This is a good choice for people
making Web applications, or top-level crates that are compiled into Wasm
binaries.

### `Cargo.toml`

Add a `ianaio` dependency to your `Cargo.toml`:

```toml
[dependencies]
ianaio = "0.1.7" // Please check for the latest version at crates.io
```

### `src/lib.rs`

Use various bits of `ianaio` via its submodules, for example timers and intervals
are in `ianaio::timers` and event listeners are in `ianaio::events`:

```rust
use ianaio::{timers, events};

// ...
```

## Using a Single Crate

Each crate in the IanaIO toolkit can also be used independently from the rest of
the toolkit. This is a good choice for people making library crates that are
intended to be used by other people making Web applications or top-level crates
that are compiled into Wasm binaries.

### `Cargo.toml`

If we want to use only the IanaIO functionality that wraps `setTimeout`, we can
add `ianaio-timers` to our dependencies in `Cargo.toml`:

```toml
[dependencies]
ianaio-timers = "0.1.1"
```

### `src/lib.rs`

Next, import the functionality you need from the `ianaio_timers` crate, and go to
town with it:

```rust
use ianaio_timers::callback::Timeout;

// ...
```
