Welcome to Apache Etch
Etch is a cross-platform, language- and transport-independent framework for building and consuming network services. The Etch toolset includes a network service description language, a compiler, and binding libraries for a variety of programming languages. Etch is also transport-independent, allowing for a variety of different transports to be used based on need and circumstance. The goal of Etch is to make it simple to define small, focused services that can be easily accessed, combined, and deployed in a similar manner. With Etch, service development and consumption becomes no more difficult than library development and consumption.
Apache Etch 是跨平台,语言和传输方法独立的框架,用来构建和消耗网络服务。Etch 工具集包括一个网络服务描述语言,一个编译器,各种语言绑定库。Etch 同时也是传输方式独立,允许根据需求使用不同的传输方式。Etch 的目标是简单的去定义小的,集中的服务,容易被访问,结合和部署。
Etch was started because we wanted to have a way to write a concise, formal description of the message exchange between a client and a server, with that message exchange supporting a hefty set of requirements:
1)support one-way and two-way, real-time communication
2)high performance and scalability
3)support clients and servers written in different languages
4)support clients/servers running in a wide range of contexts (such as thin web client, embedded device, PC application, or server)
5)support anyone adding new language bindings and new transports
6)be fast and small, while still being flexible enough to satisfy requirements
7)finally, it must be easy to use for developers both implementing and/or consuming the service.
Etch为了提供一个简洁、正式的描述客户端和服务端信息交换,所以提供了以下强大的功能:
1)支持单向和双向的实时通信
2)具有高性能和高扩展性
3)支持客户和服务器端使用不同的语言编写
4)支持客户/服务器模式运行的环境(如瘦Web客户端、嵌入式设备、PC应用、服务器应用)
5)支持添加新语言和新的传输方式
6)性能要快而轻量,还必须具有足够的灵活性以满足不同的需求
7)方便开发者访问和构建各种服务
The Apache Etch project is permanently in progress. The latest stable version can be downloaded here. The language bindings are currently in different states:
Java - stable
C# - stable
C - stable
C++ - beta
Google Go - alpha
Javascript - alpha
Python - alpha