Ice Logo

Ice

Complete solution for distributed systems

A proven framework for network application development.


The Ice Framework

Provides everything you need to build networked applications

RPC core icon

RPC Core

Ice is, at its core, an RPC framework that helps you build networked services with a high-level, easy-to-use API.

Powerful IDL

interface HealthWatcher {
void update(
string service,
ServiceStatus status);
}
interface Health {
ServiceStatus check(string service);
void watch(
string service,
HealthWatcher* watcher);
}

Stellar Services

Draw on Ice's collection of services for pub/sub, server deployment, and more.

IceStorm

IceGrid

Glacier2

DataStorm

Everywhere icon

Everywhere

Ice is available on all popular platforms, with mappings for 10 programming languages.

Apple
Linux
Windows
PHP
MATLAB
Java
C++
TypeScript
C#
Python
Ruby
Swift
Powering mission critical
applications for over 5 years

RPC

Professional Grade
RPC Framework

Build your networked applications with the best tool for the job.

Efficient communication icon

Efficient Communication

Reduce your CPU and bandwidth usage with Ice's efficient binary protocol.

Uniform API icon

Uniform API

Learn Ice in one programming language and your new skills immediately transfer to nine more languages, saving time in the development process.

Pick your transport icon

Pick your transport

Choose from a variety of transports, including TCP, UDP, SSL, WebSocket and Bluetooth.


Slice

Strongly-Typed Network Calls Made Easy

Specify your network API in Slice, then let the Slice compiler generate the corresponding code in the language of your choice.

Familiar syntax icon

Familiar Syntax

The simple syntax with common constructs such as interface and class makes Slice easy to understand.

Binary encoding icon

Binary Encoding

Enjoy lower bandwidth and CPU usage courtesy of Slice's compact and straightforward binary format.

StarWars.ice
ice
module StarWars
{
enum JediRank { Youngling, Padawan, Knight, Master }
class Jedi
{
string name;
JediRank rank;
optional(1) string padawanName;
}
sequence<Jedi> JediSeq;
interface JediCouncil
{
JediSeq getCouncilMembers();
void grantRank(string jediName, JediRank newRank);
}
}


Ready to get started?

It's time to jump in and start networking your software!

Licensing icon

Licensing

Can you license Ice under GPLv2 or do you need a commercial license?

Licensing details
Support icon

Support

Get support and training directly from the developers who created Ice.

Support options