[package] name = "courses" version = "0.9.4" edition = "2021" license = "GPL-3.0-or-later" authors = ["Anton Mølbjerg Eskildsen"] description = "A publishing system for interactive content" homepage = "https://coursesproject.github.io/courses/" repository = "https://github.com/coursesproject/courses" readme = "README.md" keywords = ["website-generator", "publishing", "notebooks", "markdown", "education"] categories = ["command-line-utilities"] build = "build.rs" exclude = [ "applications/*", "docs/*" ] [workspace] members = [ "crates/*", ] [lib] name = "courses" path = "src/lib.rs" [profile.release] debug = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [target.x86_64-pc-windows-msvc] rustflags = ["-C", "link-arg=-fuse-ld=lld"] [dependencies] cdoc-parser = { path = "crates/cdoc-parser", version = "0.1.1" } cdoc = { path = "crates/cdoc", version = "0.8.1" } # Serialization and templating serde = { version = "1.0.200", features = ["derive", "rc"] } serde_yaml = { version = "0.9.25" } serde_json = "1.0.116" toml = "0.8.12" tera = "1.19.1" syntect = "5.2.0" # Utilities and error handling rust-embed = "8.3.0" fs_extra = "1.3.0" thiserror = { version = "1.0.59" } anyhow = { version = "1.0.82", features = ["backtrace"] } linked-hash-map = { version = "0.5.6", features = ["serde_impl"] } image = "0.25.1" base64-simd = "0.8.0" lazy_static = "1.4.0" semver = { version = "1.0.18", features = ["serde"] } cowstr = { version = "1.2.0", features = ["serde"] } # CLI libraries inquire = "0.7.5" clap = { version = "4.5.4", features = ["derive"] } console = "0.15.8" indicatif = { version = "0.17.8", features = ["rayon"] } # Async + server stuff penguin = { version = "0.1.8", optional = true } tokio = { version = "1.37.0", features = ["macros", "rt", "rt-multi-thread"], optional = true } pollster = { version = "0.3.0", features = ["macro"], optional = true } notify = { version = "6.1.1", optional = true } notify-debouncer-mini = { version = "0.4.1", optional = true } reqwest = { version = "0.12.4", features = ["blocking"] } bytes = { version = "1.6.0" } zip = "1.1.3" rayon = "1.10.0" blake3 = { version = "1.5.1", features = ["serde"] } tempfile = "3.10.1" [build-dependencies] built = "0.7.2" [features] default = ["server"] server = ["dep:tokio", "dep:penguin", "dep:notify", "dep:notify-debouncer-mini"] no-server = ["dep:pollster"]