IceRPC
The RPC framework
for the QUIC era
IceRPC is a new open-source RPC framework that helps you build blazing fast networked applications with very little code.
Built for QUIC
A streamlined RPC framework for the QUIC multiplexed transport
Harness the power of QUIC with IceRPC's easy-to-use API.
Streaming
Thanks to QUIC, bidirectional streaming is a breeze. Long-lasting audio/video streams or data feeds can share a network connection with small RPCs without any slowdown.
TCP with Slic
Still too soon for QUIC? IceRPC's Slic adapter is the answer. Slic emulates QUIC over traditional duplex transports such as TCP.
QUIC
QUIC is a new connection-oriented transport protocol that powers the latest version of HTTP. It provides a wealth of features: multiplexing connections into independent streams, security, flow-control, connection migration, and more.
Learn about QUICSlice
Strongly-Typed Network Calls Made Easy
Slice is a serialization format for structured data that uses a simple and familiar syntax to define your API - think Protobuf but better.
Contract First
Design your service API in Slice, a powerful and intuitive Interface Definition Language. Then let the Slice compiler implement this API for you with IceRPC.
Binary Encoding
Enjoy lower bandwidth and CPU usage courtesy of Slice's compact and straightforward binary format.
module StarTrek
typealias Stardate = float64
enum Rank : uint8 { Captain, Engineer, Ensign, Doctor }
struct Officer {
id: int64
name: string
rank: Rank
}
struct StarlogEntry { date: Stardate, entry: string }
interface Starlog {
addEntry(entry: StarlogEntry)
getEntries(startAt: Stardate?) -> Sequence<StarlogEntry>
}
enum SystemError {
UnknownOfficer(id: int64)
SystemUnavailable
}
interface Starship {
engageWarpDrive(warpFactor: uint8)
getDetails() -> (name: string, registryCode: string)
getOfficer(id: int64) -> Result<Officer, SystemError>
startLongRangeScan(target: string) -> stream uint8
}

Protobuf
Full Protobuf Support
If you are already using Protobuf to exchange binary messages, IceRPC will fit right into your stack! The IceRPC + Protobuf integration implements Protobuf services with IceRPC.
Learn about ProtobufReady to get started?
Start building the next-gen app that leaves the competition behind!
Company
Ice
IceRPC
Help Center
Legal
Subscribe to our newsletter
Subscribe to the ZeroC newsletter to stay updated on new releases, announcements,
and blog posts.