Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Mirror of Apache Etch (incubating)

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.settings
binding-c
binding-csharp
binding-java
binding-python
binding-xml
build-support
compiler
examples
installers
interoptester
plugins
scripts
tests
util
.classpath
.project
BUILD.txt
CSharp.sln
ChangeLog.txt
DISCLAIMER.txt
KEYS
LICENSE.txt
LICENSE_THIRD_PARTY.txt
NOTICE.txt
NOTICE_THIRD_PARTY.txt
README.txt
RELEASE_NOTES.txt
build.dependencies
build.xml
etch.properties

README.txt

Welcome to the 1.1.0-incubating release of Apache Etch.

= What is 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 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.

= Online Help =

The jumping off point for Etch information and help is here:

  http://incubator.apache.org/etch

= Binary Distribution =

The top-level structure of the install image is:

  ChangeLog.txt
  DISCLAIMER.txt
  LICENSE.txt
  LICENSE_THIRD_PARTY.txt
  NOTICE.txt
  NOTICE_THIRD_PARTY.txt
  README.txt
  RELEASE_NOTES.txt
  bin/
  examples/
  lib/
  binding-c/
  binding-csharp/
  binding-java/
  uninst.exe (for windows use only)

Please take a moment to review the RELEASE_NOTES.txt, ChangeLog.txt and
LICENSE.txt files.

The Windows installer (apache-etch-1.1.0-incubating-setup.exe) has created a 
user environment variable (ETCH_HOME) which points to the Etch installation
directory. If you installed Etch using either

  apache-etch-1.1.0-incubating-windows-x86-bin.zip

or

  apache-etch-1.1.0-incubating-linux-x86-bin.tgz

you will want to create this environment variable yourself:

windows:
  set ETCH_HOME=C:\Program Files\Apache Software Foundation\apache-etch-1.1.0

*nix:
  export ETCH_HOME=/path/to/apache-etch-1.1.0

The bin directory has also been put on your path by the Windows installer. If
you are using the archives, you will need to do this yourself:

windows:
  PATH %PATH%;%ETCH_HOME%\bin

*nix:
  export PATH="$PATH:$ETCH_HOME/bin"

The bin/ directory contains a Windows bat script and a unix shell script.

You will also need to have a java runtime installed (later versions of sun jre
or jdk 1.5 or any version of 1.6 or later). A JAVA_HOME environment variable
should point to the installation directory of the java runtime. If you are going
to compile java source you will need the jdk.

After the installer has been run and the environment setup, at a windows
command line or shell prompt, you should be able to run the etch compiler and
see some basic output:

windows:
  C:\>etch -v
  Etch version is Apache Etch 1.1.0-incubating (some build info)

unix:
  bash-3.2$ etch -v
  Etch version is Apache Etch 1.1.0-incubating (some build info)

The lib directory contains the various jar files for the compiler and the Apache Velocity dependency jar:

  apache-etch-java-compiler-1.1.0-incubating.jar
  apache-etch-java-compiler-1.1.0-incubating-src.jar
  ...

The top level folders binding-c, binding-java and binding-csharp contain the language specific 
runtime libraries:

= Binding for Java =

binding-java is organized as follows:

  apache-etch-java-runtime-1.1.0-incubating-src.zip
  lib/
    apache-etch-java-runtime-1.1.0-incubating.jar

The generated java source from the etch compiler needs apache-etch-java-runtime-1.1.0-incubating.jar.
There is source code to go with it in apache-etch-java-runtime-1.1.0-incubating-src.zip.

= Binding for C# =

binding-csharp is organized as follows:

  apache-etch-csharp-runtime-1.1.0-incubating-src.zip  
  lib/
    ApacheEtchCsharpIncubating.dll
    ApacheEtchCsharpIncubating.pdb

The generated c# source from the etch compiler needs ApacheEtchCsharpIncubating.dll
The C# (.NET 2.0 and later) ApacheEtchCsharpIncubating.dll should be added to any C# projects.
There is source code to go with it in apache-etch-csharp-runtime-1.1.0-incubating-src.zip.

= Binding for C =

binding-c is organized as follows:

  bin/
    apr-1-config		(on linux)
    apriconv			(on linux)
  include/
    [etch-*].h			(on win32)
    apr-1			(on linux)
  lib/
    etch.lib			(on win32)
    etch.pdb			(on win32)
    libetch.a			(on linux)
  extern/
    apr/
      bin/
        libapr-1.dll		(on win32)
        libapr-1.pdb		(on win32)
        libapriconv-1.dll	(on win32)
        libapriconv-1.pdb	(on win32)
      iconv/
        [iconv*]-stuff
      include/
        [apr-*].h
      lib/
        libapr-1.lib		(on win32)
	libapriconv-1.lib	(on win32)
	libapr-1.so		(on linux)
	libapriconv-1.so	(on linux)
  apache-etch-c-runtime-1.1.0-incubating-src.zip

Generated C source depends on the dlls/so/a/h files mentioned above. The best choice to 
build generated code using the c binding is cmake. You can use the examples/helloworld 
example as a reference. The C binding has external dependencies to the Apache Portable 
Runtime (APR). We ship dll/so/h for the apr in the extern folder. There is source code 
to go with it in apache-etch-c-runtime-1.1.0-incubating-src.zip

= Ant Plugin =

There is an ant plugin which you can use with ant 1.7.0 or later to invoke the
compiler as a task. It is documented on the wiki referenced above. You can also see examples 
of its usage in the build.xml files in the examples folder

= Maven =

If you are using maven, then you might want to install the Etch artifacts into
your local maven repository. There is a Windows bat script to do this in the
maven directory:

  etch-maven-install.bat

You need to have maven on your path when you run this script. The file
etch-java-runtime-1.1.0.jar will be installed into your local repository with
group "etch.etch", artifact id "etch-java-runtime", and version "1.1.0". You
may then reference Etch from your maven projects.

= Python and XML Bindings =

The source distribution includes code to support XML and python bindings, but
these bindings are not yet complete, and there is no build products associated
with those. They are mainly there to 1) capture the code contribution from
cisco systems, and 2) inspire any fence sitters, ah, helpers to jump in and
contribute.

= Examples =

Examples have been provided in the examples/ subdirectory. Start with the HelloWorld
example, it contains code for all three language bindings. There is a readme
file in each example's directory which explains how to build and run it.

= Tests =

Unit tests can be had by checking out the source code from the subversion
repository and performing a complete build:

  http://svn.apache.org/repos/asf/incubator/etch/releases/release-1.1.0-incubating

= Help =

For help, see the wiki or send email to etch-user@incubator.apache.org. See
RELEASE_NOTES.txt for specific information for this release.
Something went wrong with that request. Please try again.