Popularity
3.9
Stable
Activity
5.7
Growing
241
20
92

Programming language: Java
License: Apache License 2.0
Tags: Networking     Projects    
Latest version: v1.18

Drift alternatives and similar libraries

Based on the "Networking" category.
Alternatively, view Drift alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Drift or a related project?

Add another 'Networking' Library

README

Drift

Maven Central Build Status

Drift is an easy-to-use, annotation-based Java library for creating Thrift clients and serializable types. The client library is similar to JAX-RS (HTTP Rest) and the serialization library is similar to JaxB (XML) and Jackson (JSON), but for Thrift.

Example

The following interface defines a client for a Scribe server:

@ThriftService
public interface Scribe
{
    @ThriftMethod
    ResultCode log(List<LogEntry> messages);
}

The log method above uses the LogEntry Thrift struct which is defined as follows:

@ThriftStruct
public class LogEntry
{
    private final String category;
    private final String message;

    @ThriftConstructor
    public LogEntry(String category, String message)
    {
        this.category = category;
        this.message = message;
    }

    @ThriftField(1)
    public String getCategory()
    {
        return category;
    }

    @ThriftField(2)
    public String getMessage()
    {
        return message;
    }
}

An instance of the Scribe client can be created using a DriftClientFactory:

// create a client
Scribe scribe = clientFactory.createDriftClient(Scribe.class);

// use client
scribe.log(Arrays.asList(new LogEntry("category", "message")));

Detailed Documentation

  • [Drift Codec](drift-codec) -- Thrift type annotations and serialization
  • [Drift Client](drift-client) -- Thrift client usage
  • [Drift Server](drift-server) -- Thrift server usage