Difference between revisions of "Thrift"

From air
Jump to navigation Jump to search
Line 14: Line 14:
 
Exemple de fichier .thrift :
 
Exemple de fichier .thrift :
   
namespace java exemple //pour générer du code java
+
namespace java exemple //pour générer du code java
namespace py exemple //pour générer du code python
+
namespace py exemple //pour générer du code python
   
service AditionService
+
service AditionService
{
+
{
 
i32 add(1:i32 x1, 2:i32 x2),
 
i32 add(1:i32 x1, 2:i32 x2),
}
+
}
   
  +
Ce simple fichier permet via la commande : thrift --gen <language> <Thrift filename> permet de générer du code <language> permettant une communication entre un server et un client qu'il faudrait maintenant instancier. (Sachant que le client pourrait être en python et le server en java.
Ce simple fichier permet via la commande
 
   
   
Line 29: Line 29:
   
 
https://en.wikipedia.org/wiki/Apache_Thrift
 
https://en.wikipedia.org/wiki/Apache_Thrift
  +
http://thrift-tutorial.readthedocs.org/en/latest/usage-example.html#multiplication-handler

Revision as of 13:48, 9 April 2016

https://thrift.apache.org/

Introduction

Thrift est un langage spécifique, dévloppé initialement par Facebook en C++, pour définir une interface de composant logiciel, ce qui permet une communication entre les composants qui peuvent ne pas être dans le même langage ni même sur la même machine.

ThriftArchitechture.png

Fonctionnement

Une fois thrift installé sur la machine on peut créer un fichier .thrift qui défini les services implémentés par le serveur qui seront appelés par le(s) client(s). Un fichier .thrift contient des données et des services. Ce fichier servira ensuite à générer un fichier dans un langage spécifié qui rendra accessible un certain nombre de services.

Exemple de fichier .thrift :

 namespace java exemple //pour générer du code java
 namespace py exemple //pour générer du code python
 service AditionService
 {
       i32 add(1:i32 x1, 2:i32 x2),
 }

Ce simple fichier permet via la commande : thrift --gen <language> <Thrift filename> permet de générer du code <language> permettant une communication entre un server et un client qu'il faudrait maintenant instancier. (Sachant que le client pourrait être en python et le server en java.


Liens

https://en.wikipedia.org/wiki/Apache_Thrift http://thrift-tutorial.readthedocs.org/en/latest/usage-example.html#multiplication-handler