GNU General Public License v2.0

项目介绍

zeroc-ice/ice 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 GNU General Public License v2.0 许可证,目前获得 2.2k 个 Star、600 次 Fork。

仓库全名
zeroc-ice/ice
开源许可证
GNU General Public License v2.0
Star 数
2.2k
Fork 数
600
未关闭 Issue
268

README 摘要

The Ice framework The Internet Communications Engine (Ice) is a complete RPC framework that helps you build networked applications with minimal effort. Ice allows you to focus your efforts on your application logic, and it takes care of all interactions with low-level network programming interfaces. With Ice, there is no need to worry about details such as opening network connections, serializing and deserializing…

完整内容见 GitHub 原始 README 或本页 。

常见问题

ice 用什么语言开发?

主要使用 C++ 编写,采用 GNU General Public License v2.0 许可证,目前有 2.2k 个 Star。

ice 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v2.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 ice 的源码?

可以直接克隆仓库:git clone https://github.com/zeroc-ice/ice.git,默认分支为 main;安装与运行步骤见仓库 README。

ice 最近还在维护吗?

仓库最近一次更新为 1 天前,当前有 268 个未关闭 Issue;Star 数为 2.2k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

All-in-one solution for creating networked applications with RPC, pub/sub, server deployment, and more.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
3568
价值分
1503
活跃状态
活跃

语言占比

Batchfile
C
C#
C++
CMake
CSS
Dockerfile
HTML
Java
JavaScript
Kotlin
Lex
MATLAB
Makefile
Objective-C
Objective-C++
PHP
Python
Ruby
Shell
Slice
Swift
TypeScript
Yacc

Release

README

CI GPLv2 Static Badge

The Ice framework

The Internet Communications Engine (Ice) is a complete RPC framework that helps you build networked applications with minimal effort. Ice allows you to focus your efforts on your application logic, and it takes care of all interactions with low-level network programming interfaces. With 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.

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.

/// Represents a simple greeter.
interface Greeter
{
    /// Creates a personalized greeting.
    /// @param name The name of the person to greet.
    /// @return The greeting.
    string greet(string name);
}
# Compile the Slice contract with the Slice compiler for C++ (slice2cpp)
slice2cpp Greeter.ice
// C++ client

// Call operation greet on a remote object that implements
// interface Greeter using the generated proxy class (GreeterPrx).
GreeterPrx greeter{communicator, "greeter:tcp -h localhost -p 4061"};
string greeting = greeter.greet("alice");
// C++ server

// Implements the Greeter interface by deriving from the generated
// Greeter abstract base class.
class Chatbot : public Greeter
{
public:
    std::string greet(std::string name, const Ice::Current&) override
    {
        std::ostringstream os;
        os << "Hello, " << name << "!";
        return os.str();
    }
};

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:

Language Support

C++ | C# | Java | JavaScript/TypeScript | MATLAB | PHP | Python | Ruby | Swift

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.

评论

暂无评论