# ol.busker

Public lifecycle API for Busker.

See [Configuration](configuration.adoc) for the map accepted by [`start!`](#start!)
and [`reload!`](#reload!).

## start!

```clojure
(start! config)
```

Start a Busker server from `config` and return an opaque server handle.

See [Configuration](configuration.adoc) for the config shape.

[source,window=_blank](https://github.com/outskirtslabs/busker/blob/main/src/main/clojure/ol/busker.clj#L9-L14)

---

## reload!

```clojure
(reload! server config)
(reload! server config opts)
```

Compile and activate a new runtime snapshot for `server` from `config`.

See [Configuration](configuration.adoc) for the config shape.

[source,window=_blank](https://github.com/outskirtslabs/busker/blob/main/src/main/clojure/ol/busker.clj#L16-L23)

---

## stop!

```clojure
(stop! server)
```

Synchronously stop `server`.

[source,window=_blank](https://github.com/outskirtslabs/busker/blob/main/src/main/clojure/ol/busker.clj#L25-L28)

---

## state

```clojure
(state server)
```

Return pure runtime state for `server`.

The returned state includes the normalized config snapshot.
See [Configuration](configuration.adoc) for that config shape.

[source,window=_blank](https://github.com/outskirtslabs/busker/blob/main/src/main/clojure/ol/busker.clj#L30-L36)
