Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

xyz-appint/nifty

Repository files navigation

Nifty

Nifty is an implementation of Thrift clients and servers on Netty.

It is also the implementation used by Swift.

Examples

To create a basic Thrift server using Nifty, use the Thrift 0.9.0 code generator to generate Java stub code, write a Handler for your service interface, and pass it to Nifty like this:

public void startServer() {
 // Create the handler
 MyService.Iface serviceInterface = new MyServiceHandler();
 // Create the processor
 TProcessor processor = new MyService.Processor<>(serviceInterface);
 // Build the server definition
 ThriftServerDef serverDef = new ThriftServerDefBuilder().withProcessor(processor)
 .build();
 // Create the server transport
 final NettyServerTransport server = new NettyServerTransport(serverDef,
 new NettyServerConfigBuilder(),
 new DefaultChannelGroup(),
 new HashedWheelTimer());
 // Create netty boss and executor thread pools
 ExecutorService bossExecutor = Executors.newCachedThreadPool();
 ExecutorService workerExecutor = Executors.newCachedThreadPool();
 // Start the server
 server.start(bossExecutor, workerExecutor);
 // Arrange to stop the server at shutdown
 Runtime.getRuntime().addShutdownHook(new Thread() {
 @Override
 public void run() {
 try {
 server.stop();
 } catch (InterruptedException e) {
 Thread.currentThread().interrupt();
 }
 }
 });
}

Or the same thing using guice:

public void startGuiceServer() {
 final NiftyBootstrap bootstrap = Guice.createInjector(
 Stage.PRODUCTION,
 new NiftyModule() {
 @Override
 protected void configureNifty() {
 // Create the handler
 MyService.Iface serviceInterface = new MyServiceHandler();
 // Create the processor
 TProcessor processor = new MyService.Processor<>(serviceInterface);
 // Build the server definition
 ThriftServerDef serverDef = new ThriftServerDefBuilder().withProcessor(processor)
 .build();
 // Bind the definition
 bind().toInstance(serverDef);
 }
 }).getInstance(NiftyBootstrap.class);
 // Start the server
 bootstrap.start();
 // Arrange to stop the server at shutdown
 Runtime.getRuntime().addShutdownHook(new Thread() {
 @Override
 public void run() {
 bootstrap.stop();
 }
 });
}

About

Thrift on Netty

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.6%
  • Thrift 0.4%

AltStyle によって変換されたページ (->オリジナル) /