Skip to content
Persistent Storage for Ice Objects
Branch: 3.7
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
ice @ 9ad8542

Build Status


The Freeze persistence service allows you to store Ice objects in Oracle Berkeley DB, with all the features you expect from a robust database - transactions, hot backups, indexing, and more.

In C++, Freeze and Berkeley DB consist of a library that you link with your C++ application. In Java, Freeze is a JAR file that you include in your Java application. Together, Freeze and Berkeley DB give you a fully embedded solution: the databases are regular files on a local file system, there is no database server to setup, and there is no need for ongoing database administration.

Freeze lets you choose between two persistence models: evictors and maps. With Freeze evictors, Freeze persists the state of your Ice objects automatically; these Ice objects just need to define their persistent state in Slice classes. The alternative is to store key-value pairs in Freeze maps, where key and value are both Slice types.


FreezeScript is a XML-based scripting language that allows you to easily inspect and transform the contents of a Freeze database. FreezeScript's transformdb is particularly useful for upgrades; with just a few commands, you can transform a database created with a set of Slice definitions to another database that relies on a newer version of these definitions.


Copyright and License

Copyright © ZeroC, Inc. All rights reserved.

The default license for Freeze is GPLv2, a popular open-source license with strong copyleft conditions.

If you wish to license Freeze under other terms and conditions, you can purchase a Commercial License from ZeroC. A commercial license for Freeze includes a commercial license for the Oracle Berkeley DB Transactional Datastore.


You can’t perform that action at this time.