blob: 51f3dbb89623b0f9d18601a3ea34da5fb65e2207 [file] [log] [blame] [view]
Jens Geyerbd52f1a2014-07-28 01:25:30 +02001Thrift Haxe Software Library
2
3License
4=======
5
6Licensed to the Apache Software Foundation (ASF) under one
7or more contributor license agreements. See the NOTICE file
8distributed with this work for additional information
9regarding copyright ownership. The ASF licenses this file
10to you under the Apache License, Version 2.0 (the
11"License"); you may not use this file except in compliance
12with the License. You may obtain a copy of the License at
13
14 http://www.apache.org/licenses/LICENSE-2.0
15
16Unless required by applicable law or agreed to in writing,
17software distributed under the License is distributed on an
18"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19KIND, either express or implied. See the License for the
20specific language governing permissions and limitations
21under the License.
22
23Using Thrift with Haxe
24========================
25
Jens Geyer662eea92015-02-01 20:20:34 +010026Thrift requires Haxe 3.1.3. Installers for Windows and OSX
27platforms are available at `http://haxe.org/download`.
Jens Geyerbd52f1a2014-07-28 01:25:30 +020028
Jens Geyer662eea92015-02-01 20:20:34 +010029For Linux platforms it is recommended not to download the
30binaries manually, instead use the Haxe installation shell
31script which can be found at `http://www.openfl.org/download`.
32
33Thrift Haxe bindings can be set up via the `haxelib` tool
34either from the official ASF repo, or via the github mirror.
Jens Geyerb029aa82014-11-15 23:54:16 +010035
36- To set up any **stable version**, choose the appropriate branch (e.g. `0.9.3`):
37
Jens Geyer662eea92015-02-01 20:20:34 +010038 - `haxelib git thrift https://git-wip-us.apache.org/repos/asf/thrift.git 0.9.3 lib/haxe`
39 - `haxelib git thrift https://github.com/apache/thrift.git 0.9.3 lib/haxe`
Jens Geyerb029aa82014-11-15 23:54:16 +010040
41- To set up the current **development version**, use the `master` branch:
42
Jens Geyer662eea92015-02-01 20:20:34 +010043 - `haxelib git thrift https://git-wip-us.apache.org/repos/asf/thrift.git master lib/haxe`
44 - `haxelib git thrift https://github.com/apache/thrift.git master lib/haxe`
Jens Geyerb029aa82014-11-15 23:54:16 +010045
46As usual, the installed library can be updated using `haxelib upgrade`
47or `haxelib update thrift`.
48
49In order to work with Thrift, you will need to install the Thrift compiler
50or build from source, depending on your operating system. Appropriate
51downloads and more information can be found at http://thrift.apache.org
52
Jens Geyerbd52f1a2014-07-28 01:25:30 +020053To get started, visit the /tutorial/haxe and /test/haxe dirs for examples.
Jens Geyerb029aa82014-11-15 23:54:16 +010054If you are using HIDE or the FlashDevelop IDE, you'll find appropriate
55project files in these folders.
Jens Geyerbd52f1a2014-07-28 01:25:30 +020056
57
58Current status
59========================
60- tested with Haxe C++ target
Jens Geyerfea00ac2014-10-01 02:22:48 +020061- transports: Socket, HTTP (client only), Stream
Jens Geyerb029aa82014-11-15 23:54:16 +010062- protocols: Binary, JSON, Multiplex
Jens Geyerbd52f1a2014-07-28 01:25:30 +020063- tutorial client and server available
64- cross-test client and server available
65
66
67Further developments
68========================
Jens Geyerbd52f1a2014-07-28 01:25:30 +020069- improve to work with C#, Java and JavaScript Haxe/OpenFL targets
70- improve to work with more (ideally all) Haxe/OpenFL targets
Jens Geyerfea00ac2014-10-01 02:22:48 +020071- add HTTP server, update tutorial and tests accordingly
Jens Geyerbd52f1a2014-07-28 01:25:30 +020072
73
74Dependencies
75========================
76
77Haxe Targets:
78Depending on the desired targets, you may have to install the appropriate HaxeLibs
79after installing Haxe itself. For example, if you plan to target C#, Java and C++,
80enter the following commands after installing Haxe:
81
Jens Geyerfea00ac2014-10-01 02:22:48 +020082 haxelib install hxcpp
83 haxelib install hxjava
84 haxelib install hxcs
Jens Geyerbd52f1a2014-07-28 01:25:30 +020085
86For other targets, please consult the Haxe documentation whether or not any additional
87target libraries need to be installed and how to achieve this.
88
89Haxe Libraries:
90- None (at the time of writing)
91
92
93Known restrictions
94========================
95
96Although designed with maximum portability in mind, for technical reasons some platforms
97may only support parts of the library, or not be compatible at all.
98
99Javascript:
100- tutorial fails to build because of unsupported Sys.args
101