[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:sys-locale", "dep:unic-langid", "dep:fluent-templates", "dep:eframe", "dep:egui", "dep:rfd", "dep:futures"] disable_contracts = ["contracts/disable_contracts"] [dependencies] thiserror = "1.0.56" anyhow = "1.0.79" rstar = "0.11.0" petgraph = "0.6.3" spade = "2.2.0" serde_json = "1.0.117" enum_dispatch = "0.3.12" itertools = "0.8.2" contracts = "0.6.3" bimap = "0.6.3" log = "0.4" utf8-chars = "3.0.2" [dependencies.specctra_derive] path = "macros/specctra_derive" [dependencies.geo] version = "0.25.1" features = ["use-serde"] [dependencies.serde] version = "1" features = ["derive"] [dependencies.clap] optional = true version = "4.5.8" 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.9.4" [dependencies.eframe] optional = true version = "0.28.1" default-features = false features = ["accesskit", "default_fonts", "glow", "persistence"] [dependencies.egui] optional = true version = "0.28.1" [dependencies.rfd] optional = true version = "0.14.0" [dependencies.futures] optional = true version = "0.3.30" [dependencies.gl] optional = true version = "0.14.0" [dependencies.pathfinder_canvas] optional = true git = "https://github.com/servo/pathfinder" [dependencies.pathfinder_geometry] optional = true git = "https://github.com/servo/pathfinder" [dependencies.pathfinder_gl] optional = true git = "https://github.com/servo/pathfinder" [dependencies.pathfinder_renderer] optional = true git = "https://github.com/servo/pathfinder" [dependencies.pathfinder_resources] optional = true git = "https://github.com/servo/pathfinder" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] env_logger = "0.10" [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 [patch.crates-io] contracts = { path = "vendored/contracts" } [build-dependencies] clap_mangen = "0.2.23" clap = {version="4.5.8", features = ["derive"] }