XUtils

Ice

Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more. [GPLv2]


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:

  1. Define the contract between your client and your server with the [Slice][slice] language—Ice’s [IDL][idl].
  2. 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


Articles

  • coming soon...