[package]
edition = "2024"
rust-version = "1.88"
name = "mf2"
version = "2.0.0"
authors = ["Evan Carroll"]
build = "build.rs"
links = "mf2-v2"
exclude = ["package.txt"]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Unicode MessageFormat 2 for Rust, for Leptos web applications and native CLI and terminal applications: the one crate an application names — the call-site types, the Leptos layer, the native application support and its Ratatui text behind features, the formatter, and compile_str for ad-hoc messages."
homepage = "https://evancarroll.github.io/rust-mf2/"
documentation = "https://docs.rs/mf2"
readme = "README.md"
keywords = [
"messageformat",
"mf2",
"i18n",
"l10n",
"leptos",
]
categories = [
"internationalization",
"localization",
"wasm",
"web-programming",
]
license = "MIT AND Unicode-3.0"
repository = "https://github.com/EvanCarroll/rust-mf2"
[package.metadata.docs.rs]
features = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"leptos",
"ssr",
"static-locale",
"mark-fallback-lang",
"native",
"ratatui",
"axum",
]
targets = ["x86_64-unknown-linux-gnu"]
[package.metadata.api.modes]
core = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
]
ssr = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"leptos",
"ssr",
"static-locale",
"mark-fallback-lang",
]
hydrate = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"leptos",
"hydrate",
"static-locale",
"mark-fallback-lang",
]
csr = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"leptos",
"csr",
"static-locale",
"mark-fallback-lang",
]
native = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"native",
]
ratatui = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"ratatui",
]
axum = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"axum",
]
[package.metadata.api.baseline."1.0.0"]
core = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
]
ssr = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"ssr",
"static-locale",
"mark-fallback-lang",
"leptos-mf2/leptos-0-9",
]
hydrate = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"hydrate",
"static-locale",
"mark-fallback-lang",
"leptos-mf2/leptos-0-9",
]
csr = [
"compile",
"fn-number",
"datetime-icu",
"host-std",
"csr",
"static-locale",
"mark-fallback-lang",
"leptos-mf2/leptos-0-9",
]
[features]
axum = [
"host-std",
"dep:axum",
"dep:http",
"dep:tower-layer",
"dep:tower-service",
"dep:brotli",
"dep:flate2",
]
clap = ["dep:clap"]
compile = [
"dep:mf2-syntax",
"dep:mf2-locale-data",
"mf2-catalog/writer",
]
csr = [
"host-web",
"dep:oco_ref",
"dep:js-sys",
"dep:wasm-bindgen",
"dep:web-sys",
"dep:wasm-bindgen-futures",
"leptos_0_9?/csr",
"mf2-leptos-ui-0-9?/csr",
"leptos_0_8?/csr",
"mf2-leptos-ui-0-8?/csr",
]
datetime-icu = [
"fn-datetime",
"mf2-fn-datetime/datetime-icu",
"mf2-host-web?/time-zones",
"mf2-locale-data?/icu-blob",
]
datetime-intl = [
"fn-datetime",
"mf2-fn-datetime/datetime-intl",
"mf2-host-web?/datetime-intl",
]
default = []
fn-datetime = ["dep:mf2-fn-datetime"]
fn-number = ["dep:mf2-fn-number"]
host-std = ["dep:mf2-host-std"]
host-web = ["dep:mf2-host-web"]
hydrate = [
"host-web",
"dep:oco_ref",
"dep:js-sys",
"dep:wasm-bindgen",
"dep:web-sys",
"dep:any_spawner",
"dep:wasm-bindgen-futures",
"leptos_0_9?/hydrate",
"tachys_0_3?/hydrate",
"mf2-leptos-ui-0-9?/hydrate",
"leptos_0_8?/hydrate",
"tachys_0_2?/hydrate",
"mf2-leptos-ui-0-8?/hydrate",
]
intl = [
"mf2-runtime/intl",
"mf2-fn-number?/intl",
"mf2-host-web?/intl",
]
leptos = [
"dep:leptos_0_9",
"dep:tachys_0_3",
"dep:reactive_graph_0_3",
"dep:mf2-leptos-ui-0-9",
]
leptos-0-8 = [
"dep:leptos_0_8",
"dep:tachys_0_2",
"dep:reactive_graph_0_2",
"dep:mf2-leptos-ui-0-8",
]
mark-fallback-lang = []
native = [
"host-std",
"dep:sys-locale",
"dep:jiff",
"jiff/std",
"jiff/tz-system",
"mf2-catalog/static-bytes",
"mf2-catalog/content-hash",
]
ratatui = [
"native",
"dep:ratatui-core",
]
ssr = [
"host-std",
"dep:oco_ref",
"dep:js-sys",
"dep:wasm-bindgen",
"dep:web-sys",
"leptos_0_9?/ssr",
"tachys_0_3?/ssr",
"mf2-leptos-ui-0-9?/ssr",
"leptos_0_8?/ssr",
"tachys_0_2?/ssr",
"mf2-leptos-ui-0-8?/ssr",
]
static-locale = []
[lib]
name = "mf2"
path = "src/lib.rs"
[[test]]
name = "ambient"
path = "tests/ambient.rs"
required-features = [
"native",
"compile",
]
[[test]]
name = "arguments"
path = "tests/arguments.rs"
required-features = [
"compile",
"host-std",
"fn-datetime",
]
[[test]]
name = "call_site"
path = "tests/call_site.rs"
required-features = [
"compile",
"host-std",
"fn-datetime",
]
[[test]]
name = "churn"
path = "tests/churn.rs"
required-features = [
"csr",
"compile",
"host-std",
]
[[test]]
name = "fallback_lang"
path = "tests/fallback_lang.rs"
required-features = [
"ssr",
"mark-fallback-lang",
]
[[test]]
name = "from_directory"
path = "tests/from_directory.rs"
required-features = [
"native",
"compile",
]
[[test]]
name = "locale_allocations"
path = "tests/locale_allocations.rs"
required-features = [
"native",
"compile",
]
[[test]]
name = "lookup"
path = "tests/lookup.rs"
required-features = [
"native",
"compile",
]
[[test]]
name = "matching"
path = "tests/matching.rs"
required-features = ["host-std"]
[[test]]
name = "native"
path = "tests/native.rs"
required-features = [
"native",
"compile",
]
[[test]]
name = "ratatui"
path = "tests/ratatui.rs"
required-features = [
"ratatui",
"compile",
]
[[test]]
name = "render"
path = "tests/render.rs"
required-features = [
"ssr",
"compile",
]
[[test]]
name = "system_zone"
path = "tests/system_zone.rs"
required-features = [
"native",
"compile",
"fn-datetime",
]
[[test]]
name = "time_zone"
path = "tests/time_zone.rs"
required-features = [
"ssr",
"compile",
"fn-datetime",
]
[[test]]
name = "uninstalled"
path = "tests/uninstalled.rs"
required-features = [
"native",
"compile",
]
[dependencies.any_spawner]
version = "0.3.0"
optional = true
[dependencies.axum]
version = "0.8.9"
features = ["original-uri"]
optional = true
default-features = false
[dependencies.brotli]
version = "9.0.0"
optional = true
[dependencies.clap]
version = "4.6.7"
features = ["derive"]
optional = true
[dependencies.flate2]
version = "1.1.10"
optional = true
[dependencies.http]
version = "1.5.0"
optional = true
[dependencies.jiff]
version = "0.2.37"
optional = true
default-features = false
[dependencies.js-sys]
version = "0.3.105"
optional = true
default-features = false
[dependencies.leptos_0_8]
version = "0.8.20"
optional = true
default-features = false
package = "leptos"
[dependencies.leptos_0_9]
version = "0.9.0-beta"
optional = true
default-features = false
package = "leptos"
[dependencies.mf2-catalog]
version = "=2.0.0"
[dependencies.mf2-fn-datetime]
version = "=2.0.0"
optional = true
[dependencies.mf2-fn-number]
version = "=2.0.0"
optional = true
[dependencies.mf2-host-std]
version = "=2.0.0"
optional = true
[dependencies.mf2-host-web]
version = "=2.0.0"
optional = true
[dependencies.mf2-leptos-ui-0-8]
version = "=2.0.0"
optional = true
[dependencies.mf2-leptos-ui-0-9]
version = "=2.0.0"
optional = true
[dependencies.mf2-locale-data]
version = "=2.0.0"
optional = true
[dependencies.mf2-macros]
version = "=2.0.0"
[dependencies.mf2-model]
version = "=2.0.0"
[dependencies.mf2-runtime]
version = "=2.0.0"
[dependencies.mf2-syntax]
version = "=2.0.0"
optional = true
[dependencies.oco_ref]
version = "0.2.1"
optional = true
[dependencies.ratatui-core]
version = "0.1.2"
optional = true
default-features = false
[dependencies.reactive_graph_0_2]
version = "0.2.14"
optional = true
default-features = false
package = "reactive_graph"
[dependencies.reactive_graph_0_3]
version = "0.3.0-beta"
optional = true
default-features = false
package = "reactive_graph"
[dependencies.sys-locale]
version = "0.3.2"
optional = true
[dependencies.tachys_0_2]
version = "0.2.18"
optional = true
default-features = false
package = "tachys"
[dependencies.tachys_0_3]
version = "0.3.0-beta"
optional = true
default-features = false
package = "tachys"
[dependencies.thiserror]
version = "2.0.20"
default-features = false
[dependencies.tower-layer]
version = "0.3.3"
optional = true
[dependencies.tower-service]
version = "0.3.3"
optional = true
[dependencies.wasm-bindgen]
version = "0.2.128"
optional = true
default-features = false
[dependencies.wasm-bindgen-futures]
version = "0.4.78"
optional = true
[dependencies.web-sys]
version = "0.3.105"
features = [
"console",
"Document",
"Element",
"Headers",
"History",
"HtmlElement",
"HtmlLinkElement",
"HtmlSelectElement",
"Navigator",
"Node",
"Request",
"RequestInit",
"Response",
"Storage",
"Text",
"Window",
]
optional = true
default-features = false
[dev-dependencies.any_spawner]
version = "0.3.0"
features = ["futures-executor"]
[dev-dependencies.leptos_axum]
version = "0.9.0-beta"
[dev-dependencies.mf2-catalog]
version = "=2.0.0"
features = ["writer"]
[dev-dependencies.mf2-locale-data]
version = "=2.0.0"
[dev-dependencies.mf2-syntax]
version = "=2.0.0"
[dev-dependencies.tokio]
version = "1.53.1"
features = ["rt"]
default-features = false
[dev-dependencies.tower]
version = "0.5.3"
features = ["util"]
default-features = false
[lints.clippy]
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
similar_names = "allow"
too_many_lines = "allow"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_debug_implementations = "allow"
unreachable_pub = "warn"
unsafe_code = "deny"