Files
ethersync-p2p/daemon/Cargo.toml
2025-07-27 19:05:31 +02:00

104 lines
2.8 KiB
TOML

# SPDX-FileCopyrightText: 2024 Danny McClanahan <dmcC2@hypnicjerk.ai>
# SPDX-FileCopyrightText: 2024 blinry <mail@blinry.org>
# SPDX-FileCopyrightText: 2024 zormit <nt4u@kpvn.de>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
[package]
name = "ethersync"
description = "Enables real-time co-editing of local text files."
version = "0.7.0"
authors = ["Moritz Neeb <nt4u@kpvn.de>", "blinry <mail@blinry.org>"]
license = "AGPL-3.0-or-later"
readme = "../README.md"
documentation = "https://ethersync.github.io"
repository = "https://github.com/ethersync/ethersync"
keywords = [
"collaboration",
"local-first",
"synchronization",
"crdt",
"peer-to-peer",
]
categories = ["command-line-utilities", "text-editors"]
edition = "2021"
default-run = "ethersync"
[lib]
name = "ethersync"
[[bin]]
name = "ethersync"
test = false
bench = false
doc = false
required-features = ["executable-deps"]
[dependencies]
anyhow = "1.0.81"
automerge = "0.6.1"
clap = { version = "4.5.3", features = ["derive", "env"], optional = true }
constant_time_eq = "0.3.1"
derive_more = { version = "2.0.1", features = ["as_ref", "deref", "display"] }
dissimilar = "1.0.9"
futures = { version = "0.3.30", default-features = false }
git2 = { version = "0.20.2", default-features = false }
ignore = "0.4.22"
iroh = "0.35.0"
magic-wormhole = "0.7.6"
notify = { version = "8.0.0", default-features = false, features = [
"macos_fsevent",
] }
operational-transform = "0.6.1"
path-clean = "1.0.1"
postcard = { version = "1.1.1", features = ["alloc"] }
rand = "0.8.5"
ropey = "1.6.1"
rust-ini = "0.21.1"
serde = { version = "1.0.198", features = ["derive"] }
serde_json = "1"
time = { version = "0.3.36", features = ["formatting"] }
tokio-util = { version = "0.7.11", features = ["codec"] }
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", default-features = false, features = [
"ansi",
"fmt",
"time",
"env-filter",
] }
[dependencies.tokio]
version = "1"
features = ["rt", "io-std", "io-util", "macros", "net", "time"]
[features]
executable-deps = ["dep:clap", "tokio/signal", "tokio/rt-multi-thread"]
default = ["executable-deps"]
[dev-dependencies]
pretty_assertions = "1.4.0"
temp-dir = "0.1.13"
tracing-test = "0.2.4"
# Stripping symbols (not debuginfo) reduces binary size by ~1.5x.
# This is the default profile for `cargo install`:
# https://doc.rust-lang.org/cargo/reference/profiles.html#profile-selection.
# TODO: We may want to make [profile.release-size] the default
# once we're out of the fast iteration development phase.
[profile.release]
strip = true
opt-level = 3
# 2-3x slower to compile, but produces a ~1.2x smaller binary.
[profile.release-lto]
inherits = "release"
lto = true
codegen-units = 1
# Also quite slow to compile, but produces a ~1.6x smaller binary.
[profile.release-size]
inherits = "release"
lto = true
codegen-units = 1
opt-level = "s"