RPCs with Ice
Remote procedure calls ([RPCs][rpcs]) are at the heart of the Ice framework.
You create RPCs with an easy 2-step process:
- Define the contract between your client and your server with the [Slice][slice] language—Ice’s [IDL][idl].
- Run the Slice compiler on these Slice definitions to generate stubs in the programming language(s) of your choice.
For example:
// The contract specified using Slice.
interface Hello
{
// The caller says "hello".
void sayHello();
}
”`shell
Complete solution with a uniform API
The Ice framework provides everything you need to build networked applications:
- RPCs with a compact binary [protocol][protocol] over a variety of network transports (TCP, UDP, WebSocket, Bluetooth…)
- Secure communications ([IceSSL][icessl])
- Configuration ([Ice Properties][properties])
- Logging ([Ice Logger][logger])
- Instrumentation and metrics ([IceMX][icemx])
- Pub-sub ([IceStorm][icestorm], [DataStorm][datastorm])
- Server deployment, replication and monitoring ([IceGrid][icegrid])
- Application gateway ([Glacier2][glacier2])
The Ice API is defined almost entirely using Slice; as a result, it is essentially the same in all programming languages.
Building Ice from source
C++ | C# | Java | JavaScript/TypeScript | MATLAB | PHP | Python | Ruby | Swift