[package]
name = "teamtype"
description = "Enables real-time co-editing of local text files."
version = "0.9.1"
authors = ["Moritz Neeb <nt4u@kpvn.de>", "blinry <mail@blinry.org>"]
license = "AGPL-3.0-or-later"
readme = "../README.md"
documentation = "https://teamtype.github.io"
repository = "https://github.com/teamtype/teamtype"
keywords = [
"collaboration",
"local-first",
"synchronization",
"crdt",
"peer-to-peer",
]
categories = ["command-line-utilities", "text-editors"]
edition = "2021"
rust-version = "1.81.0"
default-run = "teamtype"
[lib]
name = "teamtype"
[[bin]]
name = "teamtype"
test = false
bench = false
doc = false
required-features = ["executable-deps"]
[features]
default = ["executable-deps"]
executable-deps = ["dep:clap", "tokio/signal", "tokio/rt-multi-thread"]
[lints.rust]
unsafe_code = "forbid"
unused_qualifications = "warn"
[lints.clippy]
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
allow_attributes = "warn"
map_with_unused_argument_over_ranges = "warn"
too_long_first_doc_paragraph = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_sign_loss = "allow"
cognitive_complexity = "allow"
missing_const_for_fn = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
must_use_candidate = "allow"
should_panic_without_expect = "allow"
too_many_lines = "allow"
[build-dependencies]
clap = { version = "4", features = ["derive", "env"] }
clap_complete = "4"
clap_mangen = "0.2"
[dependencies]
anyhow = "1.0.81"
async-trait = "0.1.88"
automerge = "1.0.0-beta.3"
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"
microxdg = "0.2.0"
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"
tempfile = "3.24.0"
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",
] }
url = "2.5.7"
[dependencies.tokio]
version = "1"
features = ["rt", "io-std", "io-util", "macros", "net", "time"]
[dev-dependencies]
pretty_assertions = "1.4.0"
tracing-test = "0.2.4"
[profile.release]
strip = true
opt-level = 3
[profile.release-lto]
inherits = "release"
lto = true
codegen-units = 1
[profile.release-size]
inherits = "release"
lto = true
codegen-units = 1
opt-level = "s"