You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
2.5 KiB
TOML

[package]
name = "pages"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
[lib]
crate-type = ["cdylib", "rlib"]
# Shared dependencies: compile for both native host and wasm32-unknown-unknown.
[dependencies]
# Serialisation for API request/response payloads and D1 row (de)serialisation.
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Error types with Display/std::error::Error derive — works on both native and wasm32.
thiserror = "2"
# Zip reading for upload validation (core::upload); deflate is the only
# compression method we need to support. Pure Rust, compiles on wasm32.
zip = { version = "2", default-features = false, features = ["deflate"] }
# SHA-256 for session token hashing (auth); pure Rust, compiles on wasm32.
sha2 = "0.10"
# Entropy for session/state token generation (auth.rs). Declared unconditionally
# (no features) so `generate_token` compiles and is unit-testable on the native
# host target too; the wasm_js feature required for wasm32-unknown-unknown is
# layered on in the wasm-only dependency table below — Cargo unifies the two
# declarations of the same crate/version, adding the feature only on that
# target.
getrandom = "0.4"
# WASM-only dependencies (Workers entry point).
# workers-rs, getrandom/wasm_js, and the axum Workers glue are wasm32-specific.
[target.'cfg(target_arch = "wasm32")'.dependencies]
# Cloudflare Workers SDK — provides D1 bindings, fetch, KV, etc.
# The `http` feature makes the fetch handler accept/return standard http types,
# enabling direct Axum router integration without manual request conversion.
worker = { version = "0.7", features = ["d1", "http"] }
# Axum HTTP framework for the WASM Workers entry point — minimal feature set
# (no full tokio runtime needed; json and query features required for handlers).
axum = { version = "0.8", default-features = false, features = ["json", "query"] }
# Tower service trait — required by the WASM entry point to call the Axum router.
tower-service = "0.3"
# http crate — re-exported by axum and worker; needed explicitly so the return
# type `http::Response<axum::body::Body>` resolves in the fetch event handler.
http = "1"
# Enables the wasm_js feature of the unconditional `getrandom` dependency
# above (see its comment) — routes entropy to crypto.getRandomValues() via
# the Web Crypto API, required for wasm32-unknown-unknown.
getrandom = { version = "0.4", features = ["wasm_js"] }
[profile.release]
opt-level = "z"
lto = true
strip = true
codegen-units = 1