Rust is better for concurrency in my experience, since the compiler is able to infer what code is concurrency-safe (via the Sync/Send auto-traits). Go only handles message-based, share-nothing concurrency well. Rust works well for lock-based as well as message-based concurrency. Thanks to generics (which Go lacks), there are quite a few great concurrent data structures not included in the standard library.
2.You require interoperability with C.
Rust has better interoperability with C since it doesn't necessarily require cloning on every call to the C ABI. Since Rust knows about ownership semantics it won't try to garbage collect memory once memory is passed over to C.
Rust is better for concurrency in my experience, since the compiler is able to infer what code is concurrency-safe (via the Sync/Send auto-traits). Go only handles message-based, share-nothing concurrency well. Rust works well for lock-based as well as message-based concurrency. Thanks to generics (which Go lacks), there are quite a few great concurrent data structures not included in the standard library.
Rust has better interoperability with C since it doesn't necessarily require cloning on every call to the C ABI. Since Rust knows about ownership semantics it won't try to garbage collect memory once memory is passed over to C.
There is also a profiling and testing framework baked into Rust.
We thank you for your inputs!