3 Star 0 Fork 1

mirrors_zeroc-ice / ice

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
GPL-2.0

Join the chat at https://gitter.im/zeroc-ice/ice GPLv2 Static Badge

The Ice framework

Ice helps you build networked applications 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. You don't need to worry about details such as opening network connections, encoding and decoding data for network transmission, or retrying failed connection attempts (to name just a few of dozens of such low-level details).

Downloads | Examples | Documentation

RPCs with Ice

Remote procedure calls (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 language—Ice's 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();
}
# Compile the Slice contract with the Slice compiler for C++ (slice2cpp)
slice2cpp Hello.ice
// C++ client

// Call operation sayHello on a remote object that implements
// interface Hello using the generated proxy class (HelloPrx).
helloPrx->sayHello();
// C++ server

// Implements the Hello interface by deriving from the generated
// Hello abstract base class.
class Printer final : public Hello
{
public:

    string sayHello(const Ice::Current&) final
    {
        cout << "Hello World!" << endl;
    }
};

You can use any supported programming language for your client and server. For example, a Python client could call a C++ server; neither side knows the programming language used by the other side.

Complete solution with a uniform API

The Ice framework provides everything you need to build networked applications:

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

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:

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

If you license Ice under GPLv2, there is no license fee or signed license agreement: you just need to comply with the GPLv2 terms and conditions. ZeroC also grants a few exceptions to the GPLv2 terms and conditions.

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 GPLv2 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.

Copyright (c) ZeroC, Inc. All rights reserved. This copy of Ice is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. Ice is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License version 2 along with this program; if not, see http://www.gnu.org/licenses. Linking Ice statically or dynamically with other software (such as a library, module or application) is making a combined work based on Ice. Thus, the terms and conditions of the GNU General Public License version 2 cover this combined work. If such software can only be used together with Ice, then not only the combined work but the software itself is a work derived from Ice and as such shall be licensed under the terms of the GNU General Public License version 2. This includes the situation where Ice is only being used through an abstraction layer. As a special exception to the above, ZeroC grants to the copyright holders and contributors of the Mumble project (http://www.mumble.info) the permission to license the Ice-based software they contribute to Mumble under the terms of the BSD license. This exception does not extend to the parts of Ice used by Mumble, or to any other derived work: as a whole, any work based on Ice shall be licensed under the terms and conditions of the GNU General Public License version 2. You may also combine Ice with any software not derived from Ice, provided the license of such software is compatible with the GNU General Public License version 2. In addition, as a special exception, ZeroC grants you permission to combine Ice with: - the OpenSSL library, or with a modified version of the OpenSSL library that uses the same license as OpenSSL - any library not derived from Ice and licensed under the terms of the Apache License, version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html) If you modify this copy of Ice, you may extend any of the exceptions provided above to your version of Ice, but you are not obligated to do so.

简介

暂无描述 展开 收起
GPL-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/mirrors_zeroc-ice/ice.git
git@gitee.com:mirrors_zeroc-ice/ice.git
mirrors_zeroc-ice
ice
ice
main

搜索帮助