[package] name = "rjrssync" version = "0.2.7" description = "Fast rsync-like tool for incrementally copying files. Runs natively on both Windows and Linux and uses network for communication." edition = "2021" repository = "https://github.com/Robert-Hughes/rjrssync" license = "MIT" keywords = [ "filesystem", "binary", "tool", "cross-platform", "sync" ] # crates.io only allows 5 keywords, here are some others that might be good too: [ "filesystem", "cli", "windows", "linux", "binary", "tool", "cross-platform", "sync", "mirror", "copying" ] categories = [ "command-line-utilities", "development-tools", "filesystem" ] autotests = false # Otherwise our shared test utility code will be considered as test programs [build-dependencies] json = "0.12.4" bincode = "1.3.3" serde = { version = "1.0.152", features = ["derive"] } serde_bytes = "0.11.8" flate2 = "1.0.25" [dependencies] clap = { version = "4.1.1", features = ["derive"] } clap_complete = "4.1.0" env_logger = "0.10.0" log= "0.4.17" tempdir= "0.3.7" serde = { version = "1.0.152", features = ["derive"] } serde_bytes = "0.11.8" bincode = "1.3.3" filetime = "0.2.19" regex = "1.7.1" aes-gcm = "0.10.1" aead = {version = "0.5.1"} yaml-rust = "0.4.5" lazy_static = "1.4.0" indicatif = "0.17.2" dialoguer = "0.10.2" console = "0.15.4" winapi = { version = "0.3.9", features=["psapi"] } crossbeam = "0.8.2" num_cpus = "1.15.0" flate2 = "1.0.25" # Profiling-only dependencies json = { version = "0.12.4", optional = true } # Dependencies needed for tests/benchmarks only [dev-dependencies] walkdir= "2.3.2" tempfile = "3.3.0" map-macro = "0.2.5" network-interface = "0.1.6" fs_extra = "1.2.0" ascii_table = "4.0.2" rand = "0.8.5" json = { version = "0.12.4"} [features] profiling=["dep:json"] # If enabled, build a binary which contains "lite" binaries for # other platforms, to enable easy deployment. If disabled, build a "lite" binary that doesn't # contain any embedded binaries. Note that a lite binary can be subsequently "augmented" # to become a "big binary", which is what happens when we create new big binaries for deploy, # but we need a special build to create the "first" big binary, which is the progenitor. # A progenitor is always big, but big is not necessarily a progenitor. progenitor=[] # Individual features for each embedded binary, so that by enabling just one of these we can build # a progenitor with just one embedded lite binary, so speed up the build for development. embed-x64-windows=["progenitor"] embed-x64-linux=["progenitor"] embed-aarch64-linux=["progenitor"] # Convenience feature for all the embedded binaries. embed-all=["embed-x64-windows", "embed-x64-linux", "embed-aarch64-linux"] # Settings for release profile to reduce code size. # This is especially relevant to keep the big binary size down (as it contains many binaries). [profile.release] strip = true lto = true panic = "abort" # Note this is a profiling _profile_ and is orthogonal to the profiling _feature_, and is for # including symbols in a release build so that an external profiling tool can be used. [profile.profiling] inherits = "release" debug = 1 [[bin]] name = "rjrssync" bench = false # Prevent from being run as a benchmark when running "cargo bench" # Note that these other executables are not in a [[bin]] section, so they don't get # installed (etc.) by default - only the main rjrssync executable should get installed, # as these are just for testing/development. [[test]] name = "usage_tests" [[bench]] name = "benchmarks" harness = false [[example]] name = "piper" bench = false # Prevent from being run as a benchmark when running "cargo bench" [[example]] name = "tcper" bench = false # Prevent from being run as a benchmark when running "cargo bench" [[example]] name = "walker" bench = false # Prevent from being run as a benchmark when running "cargo bench"