loic/crates/loic-gui/Cargo.toml
Kamal Tufekcic 4eb2362b20
All checks were successful
CI / build (push) Successful in 1m41s
CI / lint (push) Successful in 43s
CI / test (push) Successful in 2m7s
CI / publish (push) Successful in 12s
CI / release (push) Successful in 1m15s
initial commit
2026-09-12 10:37:55 +03:00

62 lines
2.8 KiB
TOML

# The Observatory: the calendar rendered on a GPU, with one observer thread
# per logical CPU behind the picture. Not published — it is a binary, and it
# goes out attached to a release beside the oracle.
[package]
name = "loic-gui"
version.workspace = true
edition = "2024"
authors.workspace = true
repository.workspace = true
license-file.workspace = true
description = "A temporal meditation interface for the Loic Calendar"
publish = false
# What the Observatory stands on. Each dependency is here for one stated
# reason, and the reason is stated beside it.
[dependencies]
# The calendar, at the workspace's one version. Every observer thread and
# the main thread's one observation per frame call into it, and nothing on
# the screen is derived from anything else.
loic.workspace = true
# The GPU: surfaces, pipelines, buffers and shaders, through which every
# pixel of the Observatory is drawn.
wgpu = "30"
# The window and its events, Wayland only. `winit`'s `x11` feature would
# pull in `libX11`, `x11rb` and their kin as build dependencies, and so it
# is not enabled: the Observatory links only against Wayland. X11 is not
# where desktop Linux is going, and a project that refuses floating-point in
# a timestamp is not going to make its first compromise for a display
# server. `wayland-dlopen` loads the Wayland client library at run time
# rather than at link time; `wayland-csd-adwaita` draws the window's own
# decorations on compositors that decline to draw them; `rwh_06` is the
# `raw-window-handle` 0.6 handle wgpu asks for when it makes a surface of
# the window.
winit = { version = "0.30", default-features = false, features = ["wayland", "wayland-dlopen", "wayland-csd-adwaita", "rwh_06"] }
# `block_on` for the two asynchronous requests wgpu insists on — an adapter,
# then a device — run to completion on the calling thread, without an async
# runtime brought in to wait for two things.
pollster = "1"
# For `setpriority(2)`: the Observatory asks for nice -11 before it looses
# its observers, and threads inherit the value at creation, so one call
# before the spawn is one call for all of them.
libc = "0.2"
# `Pod` and `Zeroable`, derived, for the structures that cross to the GPU as
# bare bytes: the derive proves at compile time that a structure has no
# padding it would be undefined to read, which is the only kind of proof a
# vertex deserves.
bytemuck = { version = "1.25", features = ["derive"] }
# Audio output, for the quantum hum. Audio synthesis is the one place in the
# workspace where floating-point arithmetic is tolerated, on the grounds
# that a loudspeaker is an analog device and nothing it renders was ever
# exact to begin with.
rodio = "0.22"
# The binary target, named and placed explicitly rather than inferred.
[[bin]]
name = "loic-gui"
path = "src/main.rs"