[package] name = "topola" description = "Work-in-progress free and open-source topological (rubberband) router and autorouter for printed circuit boards (PCBs)" version = "0.1.0" edition = "2021" default-run = "topola" [lib] name = "topola" [[bin]] name = "topola" required-features = ["cli"] [[bin]] name = "topola-egui" required-features = ["egui"] [features] default = ["disable_contracts"] cli = ["dep:clap"] egui = [ "dep:eframe", "dep:egui", "dep:env_logger", "dep:fluent-templates", "dep:futures-lite", "dep:icu", "dep:rfd", "dep:sys-locale", "dep:unic-langid", ] disable_contracts = ["contracts-try/disable_contracts"] [dependencies] thiserror = "1.0" rstar = "0.12" petgraph = "0.6.5" spade = "2.12.1" serde_json = "1.0" contracts-try = "0.7" enum_dispatch = "0.3.13" derive-getters = "0.5.0" bimap = "0.6.3" log = "0.4" utf8-chars = "3.0.4" [dependencies.specctra_derive] path = "macros/specctra_derive" [dependencies.geo] version = "0.28" default-features = false features = ["spade", "use-serde"] [dependencies.serde] version = "1" features = ["derive"] [dependencies.clap] optional = true version = "4.5.18" features = ["derive"] [dependencies.sys-locale] optional = true version = "0.3.1" [dependencies.unic-langid] optional = true version = "0.9.5" features = ["macros", "serde"] [dependencies.fluent-templates] optional = true version = "0.11" [dependencies.icu] optional = true version = "1.5.0" features = ["experimental"] [dependencies.eframe] optional = true version = "0.29" default-features = false features = ["accesskit", "default_fonts", "glow", "persistence"] [dependencies.egui] optional = true version = "0.29" [dependencies.rfd] optional = true version = "0.15" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] [target.'cfg(not(target_arch = "wasm32"))'.dependencies.futures-lite] optional = true version = "2.3" [target.'cfg(not(target_arch = "wasm32"))'.dependencies.env_logger] optional = true version = "0.11" [target.'cfg(target_arch = "wasm32")'.dependencies] wasm-bindgen-futures = "0.4" [profile.release] opt-level = 2 # fast and small wasm # Optimize all dependencies even in debug builds: [profile.dev.package."*"] opt-level = 2 [build-dependencies] clap_mangen = "0.2.23" clap = {version="4.5.18", features = ["derive"] } [package.metadata.docs.rs] cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]