Skip to content

A simple library that aims to simplify communication between your services

License

Notifications You must be signed in to change notification settings

mbrandau/intercom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

intercom Maven Central Build Status Coverage Status

Intercom is a simple library that aims to simplify communication between your services.

Prerequisites

Quickstart

  1. Add the intercom dependency to your pom.xml

    ...
    <dependencies>
        <dependency>
            <groupId>de.maximilianbrandau</groupId>
            <artifactId>intercom</artifactId>
            <version>0.0.1</version>
        </dependency>
    </dependencies>
    ...
  2. Create an IntercomCodec

    import de.maximilianbrandau.intercom.codec.IntercomByteBuf;
    import de.maximilianbrandau.intercom.codec.IntercomCodec;
    IntercomCodec<Integer[]> integerIntercomCodec = new IntercomCodec<>() {
        @Override
        public void encode(Integer[] data, IntercomByteBuf buffer) {
            buffer.writeVarInt(data.length);
            for (Integer i : data) buffer.writeVarInt(i);
        }
    
        @Override
        public Integer[] decode(IntercomByteBuf buffer) {
            Integer[] data = new Integer[buffer.readVarInt()];
            for (int i = 0; i < data.length; i++) {
                data[i] = buffer.readVarInt();
            }
            return data;
        }
    };
  3. Create an IntercomServer

    import de.maximilianbrandau.intercom.server.IntercomServer;
    IntercomServer<Integer[]> server = Intercom.server(8080).build(integerIntercomCodec); // Start the server with your codec
    server.addHandler("sum", (request, response) -> {
        int sum = 0;
        for (Integer i : request.getData()) sum += i; // Sum up all values in the integer array
        response.setData(new Integer[]{sum}); // Set the result
        response.end(); // End the response
    });
  4. Create an IntercomClient

    import de.maximilianbrandau.intercom.client.IntercomClient;
    IntercomClient<Integer[]> client = Intercom.client("localhost", 8080).build(integerIntercomCodec);
    client.request("sum").data(new Integer[]{5, 7, 9}).send() // Send the request
        .thenAccept(response -> System.out.println(response.getData()[0])).get(); // Print the response
  5. Close client and server once you're done

    client.close();
    server.close();

About

A simple library that aims to simplify communication between your services

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages