Nice! Only blocker was that Prost requires `protoc...
# development
h
Nice! Only blocker was that Prost requires
protoc
being installed in the environment because there's no precompiled binary.
Copy code
failures:
    local_tests::garbage_collect_and_compact

test result: FAILED. 110 passed; 1 failed; 1 ignored; 0 measured; 0 filtered out
w
oh, yikes. TIL.
maybe there is a prost
feature
that we could enable there…? cc @fast-nail-55400
h
No it's purely because of macOS Silicon not having a prebuilt binary. I opened an issue with Prost to tweak their docs for instructions while we wait for protobuf to start releasing dedicated binaries
w
ah, got it.
sorry
h
(To clarify, normally Prost uses it's vendored protoc)
f
good to know. It’d be concerning if I’ve just been lucky that Prost has been working all this time
w
yea, sorry… i thought that that was what was up
f
according to the source, we can get PROTOC env var to point at the binary to use
which would provide a work-around in the meantime for ARM
i.e., build a Apple silicon protoc or use the Intel-compiled version
although we may need to upgrade Prost, they seem to already use the Rosetta version :
Copy code
/// Returns the path to the bundled `protoc`, if it is available for the host platform.
#[cfg(not(target_env = "musl"))]
fn bundled_protoc() -> Option<PathBuf> {
    let protoc_bin_name = match (env::consts::OS, env::consts::ARCH) {
        ("linux", "x86") => "protoc-linux-x86_32",
        ("linux", "x86_64") => "protoc-linux-x86_64",
        ("linux", "aarch64") => "protoc-linux-aarch_64",
        ("macos", "x86_64") => "protoc-osx-x86_64",
        ("macos", "aarch64") => "protoc-osx-x86_64", // will be translated to aarch64 by Rosetta
        ("windows", _) => "protoc-win32.exe",
        _ => return None,
    };

    Some(bundle_path().join(protoc_bin_name))
}
("macos", "aarch64") => "protoc-osx-x86_64", // will be translated to aarch64 by Rosetta
although upgrading Prost is complicated by the switch to Bytes 1.0 crate
I’d wait for the Tonic upgrade for Tokio 1.0
those upgrades will also use Bytes 1.0
h