thrift-generator

thrift 文件生成工具
授权协议 Apache
开发语言 Java
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 国产
投 递 者 马正初
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

thrift-generator 是通过 Java 的接口生成 thrift 文件的工具。

例子:

public interface ICommonUserService {

    public User login(int id, String name);

    public User getUserById(long id);

    public boolean saveUser(User user);

    public List getUserIds(long id); 

    public Map getUserByIds(List ids);

    public Map> getUsersByName(List names);

    public Map> getGroupUsers(List names, List userList, List lns, long ll);

    public List testCase1(Map num1, List num2, List num3, long num4, String num5);
}
public class ThriftFileBuilderTest {

    private ThriftFileBuilder fileBuilder = new ThriftFileBuilder();

    @Test
    public void toOutputstream() throws Exception {
        this.fileBuilder.buildToOutputStream(ICommonUserService.class, System.out);
    }

}

执行代码:

mvn test -Dtest=com.sohu.thrift.generator.builder.ThriftFileBuilderTest

之后控制台输出如下:

namespace java com.sohu.thrift.generator.test.thrift

    enum Status {
            NORMAL = 0,
            BLOCKED = 1
    }

    struct Account {
            1:i32 id,
            2:string name
    }
    struct User {
            1:i32 id,
            2:string name,
            3:bool sex,
            4:Status status,
            5:list ids,
            6:Account account
    }

    service ICommonUserService {
            User login(1:i32 arg0,2:string arg1),
            map> getUsersByName(1:list arg0),
            bool saveUser(1:User arg0),
            map getUserByIds(1:list arg0),
            list getUserIds(1:i64 arg0),
            map> getGroupUsers(1:list arg0,2:list arg1,3:list arg2,4:i64 arg3),
            User getUserById(1:i64 arg0),
            list testCase1(1:map arg0,2:list arg1,3:list arg2,4:i64 arg3,5:string arg4)
    }
  • swift2thrift-generator-cli是thrift/swift提供的一个IDL文件命令行生成工具,它可以根据一个java服务接口类(interface,class)生成对应的IDL文件。 对于基于java做thrift框架的开发项目来说,这可是个神器,如果你的服务端是java开发的,就不需要手工写IDL文件(反正打死我也是不会手写的,太多了),使用这个命令行工具,可以一秒钟生成ID

  • 总结一下2017年的时候使用的技术 1 java中的使用 1.1 生成thrift文件 thrift-generator下载一下源码,自己编译一下。 pom.xml <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId>

  • 目录 1、Thrift注解开发介绍 2、注解Demo 1、服务接口 2、各个类 3、枚举 3、注解和IDL规范 4、编码规范 ​​​​​​​ 1、Thrift注解开发介绍 Java服务开发流程上,取消IDL。 注解方式和IDL方式一样,不支持泛型。 使用注解开发方式时,应避免IDL和注解混用。 2、注解Demo 1、服务接口 @ThriftService public interface Test

  • 软件介绍 thrift-generator 是通过 Java 的接口生成 thrift 文件的工具。 例子: public interface ICommonUserService { public User login(int id, String name); public User getUserById(long id); public boolean saveUser(User user

  • 要学习Thrift,它的官网上有资料介绍以及实例,可以到官网:http://thrift.apache.org/上查看。 在官网下载thrift的资源包,安装编译生成相应语言下的jar包,具体在windows下或者ubuntu下的安装参见: Thrift 学习笔记2——Windows环境下Thrift的安装、编译以及测试 Thrift 学习笔记1——Ubuntu环境下Thrift的安装、编译以及测

  • git clone https://github.com/apache/thrift.git //官网readme.md 安装 安装bison flex包 https://blog.csdn.net/Tosonw/article/details/102640385 openssl/opensslv.h: No such file or directory sudo apt-get install

  • 个人博客原文:Thrift 简单例子 摘要:本文简单的举了个例子,怎么用Thrift去实现一个RPC调用。 编写IDL接口 HelloService.thrift namespace java com.thrift.demo.service service HelloService { i32 sayInt(1:i32 param) string sayString(1:str

  •     main函数中调用了两个非常重要的函数,parse()和generate(),parse()解析thrift文件,生产语法树,即全局变量g_program。generate()通过这棵语法树,生产具体的语言代码。具体看看这两个函数。thrift的词法解析和语法解析用了flex和bison。 void parse(t_program* program, t_program* parent_p

  • 最近使用thrift,遇到的问题在这里说一下.使用的版本是0.10.0 1.thrift不稳定,在客户端发消息,会概率性的抛出异常,然后thrift服务就down掉了,只能一直监听着thrift服务,在它down掉时重启. 2.thirift有内存泄漏的问题,最开始没有调整jvm内存,出现oom,但是以为是内存设置的太低,便调整jvm参数. 过了几天发现服务器的内存一直增长.排查问题可能出现在th

  • 1. Thrift介绍 Thrift是一个跨语言的远程服务调用框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。 Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa,

 相关资料
  • 我的公司目前正在研究Thrift和ActiveMQ的集成。我们希望建立一个独立于语言的服务层,该服务层运行在单个http服务器上,每个thrift服务都能够通过ActiveMQ与其他thrift服务通信。到目前为止,我还没有找到任何其他人试图实施这一点。我很好奇其他人会如何实现这一点,以及是否有这样做的文档。 当前原型使用一个简单的python服务器来托管各种备用服务。在每个服务调用(即更新设置)

  • 使用 Hexo 生成静态文件快速而且简单。 $ hexo generate 监视文件变动 Hexo 能够监视文件变动并立即重新生成静态文件,在生成时会比对文件的 SHA1 checksum,只有变动的文件才会写入。 $ hexo generate --watch 完成后部署 您可执行下列的其中一个命令,让 Hexo 在生成完毕后自动部署网站,两个命令的作用是相同的。 $ hexo generate

  • 我有一个多模块的maven项目。它有两个多模块 父POM. xml(包装类型:pom) Module1 POM. xml(包装类型:jar) Module2 POM. xml(包装类型:jar) 当我使用mvn构建选项构建pom.xml时,我能够获得所有工件(父pom,子jars)。 但我想要。pom文件(不是pom.xml)也用于子JAR。谁能建议我怎么做? 我尝试在pom中添加依赖项,比如ma

  • Bootstrap 在 CSS 方面采用 Grunt,用 JavaScript 构建系统,用 Jekyll 做记录。Gruntfile 在使用框架方面有许多便利的特点,包括编译代码、运行测试等等。 工具安装 为了使用Gruntfile以及本地运行我们的文档,你需要拷贝一份Bootstrap的源文件,还有Node.js以及Grunt。参照下面的步骤,你应该已经准备好开始动手了: 下载并安装 Node

  • 我正在尝试将一个网站从Heroku迁移到AWS,但在代码构建方面遇到了麻烦。源代码在GitHub上,我使用的是CodePipeline-CodeBuild-Elastic Beanstalk。管道运行良好,代码似乎正在向Elastic Beanstalk过渡。然而,我被困在代码构建步骤。(buildspec.yml如下所示) 日志似乎可以很好地运行命令,但是当我将构建输出到S3存储桶时,没有构建文

  • 问题内容: 有没有简单的方法可以采用现有的Java / scala数据类型和API接口并生成相应的.thrift文件?使用Thrift生成 服务器 数据结构会过度侵入,因为它会导致以下后果: 我无法注释我的数据结构(例如,用于XML,JSON,休眠持久性等) 这种模式与其他想要拥有或需要修改我的源文件的序列化框架相冲突。 结果,它看起来像是节俭,迫使自己成为服务器的专有持久性格式,除非,也就是说,

  • 问题内容: 我正在尝试通过学习本教程来学习hyperjaxb 。我遵循了所有指示,直到标题部分。这包括以下步骤: 但是什么也没产生。没有目录,也没有。我对整个目录结构进行了关键字搜索,以确认运行后这些资源不存在。我也将目录结构导入到新的Eclipse Maven项目中,并在新的Eclipse Maven项目中进行了尝试,但同样缺少结果。 如何使本教程生成预期的生成文件? 另外,是否有更好的方法从x

  • 有没有精确的makefile语法定义?或者至少是一些常见的子集,因为我猜有一些口味。这种语法可以用来编写解析器。 GNU Make手册似乎没有那么精确。基于该文档为makefile编写解析器需要一些猜测和尝试。 我在ANTLR邮件列表中也发现了类似的问题。但究竟是哪一种暗示了答案仍然没有答案。。。