Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more.
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
certs Update copyright year to 2018 Feb 14, 2018
config Fixed #310, can't set MCPP_HOME on Amazon Linux/SLES Dec 10, 2018
cpp Fixed for Java metrics test failure #217 Dec 13, 2018
csharp Fixed for Java metrics test failure #217 Dec 13, 2018
doxygen Add version to doxygen config #61 Nov 20, 2018
java-compat Fixed for Java metrics test failure #217 Dec 13, 2018
java Fixed for Java metrics test failure #217 Dec 13, 2018
js Fix js/Ice/adapterDeactivation, Close #316 Dec 13, 2018
man/man1 Add deprecation note to slice2html man page Jun 11, 2018
matlab Fix missing index increment introduce in previous commit Nov 21, 2018
objective-c Update version to 3.7.2 Nov 14, 2018
php Build multiple PHP packages from a single source Dec 13, 2018
python Fix computation of python-config. Fixes #303 Nov 21, 2018
ruby Added missing exceptions to setExceptionMembers in Ruby. Nov 20, 2018
scripts Build multiple PHP packages from a single source Dec 13, 2018
slice TypeScript improvements Dec 5, 2018
.gitattributes Use LF in js/package.json and js/package-lock.json Nov 6, 2017
.gitignore Update .gitingore Jul 23, 2018
.mailmap Remove unnecessary entries from .mailmap May 11, 2015
.travis.yml Remove workaround for Travis CI build vanishing Jul 24, 2018
CHANGELOG-3.3.md ICE-7483 - Rename OS X to macOS Mar 28, 2017
CHANGELOG-3.4.md Remove excessive empty lines Jun 7, 2017
CHANGELOG-3.5.md ICE-7483 - Rename OS X to macOS Mar 28, 2017
CHANGELOG-3.6.md Update CHANGELOG-3.6.md from 3.6 branch Dec 7, 2017
CHANGELOG-3.7.md More TOC fixes Dec 4, 2018
CONTRIBUTING.md Update Twitter account in CONTRIBUTING.md Jan 7, 2016
ICE_LICENSE Update copyright year to 2018 Feb 14, 2018
LICENSE Remove unnecessary tabs May 3, 2017
Makefile Update copyright year to 2018 Feb 14, 2018
README.md Update version to 3.7.2 Nov 14, 2018
allTests.py Update copyright year to 2018 Feb 14, 2018
ice.proj PHP Build updates Jul 24, 2018
tox.ini Add Python PEP8 configuration Mar 2, 2018

README.md

Build Status Join the chat at https://gitter.im/zeroc-ice/ice

Ice - Comprehensive RPC Framework

Ice helps you network your software with minimal effort. By taking care of all interactions with low-level network programming interfaces, Ice allows you to focus your efforts on your application logic. When using Ice, there is no need to worry about details such as opening network connections, serializing and deserializing data for network transmission, or retrying failed connection attempts (to name just a few of dozens of such low-level details).

You can download Ice releases from ZeroC's website. Use this GitHub repository to build from source; see branches for more information.

Languages

Ice supports the following programming languages:

  • C#
  • C++
  • Java
  • JavaScript
  • MATLAB
  • Objective-C
  • PHP
  • Python
  • Ruby

Platforms

Ice runs on a wide range of platforms:

  • Android
  • iOS
  • Linux
  • Linux on embedded devices
  • Node.js
  • macOS
  • Web Browser
  • Windows
  • Universal Windows

Features

  • Efficient, high-performance binary protocol
  • Supports a wide range of programming languages and platforms
  • Easy to use and type-safe API, with your own interfaces and types defined in a programming language neutral IDL, Slice
  • Supports secure, encrypted communications by taking advantage of your platform's native SSL/TLS stack
  • Familiar object-oriented programming model, with the ability to transmit proxies (references to remote objects) to remote applications
  • Supports synchronous and asynchronous calls, for both client-side invocations and server-side dispatches
  • Automatic discovery of remote objects through UDP multicast
  • Comes with a number of optional services:
    • IceGrid - a DNS-like service for Ice objects, with support for server deployment, replication, monitoring, load-balancing and more
    • IceStorm - a lightweight topic-based pub-sub service
    • Glacier2 - a sysadmin-friendly solution for routing Ice communications through firewalls
    • IcePatch2 - an efficient software distribution and patching service

Branches

  • master Primary development branch (unstable, frequently updated)

  • 3.7 Ice 3.7.x plus various patches (stable, frequently updated)

  • 3.6 Ice 3.6.x plus various patches (stable)

  • 3.5 Ice 3.5.1 plus various patches (stable)

  • 3.4 Ice 3.4.2 plus various patches (stable)

Copyright and License

Ice is a single-copyright project: all the source code in this ice repository is Copyright © ZeroC, Inc., with very few exceptions.

As copyright owner, ZeroC can license Ice under different license terms, and offers the following licenses for Ice:

  • GPL v2, a popular open-source license with strong copyleft conditions (the default license)
  • Commercial or closed-source licenses

If you license Ice under GPL v2, there is no license fee or signed license agreement: you just need to comply with the GPL v2 terms and conditions. See ICE_LICENSE and LICENSE for further information.

If you purchase a commercial or closed-source license for Ice, you must comply with the terms and conditions listed in the associated license agreement; the GPL v2 terms and conditions do not apply.

The Ice software itself remains the same: the only difference between an open-source Ice and a commercial Ice are the license terms.

Documentation