Skip to main content

ashlar/
lib.rs

1//! Build fast desktop and web apps in Rust.
2//!
3//! One dependency for documents with undo and autosave, commands that drive menus, shortcuts, a
4//! palette, a CLI and an MCP server, background jobs, native OS features, egui components, and a
5//! runtime with crash safety, agent control and telemetry. Start with [`prelude`] and
6//! [`app::App`]; the `notes` example is a complete app.
7#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
8
9pub use ashlar_app as app;
10pub use ashlar_cli as cli;
11pub use ashlar_command as command;
12pub use ashlar_control as control;
13pub use ashlar_fs as fs;
14pub use ashlar_jobs as jobs;
15pub use ashlar_mcp as mcp;
16pub use ashlar_native as native;
17pub use ashlar_store as store;
18pub use ashlar_ui as ui;
19pub use egui;
20pub use serde_json;
21
22pub use ashlar_obfuscate as obfuscate;
23pub use ashlar_obfuscate::obfuscated;
24
25/// What most apps need, in one `use ashlar::prelude::*;`.
26pub mod prelude {
27    pub use ashlar_app::{App, Cx, Document, Driver, Effect, Headless, Session, cli_main};
28    pub use ashlar_command::{CommandError, CommandInfo, CommandSpec, Dispatch, Param, Params, always, cmd, query};
29    pub use ashlar_jobs::{Jobs, apply};
30    pub use ashlar_store::{Format, Revision};
31    pub use ashlar_ui::toasts::ToastLevel;
32    pub use egui;
33    pub use serde_json::{Value, json};
34}
35
36/// The repository README's example, compiled as a doc test.
37#[cfg(doctest)]
38#[doc = include_str!("../../../README.md")]
39pub struct ReadmeDoctests;