[package] name = "yumechi-no-kuni-proxy-worker" description = "A Misskey proxy worker for ゆめちのくに (Yumechi-no-kuni) instance." repository = "https://forge.yumechi.jp/yume/yumechi-no-kuni-proxy-worker" license = "Apache-2.0" version = "0.1.0" edition = "2021" authors = [ "eternal-flame-AD " ] [lib] crate-type = ["cdylib", "rlib"] [profile.release] lto = true strip = true opt-level = "z" codegen-units = 1 panic = "abort" [profile.release-local] inherits = "release" opt-level = 3 strip = false panic = "unwind" [features] default = [] # Base feature sets based on the environment env-local = ["axum/http1", "axum/http2", "axum-server", "reqwest", "tokio", "env_logger", "governor", "clap", "toml", "image/ico", "lossy-webp", "tower-http", "metrics", "svg-text", "resvg/system-fonts", "resvg/raster-images", "fontdb/fontconfig" ] cf-worker = ["dep:worker", "dep:worker-macros", "dep:wasm-bindgen"] cf-worker-paid = ["cf-worker", "resvg/raster-images", "resvg/text", "image/ico", "panic-console-error"] # Observability and tracing features panic-console-error = ["dep:console_error_panic_hook"] metrics = ["prometheus"] prometheus = ["dep:prometheus"] # Processing capabilities svg-text = ["resvg/text", "dep:fontdb"] lossy-webp = ["dep:webp"] # Server runtime features tokio = ["dep:tokio", "axum/tokio", "dep:libc"] axum-server = ["dep:axum-server", "tower-http"] governor = ["dep:governor"] env_logger = ["dep:env_logger"] tower-http = ["dep:tower-http"] reuse-port = [] reqwest = ["dep:reqwest", "dep:url"] # Sandbox features apparmor = ["dep:siphasher", "dep:libc"] [dependencies] worker = { version="0.4.2", features=['http', 'axum'], optional = true } worker-macros = { version="0.4.2", features=['http'], optional = true } axum = { version = "0.7", default-features = false, features = ["query", "json"] } tower-service = "0.3" console_error_panic_hook = { version = "0.1.1", optional = true } serde = { version = "1", features = ["derive"] } futures = { version = "0.3.31", default-features = false, features = ["std"] } image = { version = "0.25.5", default-features = false, features = ["avif", "bmp", "gif", "jpeg", "png", "webp"] } reqwest = { version = "0.12.9", features = ["brotli", "gzip", "stream", "zstd"], optional = true } getrandom = { version = "0.2", features = ["js"] } siphasher = { version = "1.0.1", optional = true } tokio = { version = "1.41.1", features = ["rt", "rt-multi-thread", "macros", "sync", "signal"], optional = true } clap = { version = "4.5.20", features = ["derive"], optional = true } toml = { version = "0.8", optional = true } log = "0.4" env_logger = { version = "0.11", optional = true } governor = { version = "0.7.0", features = ["dashmap"], optional = true } resvg = { version = "0.44.0", default-features = false, features = ["gif", "image-webp"] } thiserror = "2.0" serde_json = "1" wasm-bindgen = { version = "0.2", optional = true } libc = { version = "0.2.162", optional = true } axum-server = { version = "0.7.1", optional = true } fontdb = { version = "0.23", optional = true } webp = { version = "0.3.0", optional = true } url = { version = "2", optional = true } tower-http = { version = "0.6.2", features = ["catch-panic", "timeout"], optional = true } dashmap = "6.1.0" lru = "0.12.5" prometheus = { version = "0.13.4", optional = true } [patch.crates-io] # licensing and webp dependencies resvg = { git = "https://github.com/linebender/resvg", rev = "ac767218d791fa42bb6da3a8cc85f0a4454685f1" } [build-dependencies] chumsky = "0.9.3" quote = "1.0.37" serde = { version = "1.0.214", features = ["derive"] } serde_json = "1.0.132" [[bin]] name = "yumechi-no-kuni-proxy-worker" required-features = ["env-local"]