Ice-E is available for immediate download.

What is Ice-E?

Ice-E ("Embedded Ice") is a compact communications engine designed specifically for use in environments where resources are scarce, such as Internet-enabled smart phones, personal digital assistants (PDAs), and embedded controllers.


Here are some of the compelling reasons to choose Ice-E for your next project:

  • Reduced Time to Market

    Considering the constraints imposed on embedded applications, it can often be tempting to build your own communications infrastructure. In some cases, such as when the underlying technologies are highly specialized, this may be your only choice. But if your target platforms are suitable for Ice-E, your project will save time and money using our highly-optimized communications engine, crafted by engineers with decades of experience in the field. Ice-E is a fast, reliable and efficient tool to help you deliver a better product sooner.

  • Ease of Use

    Ice-E provides a natural application programming interface (API) that makes developers instantly comfortable and productive. Designed for the "developer in the trenches," the API is easy to learn and use, leveraging the best practices and idioms of each target language.

  • Speed

    Since Ice-E originated as a subset of the Ice product, Ice-E has inherited a highly-efficient run time. The performance characteristics that have made Ice a market-leading distributed computing solution apply equally well to Ice-E. For applications with stringent performance requirements, Ice-E's support for thread priorities help you add predictability and avoid priority inversion issues.

  • Flexibility

    Ice-E offers a modular build system, enabling you to create a customized version that contains the features your application requires while minimizing the size of your executables. Furthermore, Ice-E is supplied in two run-time libraries: the full library supports client and server functionality, whereas the client-only library eliminates all server features for applications that do not require them. Statically-linked client and server executables can be as small as 216KB and 272KB in size, respectively.


Ice-E offers a wealth of features in a compact and efficient run time:

  • Modern C++ language mapping
  • Efficient resource utilization
  • Multiplexed connections for improved scalability
  • Bidirectional connections for NAT/firewall traversal
  • Asynchronous invocations with guaranteed non-blocking semantics
  • Support for thread priorities
  • Portable C++ APIs for threading and synchronization primitives

Please see our Ice and Ice-E feature comparison for more details.

Terms of Use | Privacy © 2014 ZeroC, Inc.