[workspace] resolver = "2" members = ["printf"] [workspace.package] rust-version = "1.70" edition = "2021" [profile.release] overflow-checks = true lto = true [package] name = "fish" version = "4.0.0-alpha1" edition.workspace = true rust-version.workspace = true default-run = "fish" # see doc_src/license.rst for details # don't forget to update COPYING and debian/copyright too license = "GPL-2.0-only AND LGPL-2.0-or-later AND MIT AND PSF-2.0" repository = "https://github.com/fish-shell/fish-shell" homepage = "https://fishshell.com" readme = "README.rst" [dependencies] pcre2 = { git = "https://github.com/fish-shell/rust-pcre2", tag = "0.2.9-utf32", default-features = false, features = [ "utf32", ] } bitflags = "2.5.0" errno = "0.3.0" lazy_static = "1.4.0" libc = "0.2.155" # lru pulls in hashbrown by default, which uses a faster (though less DoS resistant) hashing algo. # disabling default features uses the stdlib instead, but it doubles the time to rewrite the history # files as of 22 April 2024. lru = "0.12.3" nix = { version = "0.29.0", default-features = false, features = [ "event", "inotify", "resource", "fs", ] } num-traits = "0.2.19" once_cell = "1.19.0" fish-printf = { path = "./printf", features = ["widestring"] } # Don't use the "getrandom" feature as it requires "getentropy" which was not # available on macOS < 10.12. We can enable "getrandom" when we raise the # minimum supported version to 10.12. rand = { version = "0.8.5", default-features = false, features = ["small_rng"] } widestring = "1.1.0" # We need 0.9.0 specifically for some crash fixes. terminfo = "0.9.0" rust-embed = { version = "8.2.0", optional = true } [target.'cfg(not(target_has_atomic = "64"))'.dependencies] portable-atomic = { version = "1", default-features = false, features = [ "fallback", ] } [dev-dependencies] serial_test = { version = "1.0.0", default-features = false } [build-dependencies] cc = "1.0.94" rsconf = "0.2.2" [lib] crate-type = ["rlib"] path = "src/lib.rs" [[bin]] name = "fish" path = "src/bin/fish.rs" [[bin]] name = "fish_indent" path = "src/bin/fish_indent.rs" [[bin]] name = "fish_key_reader" path = "src/bin/fish_key_reader.rs" [features] default = ["installable"] benchmark = [] installable = ["dep:rust-embed"] # The following features are auto-detected by the build-script and should not be enabled manually. asan = [] tsan = [] [lints] rust.non_camel_case_types = "allow" rust.non_upper_case_globals = "allow" rust.unknown_lints = "allow" rust.unstable_name_collisions = "allow" clippy.manual_range_contains = "allow" clippy.needless_return = "allow" clippy.needless_lifetimes = "allow"