[workspace] resolver = "2" members = [ "xilem", "xilem_core", "masonry", "xilem_web", "xilem_web/web_examples/counter", "xilem_web/web_examples/counter_custom_element", "xilem_web/web_examples/elm", "xilem_web/web_examples/fetch", "xilem_web/web_examples/todomvc", "xilem_web/web_examples/mathml_svg", "xilem_web/web_examples/raw_dom_access", "xilem_web/web_examples/spawn_tasks", "xilem_web/web_examples/svgtoy", ] [workspace.package] edition = "2021" # Keep in sync with RUST_MIN_VER in .github/workflows/ci.yml, with the relevant README.md files. rust-version = "1.79" license = "Apache-2.0" repository = "https://github.com/linebender/xilem" homepage = "https://xilem.dev/" [workspace.lints] rust.unexpected_cfgs = { level = "warn", check-cfg = [ 'cfg(FALSE)', 'cfg(tarpaulin_include)', ] } # unsafe code is not allowed in Xilem or Masonry # We would like to set this to `forbid`, but we have to use `deny` because `android_activity` # requires us to use the unsafe `#[no_mangle]` attribute # (And cargo doesn't let us have platform specific lints here) rust.unsafe_code = "deny" rust.keyword_idents_2024 = "forbid" rust.non_ascii_idents = "forbid" rust.unsafe_op_in_unsafe_fn = "forbid" rust.non_local_definitions = "forbid" rust.unused_lifetimes = "warn" rust.unit_bindings = "warn" rust.unused_import_braces = "warn" rust.trivial_numeric_casts = "warn" rust.unused_macro_rules = "warn" rust.variant_size_differences = "warn" clippy.allow_attributes_without_reason = "warn" clippy.collection_is_never_read = "warn" clippy.debug_assert_with_mut_call = "warn" clippy.doc_markdown = "warn" clippy.fn_to_numeric_cast_any = "forbid" clippy.infinite_loop = "warn" clippy.large_include_file = "warn" clippy.large_stack_arrays = "warn" clippy.mismatching_type_param_order = "warn" clippy.missing_fields_in_debug = "warn" clippy.same_functions_in_if_condition = "warn" clippy.semicolon_if_nothing_returned = "warn" clippy.should_panic_without_expect = "warn" clippy.unseparated_literal_suffix = "warn" # Follow-ups for their own PRs, too noisy to go in lint group PR # rust.let_underscore_drop = "warn" # rust.missing_debug_implementations = "warn" # rust.unused_qualifications = "warn" # rust.single_use_lifetimes = "warn" # clippy.exhaustive_enums = "warn" # clippy.dbg_macro = "warn" # clippy.match_same_arms = "warn" # clippy.cast_possible_truncation = "warn" # clippy.missing_assert_message = "warn" # clippy.return_self_not_must_use = "warn" # clippy.wildcard_imports = "warn" # rust.elided_lifetimes_in_paths = "warn" # clippy.use_self = "warn" # Aspirational lints, not enabled for one reason or another # rust.missing_docs = "warn" # We have many as-yet undocumented items # rust.unreachable_pub = "warn" # Potentially controversial code style # rust.unnameable_types = "warn" # Requires lint_reasons rustc feature for exceptions # clippy.todo = "warn" # We have a lot of "real" todos # clippy.missing_errors_doc = "warn" # Can be quite noisy? # clippy.missing_panics_doc = "warn" # Can be quite noisy? # clippy.partial_pub_fields = "warn" # Potentially controversial code style # clippy.shadow_unrelated = "warn" # Potentially controversial code style # This catches duplicated dependencies in the tree, which we don't have much control over # We should use cargo deny for this, anyway # clippy.cargo = "warn" # Lints which we still set in individual crates lib.rs # False positives with example targets - https://github.com/rust-lang/rust/issues/57274 # rust.unused_crate_dependencies = "warn" # Examples often do want to print # clippy.print_stdout = "warn" # clippy.print_stderr = "warn" [workspace.dependencies] xilem_web_core = { version = "0.1.0", path = "xilem_web/xilem_web_core" } masonry = { version = "0.2.0", path = "masonry" } xilem_core = { version = "0.1.0", path = "xilem_core" } vello = "0.2.1" wgpu = "0.20.1" kurbo = "0.11.0" parley = "0.1.0" peniko = "0.1.1" winit = "0.30.4" tracing = { version = "0.1.40", default-features = false } smallvec = "1.13.2" dpi = "0.1.1" image = { version = "0.25.2", default-features = false } web-time = "1.1.0" bitflags = "2.6.0" accesskit = "0.16.0" accesskit_winit = "0.22.0" nv-flip = "0.1.2" time = "0.3.36"