# Fude v0.1.0 - API Reference

## Modules

- [Fude.Rules](Fude.Rules.md): The rules of a chart's scales that the server and the browser both
apply: nice domains, the ticks of a number axis and of a time axis, the
bins of a histogram and the units of a time.

- Charts
  - [Fude](Fude.md): Fude (筆, "brush") draws charts in a Phoenix app.
  - [Fude.Annotation](Fude.Annotation.md): A note on a chart, at a place of its data: what a graphics desk writes
on a chart to tell its story.
  - [Fude.Channel](Fude.Channel.md): What a channel of a chart shows: the field of the data it reads, and
how. `x`, `y`, `color` and `size` are channels.
  - [Fude.Chart](Fude.Chart.md): A chart: its layers, its words (title, subtitle, caption, source), and
the data it draws.
  - [Fude.Components](Fude.Components.md): The function component of Fude: `<.chart>`.
  - [Fude.Layer](Fude.Layer.md): One layer of a chart: a kind (`:bar`, `:line`...), its channels and its
options. A chart has one layer, or several drawn one over the other
(`Fude.layers/2`).

- Data
  - [Fude.Data](Fude.Data.md): The data of a chart, in columns: each field with its type and its
values, in the order of the rows.
  - [Fude.Query](Fude.Query.md): A chart's data from an Ecto query, grouped and aggregated in the
database: a chart of fifty million rows reads a few hundred.

- Live
  - [Fude.Live](Fude.Live.md): New points for a chart on the page, without sending its data again.

- Collaboration
  - [Fude.Issho](Fude.Issho.md): Collaboration on charts, for people and agents, in
[Issho](https://hex.pm/packages/issho)'s rooms: a chart's spec is a
shared state of the room (`Issho.State`), that everyone changes with
the same functions, and that is a valid chart after every change.
  - [Fude.Issho.Place](Fude.Issho.Place.md): A place in a chart, in the chart's own terms (its data, never pixels,
as each person has the chart at their own size): where a person's
pointer is, where an agent points (Issho's `point` tool). Its format is
part of Fude's public API, and only grows.

- Specs
  - [Fude.Spec](Fude.Spec.md): A chart as plain data, to save and load back.

- Testing
  - [Fude.Test](Fude.Test.md): Helpers for testing charts with `Phoenix.LiveViewTest`: they read what a
chart shows, as the server made it for the browser.

## Mix Tasks

- [mix fude.build](Mix.Tasks.Fude.Build.md): Builds the Fude charts into `priv/static`.
- [mix fude.install](Mix.Tasks.Fude.Install.md): Sets up Fude in a Phoenix application.
- [mix fude.release_check](Mix.Tasks.Fude.ReleaseCheck.md): Checks the built files before a release of Fude.

