golang-ipc-rs 0.1.0

Inter-process communication library for Window, Mac and Linux. (Imptlemented in Rust)
Documentation
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",
    ],
)