سرویس‌ها و پیام‌ها در فایل‌های .proto تعریف می‌شوند و از روی آن‌ها کد client و server برای زبان‌های مختلف تولید می‌شود، برای همین برای ارتباط Go↔Rust مناسب است. هم call ساده و هم streaming یک‌طرفه و دوطرفه را پشتیبانی می‌کند.