summaryrefslogtreecommitdiffstats
path: root/src/jaegertracing/thrift/lib/js/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/jaegertracing/thrift/lib/js/README.md')
-rw-r--r--src/jaegertracing/thrift/lib/js/README.md145
1 files changed, 145 insertions, 0 deletions
diff --git a/src/jaegertracing/thrift/lib/js/README.md b/src/jaegertracing/thrift/lib/js/README.md
new file mode 100644
index 000000000..5c7a1c23b
--- /dev/null
+++ b/src/jaegertracing/thrift/lib/js/README.md
@@ -0,0 +1,145 @@
+Thrift Javascript Library
+=========================
+This browser based Apache Thrift implementation supports
+RPC clients using the JSON protocol over Http[s] with XHR
+and WebSocket.
+
+License
+-------
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+
+Grunt Build
+------------
+This is the base directory for the Apache Thrift JavaScript
+library. This directory contains a Gruntfile.js and a
+package.json. Many of the build and test tools used here
+require a recent version of Node.js to be installed. To
+install the support files for the Grunt build tool execute
+the command:
+
+ npm install
+
+This reads the package.json and pulls in the appropriate
+sources from the internet. To build the JavaScript branch
+of Apache Thrift execute the command:
+
+ npx grunt
+
+This runs the grunt build tool (from within `./node_modules/.bin/`),
+linting all of the source files, setting up and running the
+tests, concatenating and minifying the main libraries and
+generating the html documentation.
+
+Tree
+----
+The following directories are present (some only after the
+grunt build):
+ /src - The JavaScript Apache Thrift source
+ /doc - HTML documentation
+ /dist - Distribution files (thrift.js and thrift.min.js)
+ /test - Various tests, this is a good place to look for
+ example code
+ /node_modules - Build support files installed by npm
+
+
+Example JavaScript Client and Server
+------------------------------------
+The listing below demonstrates a simple browser based JavaScript
+Thrift client and Node.js JavaScript server for the hello_svc
+service.
+
+### hello.thrift - Service IDL
+### build with: $ thrift -gen js -gen js:node hello.thrift
+ service hello_svc {
+ string get_message(1: string name)
+ }
+
+### hello.html - Browser Client
+ <!DOCTYPE html>
+ <html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Hello Thrift</title>
+ </head>
+ <body>
+ Name: <input type="text" id="name_in">
+ <input type="button" id="get_msg" value="Get Message" >
+ <div id="output"></div>
+
+ <script src="thrift.js"></script>
+ <script src="gen-js/hello_svc.js"></script>
+ <script>
+ (function() {
+ var transport = new Thrift.TXHRTransport("/hello");
+ var protocol = new Thrift.TJSONProtocol(transport);
+ var client = new hello_svcClient(protocol);
+ var nameElement = document.getElementById("name_in");
+ var outputElement = document.getElementById("output");
+ document.getElementById("get_msg")
+ .addEventListener("click", function(){
+ client.get_message(nameElement.value, function(result) {
+ outputElement.innerHTML = result;
+ });
+ });
+ })();
+ </script>
+ </body>
+ </html>
+
+### hello.js - Node Server
+ var thrift = require('thrift');
+ var hello_svc = require('./gen-nodejs/hello_svc.js');
+
+ var hello_handler = {
+ get_message: function(name, result) {
+ var msg = "Hello " + name + "!";
+ result(null, msg);
+ }
+ }
+
+ var hello_svc_opt = {
+ transport: thrift.TBufferedTransport,
+ protocol: thrift.TJSONProtocol,
+ processor: hello_svc,
+ handler: hello_handler
+ };
+
+ var server_opt = {
+ staticFilePath: ".",
+ services: {
+ "/hello": hello_svc_opt
+ }
+ }
+
+ var server = Thrift.createWebServer(server_opt);
+ var port = 9099;
+ server.listen(port);
+ console.log("Http/Thrift Server running on port: " + port);
+
+
+TypeScript
+------------------------------------
+TypeScript definition files can also be generated by running:
+
+ thrift --gen js:ts file.thrift
+
+# Breaking Changes
+
+## 0.13.0
+
+1. 64-bit integer constants are now generatd using node-int64 e.g.: var x = new Int64("7fffffffffffffff");