Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
96 lines (89 loc) · 3.66 KB
/
Copy pathCargo.toml
File metadata and controls
96 lines (89 loc) · 3.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
[package]
name = "webfluent"
version = "5.11.0"
edition = "2024"
description = "A language for websites, PDFs and slide decks. One binary, no Node: HTML, CSS and JavaScript, PDFs from its own layout engine, and a template engine for Rust."
authors = ["Monzer Omer <monzer.a.omer@gmail.com>"]
license = "MPL-2.0"
repository = "https://github.com/monzeromer-lab/WebFluent"
homepage = "https://webfluent.monzeromer.dev"
documentation = "https://docs.rs/webfluent"
readme = "README.md"
# What a `cargo install webfluent` does not need. `editors/` is 8 MB, 7.4 MB
# of it the two generated tree-sitter `parser.c` files; `docs/` is the built
# documentation site. Neither is used to build or run the compiler, and
# together they were most of a 15.6 MB package that crates.io kept timing
# out on. The editor extensions and the site live in the repository.
exclude = [
"/editors",
"/docs",
"/site",
"/dist",
"/tests",
"/.github",
"/.claude",
# The reference documents and the fonts they are set in: tests and
# examples, not the compiler.
"/examples/documents",
]
keywords = ["web", "language", "compiler", "template-engine", "pdf"]
categories = ["compilers", "template-engine", "web-programming"]
rust-version = "1.92"
[package.metadata.deb]
maintainer = "Monzer Omer"
copyright = "2026 Monzer Omer"
depends = "$auto"
section = "devel"
priority = "optional"
assets = [
["target/release/wf", "usr/bin/", "755"],
]
extended-description = "A programming language that compiles to HTML, CSS, and JavaScript. Built-in components, reactivity, routing, i18n, animations, and SSG."
[lib]
name = "webfluent"
path = "src/lib.rs"
[[bin]]
name = "wf"
path = "src/main.rs"
required-features = ["cli"]
# `cli` is the `wf` command: its argument parser and the dev server. A
# program that only renders templates leaves it out —
# `webfluent = { version = "5", default-features = false }` — and builds
# the compiler and the template engine alone.
[features]
default = ["cli"]
cli = ["dep:clap", "dep:tiny_http"]
[workspace]
members = [".", "crates/wf-lsp"]
exclude = ["editors/zed"]
[dependencies]
clap = { version = "4.6.0", features = ["derive"], optional = true }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
tiny_http = { version = "0.12.0", optional = true }
# Regex literals evaluated at build time, in the static paint and the template engine.
regex = "1"
# The image pipeline: decoding, resizing and re-encoding four formats is not
# work worth doing by hand, and a wrong colour profile or a mis-decoded
# progressive JPEG is the kind of bug that never ends. The hand-written PDF
# writer and gzip encoder stay as they are.
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "gif"] }
# Lossy WebP at `build.media.quality`: `image`'s own WebP encoder is
# lossless only, and a lossless WebP of a photograph is larger than the
# picture it replaces. libwebp is built from its source with `cc`, so it
# builds wherever the compiler does, Android included.
webp = { version = "0.3.1", default-features = false }
# Paged output (PDF documents and slide decks). Layout, shaping and writing a
# correct PDF are each a project of their own; these are the pure-Rust crates
# Typst's own PDF export is built on.
krilla = "0.8"
krilla-svg = "0.8"
usvg = { version = "0.47", default-features = false, features = ["text"] }
taffy = { version = "0.14", default-features = false, features = ["std", "taffy_tree", "flexbox", "grid", "block_layout", "content_size"] }
rustybuzz = "0.20"
ttf-parser = "0.25"
unicode-bidi = "0.3"
unicode-linebreak = "0.1"
fontdb = "0.23"
miniz_oxide = "0.8"
qrcode = { version = "0.14", default-features = false }