[ https://issues.apache.org/jira/browse/THRIFT-2835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14531817#comment-14531817 ]
ASF GitHub Bot commented on THRIFT-2835: ---------------------------------------- Github user jeking3 commented on the pull request: https://github.com/apache/thrift/pull/368#issuecomment-99664082 Lots of work in here! You might want to close and re-open this pull request to kick a new build. It needs to pass CI before anyone can merge it. > Add possibility to distribute generators separately from thrift core, and > load them dynamically > ----------------------------------------------------------------------------------------------- > > Key: THRIFT-2835 > URL: https://issues.apache.org/jira/browse/THRIFT-2835 > Project: Thrift > Issue Type: New Feature > Components: Compiler (General) > Reporter: Anatol Pomozov > Labels: fbthrift > > It is a follow-up for discussion with Facebook's fbthrift > https://github.com/facebook/fbthrift/issues/48 > fbthrift adds its own generator that creates C++ classes based on their > libraries. I do not know how upstreamable this generator but I think other > companies would want to do the same - create their own custom generators. > Currently there is no way to distribute generators separately from the thrift > core. Thus the company have to fork whole project and add their own > generator. It is what Facebook did. > The idea is that thrift should be able to load language generators > dynamically. i.e. a company foo creates its own generator and puts it to > system /usr/lib/thrift/generators/cpp_foo.so When thrift compiler starts - it > checks /usr/lib/thrift/generators/ and uses dlopen() to load the shared > libraries. The shared library contains information about the generator (name, > options, ...) thus it allows thrift core to use this custom third-party > generator. > This allows companies to create and distribute generator will less pain and > no need to fork the project. -- This message was sent by Atlassian JIRA (v6.3.4#6332)