Skip to content

Self-describing JSON-RPC web services over HTTP, with automatic API description based on JSON-Schema

License

Notifications You must be signed in to change notification settings

brutusin/Brutusin-RPC

Repository files navigation

Brutusin-RPC Hex.pm Build Status Maven Central Latest Version

Brutusin-RPC shiny logo

JEE web framework for creating self-descriptive JSON-RPC microservices and single-page applications with minimal effort.

Features

  • JSON-RPC 2.0 over HTTP
  • JSON-RPC 2.0 over websockets
  • Messaging (publish/subscribe) over websockets
  • Java & Javascript client API
  • Builtin descriptive services and functional testing module
  • Arbitrary complex input and output description based on JSON Schema
  • Spring-security integration
  • Embedded server runtimes

Full Documentation

See the Wiki for full documentation, examples, operational details and other information.

Quick start. Code and test!

Run this java application:

import org.brutusin.rpc.Server;
import org.brutusin.rpc.websocket.WebsocketAction;

public class HelloAction extends WebsocketAction<String, String> {

    @Override
    public String execute(String input) throws Exception {
        return "Hello " + input + "!";
    }

    public static void main(String[] args) throws Exception {
        Server.test(new HelloAction());
    }
}

and automatically your browser will be open with a functional testing client for the newly created service:

Service testing client

Live demos

Support, bugs and requests

https://github.com/brutusin/Brutusin-RPC/issues

Authors

Contributions are always welcome and greatly appreciated! Just fork, and send me a pull request.

License

Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0