It's actually the first sentence on https://thrift.apache.org
"The Apache Thrift software framework, for scalable cross-language
services development, combines a software stack with a code generation
engine to build services that work efficiently and seamlessly between
C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa,
JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages."
This means that you can write a client in any of these languages and
have it communicate with a server using any of these languages.
Manjeet Singh wrote:
I have read that tutorial but cross platform things not mentioned their
On 24 Jan 2017 05:10, "Josh Elser"<[email protected]> wrote:
Would strongly suggest you read the Apache Thrift documentation.
Manjeet Singh wrote:
Thanks Josh for writing
I have DAL written in java we have requirement to give common platform to
other team (c++ and c#) these two teams also want to access same DAL for
this I want to use thrift.
I tried tutorials on Net and I am able to connect from both side java
(Client and server) but I don't know how to connect with C++, also for
this
I did't genrate any code viea thrift.
I simple start thrift which is coming with HDP distribution
below is the java code
public class ThriftClient {
static CharsetDecoder decoder = null;
public static Hbase.Client client=null;
public static void main(String args[]){
String host=<IP address>
int port= 9090;
try {
TTransport transport = new TSocket(host, port);
TProtocol protocol = new TBinaryProtocol(transport, true, true);
client = new Hbase.Client(protocol);
transport.open();
test();
} catch (TTransportException e) {
e.printStackTrace();
}}
public static void test(){
System.out.println("scanning tables...");
try {
for (ByteBuffer name : client.getTableNames()) {
System.out.println(" found: " + utf8(name.array()));
}
} catch (IOError e) {
e.printStackTrace();
} catch (TException e) {
e.printStackTrace();
}
}
private static String utf8(byte[] buf) {
try {
decoder = Charset.forName("UTF-8").newDecoder();
return decoder.decode(ByteBuffer.wrap(buf)).toString();
} catch (CharacterCodingException e) {
return "[INVALID UTF-8]";
}
}
private static byte[] bytes(String s) {
try {
return s.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
}
}
Please guide me how can I genrate code for c++ (client) and server which
will responsible to call my DAL
PSI am using Java 8
Hbase 1.1.2
Thanks
Manjeet
On Mon, Jan 23, 2017 at 10:26 PM, Josh Elser<[email protected]> wrote:
Manjeet Singh wrote:
I come to know about thrift but as per my understanding on thrift client
and server should be on same language thrift only give direct access to
other language (correct me if I am wrong)
You are incorrect. One of the features of Thrift is that the client and
server can be implemented in different languages. A Java client can talk
to
a Ruby server, a C++ client can talk to a Java server, etc.
if above statement is wrong so is it possible as showing in below image
Inline image 2
Reminder: images are stripped by the mailing list.
second How can i generate c++ code from thrift ( I am using HDP which
already having hbase thrift so do I need to download separate thrift)
You need to have the correct version of Thrift installed to generate the
code for other languages (than Java which is bundled) from the IDL.
See http://thrift.apache.org/ for more details on how to generate the
bindings in other languages.
e.g. `thrift --gen<language> <Thrift filename>`