Skip to main content

max / quasi

3.0 KB · 64 lines History Blame Raw
1 [package]
2 name = "quasi-bench"
3 version = "0.109.0"
4 description = "What a described screen costs to render, in time and in allocations"
5 edition.workspace = true
6 rust-version.workspace = true
7 authors.workspace = true
8 repository.workspace = true
9 license.workspace = true
10 publish = false
11
12 [lints]
13 workspace = true
14
15 [features]
16 # Allocation counting, off by default and never on in a timing run.
17 #
18 # A counting allocator is real instrumentation, and a timing number measured
19 # through it is a number about the instrumentation. So the two measurements are
20 # two builds: `cargo run --release -p quasi-bench` times, and
21 # `cargo run --release -p quasi-bench --features count` counts.
22 count = ["dep:dhat"]
23 # The generated template, compiled. Off by default so the ordinary bench does
24 # not carry a templating engine; on, it adds the third column that says whether
25 # a staged description reaches a compiled template.
26 askama = ["dep:askama"]
27
28 [dependencies]
29 quasi-router = { path = "../quasi-router", version = "0.109" }
30 quasi-webview = { path = "../quasi-webview", version = "0.109" }
31 quasi-tui = { path = "../quasi-tui", version = "0.109" }
32 quasi-immediate = { path = "../quasi-immediate", version = "0.109" }
33 # `Serves` is the trait carrying `screen` and `fragment`, which is what the
34 # webview is measured through. Taken directly rather than through quasi-webview
35 # because a bench calling a trait method should name the trait it calls.
36 quasi-http = { path = "../quasi-http", version = "0.109" }
37 # The macro under measurement. The bench holds the declared copy of the same
38 # screen `staging.rs` writes by hand, so the staged column measures what the
39 # server actually serves rather than a shape written for a benchmark.
40 quasi-declare = { path = "../quasi-declare", version = "0.1" }
41 makeover-layout = "0.44"
42 # The renderer's own escaper, so the staged path fills a hole exactly the way
43 # `Node::Text` does and the guarantee is not quietly reimplemented.
44 makeover-webview = "0.76"
45 makeover-tui = { version = "0.44", features = ["theme"] }
46 # Only to load a bundled theme file. `makeover_tui::Theme` is `#[non_exhaustive]`,
47 # so `Theme::from_theme` is the one way to get one, the same reason quasi-tui's
48 # tests take this.
49 makeover = "3.1"
50 ratatui = { version = "0.30", default-features = false }
51 # The immediate renderer's frame, and its palette type. `default_fonts` is not
52 # optional here: a `Context` with no font builds no galley, so a frame drawn
53 # without them measures layout over nothing.
54 egui = { version = "0.35", features = ["default_fonts"] }
55 makeover-immediate = "0.46"
56 # Allocation counting, and only that. Optional and off by default. It is here
57 # rather than a hand-written `GlobalAlloc` because the workspace forbids
58 # `unsafe_code` and `forbid` cannot be overridden per crate; see
59 # `src/counting.rs`.
60 dhat = { version = "0.3", optional = true }
61 # Compiles `templates/contacts.html`, which is emitted from the description by
62 # `QUASI_EMIT_TEMPLATE=... cargo run -p quasi-bench` and never hand-edited.
63 askama = { version = "0.14", optional = true }
64