load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_library_group", "rust_test")
rust_library(
name = "golang_ipc_rs",
srcs = [
"src/bichannel.rs",
"src/client.rs",
"src/connection.rs",
"src/encryption.rs",
"src/handshake/client.rs",
"src/handshake/key_xchange.rs",
"src/handshake/mod.rs",
"src/handshake/server.rs",
"src/lib.rs",
"src/message.rs",
"src/mock_client.rs",
"src/server.rs",
],
edition = "2021",
visibility = ["//visibility:public"],
deps = [
":common-deps",
],
)
rust_binary(
name = "ipc",
srcs = [
"examples/main.rs",
],
edition = "2021",
visibility = ["//visibility:public"],
deps = [
":common-deps",
":golang_ipc_rs",
"@crate_index//:async-stdin",
"@crate_index//:clap",
"@crate_index//:tracing-subscriber",
],
)
rust_test(
name = "unit-tests",
size = "small",
crate = ":golang_ipc_rs",
data = [
":ipc",
],
edition = "2021",
visibility = ["//visibility:public"],
deps = [
":common-deps",
"@crate_index//:tokio-test",
],
)
rust_library_group(
name = "common-deps",
deps = [
"@crate_index//:aes-gcm",
"@crate_index//:anyhow",
"@crate_index//:bytes",
"@crate_index//:futures",
"@crate_index//:hex",
"@crate_index//:p384",
"@crate_index//:sha2",
"@crate_index//:tipsy",
"@crate_index//:tokio",
"@crate_index//:tracing",
],
)