| [workspace] | |
| members = [ | |
| "build_scripts", | |
| "connections/ukey2/ukey2", | |
| "connections/ukey2/ukey2_connections", | |
| "connections/ukey2/ukey2_connections/fuzz", | |
| "connections/ukey2/ukey2_c_ffi", | |
| "connections/ukey2/ukey2_jni", | |
| "connections/ukey2/ukey2_proto", | |
| "connections/ukey2/ukey2_shell", | |
| "connections/nc_wire_proto", | |
| "connections/nc_multiplex_proto", | |
| "crypto/crypto_provider", | |
| "crypto/crypto_provider_rustcrypto", | |
| "crypto/crypto_provider_stubs", | |
| "crypto/crypto_provider_test", | |
| "crypto/crypto_provider_test/fuzz", | |
| "crypto/crypto_provider_default", | |
| "presence/array_view", | |
| "presence/ldt", | |
| "presence/ldt/fuzz", | |
| "presence/ldt_np_adv", | |
| "presence/ldt_np_adv/fuzz", | |
| "presence/ldt_np_adv_ffi", | |
| "presence/ldt_np_jni", | |
| "presence/ldt_tbc", | |
| "presence/np_adv", | |
| "presence/np_adv/fuzz", | |
| "presence/np_adv_dynamic", | |
| "presence/np_c_ffi", | |
| "presence/np_ffi_core", | |
| "presence/np_ffi_core/fuzz", | |
| "presence/np_hkdf", | |
| "presence/np_java_ffi", | |
| "presence/rand_ext", | |
| "presence/sink", | |
| "presence/test_helper", | |
| "presence/test_vector_hkdf", | |
| "presence/xts_aes", | |
| "presence/xts_aes/fuzz", | |
| "unified_protocol/up_adv", | |
| ] | |
| default-members = ["build_scripts"] | |
| # TODO: remove boringssl once we figure out a better plan for integrating the build system | |
| exclude = ["crypto/crypto_provider_boringssl"] | |
| resolver = "2" | |
| [workspace.lints.rust] | |
| missing_docs = "deny" | |
| trivial_casts = "deny" | |
| trivial_numeric_casts = "deny" | |
| unsafe_code = "deny" | |
| unsafe_op_in_unsafe_fn = "deny" | |
| unused_extern_crates = "deny" | |
| unused_import_braces = "deny" | |
| unused_results = "deny" | |
| unexpected_cfgs = { level = "warn", check-cfg = [ | |
| 'cfg(fuzzing)', | |
| 'cfg(rust_analyzer)', | |
| 'cfg(blaze)', | |
| ] } | |
| [workspace.lints.clippy] | |
| expect_used = "deny" | |
| indexing_slicing = "deny" | |
| panic = "deny" | |
| unwrap_used = "deny" | |
| [workspace.dependencies] | |
| # local crates | |
| connections_adv = { path = "connections/connections_adv/connections_adv" } | |
| mediums_adv = { path = "connections/connections_adv/mediums_adv" } | |
| array_ref = { path = "presence/array_ref" } | |
| array_view = { path = "presence/array_view" } | |
| ble = { path = "medium/ble" } | |
| common = { path = "common" } | |
| credential_proto = { path = "identity/credential_proto" } | |
| identity_common = { path = "identity/common" } | |
| identity_manager = { path = "identity/identity_manager" } | |
| identity_provider = { path = "identity/identity_provider" } | |
| keystore = { path = "identity/keystore" } | |
| crypto_provider = { path = "crypto/crypto_provider", default-features = false } | |
| crypto_provider_default = { path = "crypto/crypto_provider_default", default-features = false } | |
| crypto_provider_boringssl = { path = "crypto/crypto_provider_boringssl" } | |
| crypto_provider_rustcrypto = { path = "crypto/crypto_provider_rustcrypto" } | |
| crypto_provider_stubs = { path = "crypto/crypto_provider_stubs" } | |
| crypto_provider_test = { path = "crypto/crypto_provider_test" } | |
| device_info = { path = "device_info" } | |
| event_loop = { path = "presence/event_loop" } | |
| np_discovery = { path = "presence/engine/presence_rust" } | |
| nc = { path = "connections/nc" } | |
| nc_wire_proto = { path = "connections/nc_wire_proto" } | |
| nc_multiplex_proto = {path = "connections/nc_multiplex_proto"} | |
| rand_ext = { path = "presence/rand_ext" } | |
| test_helper = { path = "presence/test_helper" } | |
| ukey2_connections = { path = "connections/ukey2/ukey2_connections" } | |
| ukey2_rs = { path = "connections/ukey2/ukey2" } | |
| ukey2_proto = { path = "connections/ukey2/ukey2_proto" } | |
| np_hkdf = { path = "presence/np_hkdf" } | |
| xts_aes = { path = "presence/xts_aes" } | |
| ldt = { path = "presence/ldt" } | |
| ldt_np_adv = { path = "presence/ldt_np_adv" } | |
| ldt_tbc = { path = "presence/ldt_tbc" } | |
| np_adv = { path = "presence/np_adv" } | |
| up_adv = { path = "unified_protocol/up_adv" } | |
| np_adv_dynamic = { path = "presence/np_adv_dynamic" } | |
| np_ffi_core = { path = "presence/np_ffi_core", default-features = false } | |
| np_ffi_core_fuzz = { path = "presence/np_ffi_core/fuzz" } | |
| np_java_ffi = { path = "presence/np_java_ffi" } | |
| sink = { path = "presence/sink" } | |
| test_vector_hkdf = { path = "presence/test_vector_hkdf" } | |
| # from utils workspace | |
| handle_map = { path = "../common/handle_map" } | |
| lock_adapter = { path = "../common/lock_adapter" } | |
| pourover = { path = "../common/pourover" } | |
| pourover_macro = { path = "../common/pourover_macro" } | |
| storage = { path = "../common/storage", default-features = false } | |
| #phenotype flags | |
| flagging = { path = "../common/flagging" } | |
| ph_flag_source = { path = "../common/1p_internal/ph_flag_source", default-features = false } | |
| ph_client = { path = "../common/1p_internal/ph_client" } | |
| # analytics | |
| analytics_logger = { path = "../common/1p_internal/clearcut/analytics_logger" } | |
| clearcut_logger = { path = "../common/1p_internal/clearcut/internal/clearcut_logger" } | |
| # from crates.io | |
| rand = { version = "0.8.5", default-features = false } | |
| rand_core = { version = "0.6.4", features = ["getrandom"] } | |
| rand_pcg = "0.3.1" | |
| sha2 = { version = "0.10.8", default-features = false } | |
| aes = "0.8.3" | |
| arbitrary = { version = "1.3.2", features = ["derive"] } | |
| cbc = { version = "0.1.2", features = ["block-padding"] } | |
| ctr = "0.9.2" | |
| hkdf = "0.12.3" | |
| hmac = "0.12.1" | |
| nom = { version = "7.1.3", default-features = false } | |
| ed25519-dalek = { version = "2.1.0", default-features = false } | |
| ed25519 = "2.2.3" | |
| aes-gcm = "0.10.3" | |
| hex = "0.4.3" | |
| serde = { version = "1.0.193" } | |
| serde_json = { version = "1.0.108", features = [ | |
| "alloc", | |
| ], default-features = false } | |
| base64 = "0.22.1" | |
| x25519-dalek = { version = "2.0.0", default-features = false } | |
| subtle = { version = "2.5.0", default-features = false } | |
| rand_chacha = { version = "0.3.1", default-features = false } | |
| p256 = { version = "0.13.2", default-features = false } | |
| sec1 = "0.7.3" | |
| protobuf = "=3.7.2" | |
| protobuf-codegen = "=3.7.2" | |
| reqwest = { version = "0.11.22", default-features = false, features = [ | |
| "blocking", | |
| "rustls-tls", | |
| ] } | |
| jni = "0.21.1" | |
| lock_api = "0.4.11" | |
| spin = { version = "0.9.8", features = ["once", "lock_api", "rwlock"] } | |
| anyhow = "1.0.75" | |
| log = "0.4.20" | |
| env_logger = "0.11.7" | |
| gag = "1.0.0" | |
| oslog = "0.2.0" | |
| criterion = { version = "0.5.1", features = ["html_reports"] } | |
| clap = { version = "4.5.13", features = ["derive"] } | |
| lazy_static = { version = "1.4.0", features = ["spin_no_std"] } | |
| hex-literal = "0.4.1" | |
| cfg-if = "1.0.0" | |
| blake2 = "0.10.6" | |
| hashbrown = "0.15" | |
| hdrhistogram = "7.5.4" | |
| regex = "1.10.2" | |
| crossbeam = "0.8.4" | |
| tokio = { version = "1.47.1", features = [ | |
| "macros", | |
| "rt", | |
| "sync", | |
| "test-util", | |
| "time", | |
| ] } | |
| tokio-stream = { version = "0.1.17" } | |
| tokio-util = "0.7.16" | |
| xts-mode = "0.5.1" | |
| rstest = { version = "0.18.2", default-features = false } | |
| serial_test = "3.2.0" | |
| rstest_reuse = "0.6.0" | |
| wycheproof = "0.5.1" | |
| chrono = { version = "0.4.31", default-features = false, features = ["clock"] } | |
| tempfile = "3.8.1" | |
| thiserror = { version = "2.0.4", default-features = false } | |
| tinyvec = { version = "1.6.0", features = ["rustc_1_55"] } | |
| mlua = "0.9.2" | |
| strum = { version = "0.27.1", default-features = false } | |
| strum_macros = { version = "0.27.1", default-features = false } | |
| owo-colors = "3.5.0" | |
| rhai = { version = "1.20.0", features = ["sync"] } | |
| cbindgen = "0.27.0" | |
| syn = { version = "2.0", features = ["full"] } | |
| proc-macro2 = "1.0" | |
| quote = "1.0" | |
| byteorder = "1.5.0" | |
| itertools = { version = "0.13.0", default-features = false } | |
| quickcheck = "1.0.3" | |
| proptest = "1.4.0" | |
| proptest-arbitrary-interop = { git = "https://github.com/brson/proptest-arbitrary-interop.git", branch = "incorrect-format" } | |
| libfuzzer-sys = "0.4.7" | |
| derive_fuzztest = "0.1.4" | |
| derive_fuzztest_macro = "0.1.4" | |
| async-trait = "0.1.89" | |
| directories = "5.0.1" | |
| uuid = { version = "1.11.0", features = ["v4"] } | |
| mockall = "0.13.1" | |
| uniffi = "0.29.0" | |
| async-stream = "0.3.6" | |
| prost = "0.14.1" | |
| ascii85 = "0.2.1" | |
| futures = "0.3.31" | |
| windows = { version = "0.61.1", features = [ | |
| "Devices_Bluetooth", | |
| "Devices_Bluetooth_Advertisement", | |
| "Devices_Radios", | |
| "Foundation", | |
| "Foundation_Collections", | |
| "Storage_Streams", | |
| "Win32_UI_WindowsAndMessaging", | |
| "Win32_Graphics_Gdi", | |
| "Win32_Foundation", | |
| "Win32_System_LibraryLoader", | |
| "Win32_System_RemoteDesktop", | |
| ] } | |
| windows-core = "0.61.0" | |
| googletest = "0.14.2" | |
| dispatch2 = { version = "0.3.0" } | |
| objc2 = { version = "0.6.1" } | |
| objc2-foundation = { version = "0.3.1", features = [ | |
| "NSArray", | |
| "NSData", | |
| "NSDictionary", | |
| "NSEnumerator", | |
| "NSError", | |
| "NSObject", | |
| "NSString", | |
| "NSUUID", | |
| "NSValue", | |
| ] } | |
| objc2-core-bluetooth = { version = "0.3.1" } | |
| android_logger = "0.15.1" | |
| num_enum = "0.7.5" | |
| [workspace.package] | |
| version = "0.1.0" | |
| edition = "2021" | |
| publish = false | |
| license = "Apache-2.0" | |
| [profile.test] | |
| # speed up test execution | |
| opt-level = 3 | |
| [profile.bench] | |
| # Since xts, ldt, etc are in separate crates, use LTO to allow cross-crate inlining. | |
| # fat vs thin: thin compiles a lot faster, and doesn't seem any slower. | |
| lto = "thin" | |
| # build profile optimized for size | |
| [profile.release-min-size] | |
| inherits = "release" | |
| panic = "abort" | |
| codegen-units = 1 | |
| lto = true | |
| # z optimizes for size | |
| opt-level = "z" | |
| strip = true |