-
Notifications
You must be signed in to change notification settings - Fork 400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Apple M1 support #535
Comments
It's just having problem recognizing version "25.1.x". As a workaround, you can put an outdated protoc in PATH. |
@BusyJay Successfully built. Thank you. |
@BusyJay I managed to compile and run the example with a single node, however with 5 nodes it fails with: Compiling hello-raft v0.1.0 (/Users/bayram/Projects/Rust/hello-raft)
error[E0599]: no method named `merge_from_bytes` found for struct `raft::prelude::ConfChange` in the current scope
--> src/main.rs:291:24
|
291 | cc.merge_from_bytes(&entry.data).unwrap();
| ^^^^^^^^^^^^^^^^ method not found in `ConfChange`
|
::: /Users/bayram/.cargo/registry/src/index.crates.io-6f17d22bba15001f/protobuf-2.28.0/src/message.rs:94:8
|
94 | fn merge_from_bytes(&mut self, bytes: &[u8]) -> ProtobufResult<()> {
| ---------------- the method is available for `raft::prelude::ConfChange` here
|
= help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
|
7 + use protobuf::message::Message;
|
warning: unused import: `protobuf::Message`
--> src/main.rs:14:5
|
14 | use protobuf::Message as PbMessage;
| ^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
For more information about this error, try `rustc --explain E0599`.
warning: `hello-raft` (bin "hello-raft") generated 1 warning
error: could not compile `hello-raft` (bin "hello-raft") due to previous error; 1 warning emitted This is my [package]
name = "hello-raft"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
bytes = "1.5.0"
protobuf = "3.3.0"
raft = "0.7.0"
raft-proto = "0.7.0"
regex = "1.10.2"
slog = "2.7.0"
slog-async = "2.8.0"
slog-envlogger = "2.2.0"
slog-stdlog = "4.1.1"
slog-term = "2.9.0" Any idea how to fix it? |
Currently, raft-rs uses protobuf 2.x. |
@BusyJay Thank you. Worked. |
@BusyJay I want to play around with the crate. Do you have sort of community or a place where I could ask questions if I have ones regarding usage of the crate or internals of the crate? |
Both issues and github discussions are OK. |
Hi! I'm facing the same problem, I tried downgrading to version 3 but still it happens, is there any other solution? |
This issue includes several problems, what's the exact error did you meet? Maybe we should create a new issue to discuss the problem more specifically. |
@BusyJay
|
I think I see the issue, it's because of the --version command that is returning |
Now it's working, for anyone else facing this problem I had to: Install protobuf 3.20: brew install [email protected] Then copy protoc to the bin directory: sudo cp /opt/homebrew/Cellar/protobuf@3/3.20.3/bin/protoc /usr/local/bin/protoc And verify the version of protoc protoc --version The major must be 3, otherwise it won't work on mac m1/m2/m3/m4 |
My MacOS is Apple M1 chipset, with Sonoma 14.2
I installed
protobuf
usingbrew install protobuf
and tried to compile to compile an emptyhello, world!
project with raft crate included. The compilation failed withI guess it is related to these lines inside
protobuf_impl.rs
Or does it support M1 chipset and am I missing something?
The text was updated successfully, but these errors were encountered: