gitui/Cargo.toml

100 lines
2.6 KiB
TOML
Raw Normal View History

2020-03-15 20:42:15 +03:00
[package]
2020-03-18 15:29:03 +03:00
name = "gitui"
2023-09-09 11:59:21 +03:00
version = "0.24.3"
2022-02-22 01:33:03 +03:00
authors = ["extrawurst <mail@rusticorn.com>"]
2020-03-18 13:40:54 +03:00
description = "blazing fast terminal-ui for git"
edition = "2021"
2024-02-19 13:27:34 +03:00
rust-version = "1.70"
2021-11-28 15:38:44 +03:00
exclude = [".github/*", ".vscode/*", "assets/*"]
2020-03-27 04:05:57 +03:00
homepage = "https://github.com/extrawurst/gitui"
repository = "https://github.com/extrawurst/gitui"
2020-03-24 22:59:51 +03:00
readme = "README.md"
2020-03-24 23:22:56 +03:00
license = "MIT"
2020-03-24 23:20:06 +03:00
categories = ["command-line-utilities"]
2023-08-27 16:30:15 +03:00
keywords = ["git", "gui", "cli", "terminal", "ui"]
2020-03-15 20:42:15 +03:00
[dependencies]
2021-11-28 15:38:44 +03:00
anyhow = "1.0"
2023-08-27 16:30:15 +03:00
asyncgit = { path = "./asyncgit", version = "0.24", default-features = false }
2021-11-28 15:38:44 +03:00
backtrace = "0.3"
2024-02-12 13:53:22 +03:00
bitflags = "2.4"
2022-08-06 18:00:19 +03:00
bugreport = "0.5"
2024-02-12 13:53:22 +03:00
bwrap = { version = "1.3", features = ["use_std"] }
bytesize = { version = "1.3", default-features = false }
2023-08-27 16:30:15 +03:00
chrono = { version = "0.4", default-features = false, features = ["clock"] }
clap = { version = "4.5", features = ["env", "cargo"] }
2021-11-28 15:38:44 +03:00
crossbeam-channel = "0.5"
2024-02-12 13:53:22 +03:00
crossterm = { version = "0.27", features = ["serde"] }
dirs = "5.0"
easy-cast = "0.5"
2022-01-30 21:28:45 +03:00
filetreelist = { path = "./filetreelist", version = "0.5" }
2021-11-28 15:38:44 +03:00
fuzzy-matcher = "0.3"
2021-11-28 16:41:17 +03:00
gh-emoji = { version = "1.0", optional = true }
2024-02-12 13:53:22 +03:00
indexmap = "2"
itertools = "0.12"
2020-03-20 20:28:42 +03:00
log = "0.4"
2024-02-12 13:53:22 +03:00
notify = "6.1"
notify-debouncer-mini = "0.4"
2022-09-02 10:17:34 +03:00
once_cell = "1"
2024-02-12 13:53:22 +03:00
ratatui = { version = "0.23", default-features = false, features = [
'crossterm',
'serde',
] }
rayon-core = "1.12"
ron = "0.8"
scopeguard = "1.2"
2021-11-28 15:38:44 +03:00
scopetime = { path = "./scopetime", version = "0.1" }
2020-05-22 13:44:17 +03:00
serde = "1.0"
shellexpand = "3.1"
simplelog = { version = "0.12", default-features = false }
2024-02-12 13:53:22 +03:00
struct-patch = "0.4"
syntect = { version = "5.2", default-features = false, features = [
"parsing",
"default-syntaxes",
"default-themes",
"html",
] }
2024-02-18 12:24:18 +03:00
tui-textarea = "0.4.0"
unicode-segmentation = "1.11"
2021-11-28 15:38:44 +03:00
unicode-truncate = "0.2"
unicode-width = "0.1"
2024-02-12 14:00:24 +03:00
which = "6.0"
[dev-dependencies]
pretty_assertions = "1.4"
2024-02-12 13:53:22 +03:00
tempfile = "3"
2020-06-23 13:24:57 +03:00
[badges]
maintenance = { status = "actively-developed" }
[features]
2023-08-27 16:30:15 +03:00
default = ["ghemoji", "regex-fancy", "trace-libgit", "vendor-openssl"]
ghemoji = ["gh-emoji"]
Allow to build without vendored openssl, allow to build syntect with regex-onig (#1323) * allow to build syntect with regex-onig Syntect supports two regex engines: * regex-fancy: a pure-rust regex engine based on the fancy-regex * regex-onig: a regex engine based on the oniguruma C library From the syntect's Readme: > The advantage of fancy-regex is that it does not require the onig > crate which requires building and linking the Oniguruma C library. > Many users experience difficulty building the onig crate, especially > on Windows and Webassembly. > As far as our tests can tell this new engine is just as correct, but > it hasn't been tested as extensively in production. It also currently > seems to be about half the speed of the default Oniguruma engine Oniguruma engine is faster than the fancy-regex engine and the syntect project chose the latter as the default only to avoid difficulties with linking Oniguruma (C library) on some platforms. This is not an issue for linux distributions - linking against system-provided shared library is preferred to bundled libraries. Moreover, gitui built with Oniguruma instead of fancy-regex is by 25% smaller. This commit adds two cargo features, regex-fancy and regex-onig, to enable respective syntect features. The former is enabled by default. * allow to build without vendored openssl Vendoring (bundling) openssl library is very bad for security and Linux distributions forbid it. The aim of this change is to simplify packaging gitui in linux distros. Co-authored-by: extrawurst <776816+extrawurst@users.noreply.github.com>
2022-09-18 16:02:01 +03:00
# regex-* features are mutually exclusive.
regex-fancy = ["syntect/regex-fancy"]
regex-onig = ["syntect/regex-onig"]
2023-08-27 16:30:15 +03:00
timing = ["scopetime/enabled"]
trace-libgit = ["asyncgit/trace-libgit"]
Allow to build without vendored openssl, allow to build syntect with regex-onig (#1323) * allow to build syntect with regex-onig Syntect supports two regex engines: * regex-fancy: a pure-rust regex engine based on the fancy-regex * regex-onig: a regex engine based on the oniguruma C library From the syntect's Readme: > The advantage of fancy-regex is that it does not require the onig > crate which requires building and linking the Oniguruma C library. > Many users experience difficulty building the onig crate, especially > on Windows and Webassembly. > As far as our tests can tell this new engine is just as correct, but > it hasn't been tested as extensively in production. It also currently > seems to be about half the speed of the default Oniguruma engine Oniguruma engine is faster than the fancy-regex engine and the syntect project chose the latter as the default only to avoid difficulties with linking Oniguruma (C library) on some platforms. This is not an issue for linux distributions - linking against system-provided shared library is preferred to bundled libraries. Moreover, gitui built with Oniguruma instead of fancy-regex is by 25% smaller. This commit adds two cargo features, regex-fancy and regex-onig, to enable respective syntect features. The former is enabled by default. * allow to build without vendored openssl Vendoring (bundling) openssl library is very bad for security and Linux distributions forbid it. The aim of this change is to simplify packaging gitui in linux distros. Co-authored-by: extrawurst <776816+extrawurst@users.noreply.github.com>
2022-09-18 16:02:01 +03:00
vendor-openssl = ["asyncgit/vendor-openssl"]
2020-03-24 20:02:58 +03:00
[workspace]
2024-02-12 13:53:22 +03:00
members = [
"asyncgit",
"filetreelist",
"git2-hooks",
"git2-testing",
"scopetime",
]
2020-04-08 01:44:13 +03:00
[profile.release]
lto = true
2024-02-12 13:53:22 +03:00
opt-level = 'z' # Optimize for size.
codegen-units = 1
2024-01-24 16:28:16 +03:00
strip = "debuginfo"
2024-02-12 13:53:22 +03:00
# make debug build as fast as release
# usage of utf8 encoding inside tui
# makes their debug profile slow
2023-04-22 09:05:48 +03:00
[profile.dev.package."ratatui"]
2022-11-19 19:39:11 +03:00
opt-level = 3