MCPcopy Index your code
hub / github.com/brutusin/Brutusin-RPC

github.com/brutusin/Brutusin-RPC @v1.9.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.9.2 ↗ · + Follow
796 symbols 1,820 edges 149 files 167 documented · 21%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

<img src="https://github.com/brutusin/Brutusin-RPC/wiki/img/brutusin-logo_small.png" alt="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
  • 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

  • http://demo.rpc.brutusin.org
  • http://secure.demo.rpc.brutusin.org (see here needed credentials)
  • http://chat.demo.rpc.brutusin.org

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

Extension points exported contracts — how you extend this code

Descriptible (Interface)
@author Ignacio del Valle Alles idelvall@brutusin.org [7 implementers]
rpc-api/src/main/java/org/brutusin/rpc/Descriptible.java
RpcCallback (Interface)
@author Ignacio del Valle Alles idelvall@brutusin.org [3 implementers]
rpc-client/src/main/java/org/brutusin/rpc/client/RpcCallback.java
WritableSession (Interface)
@author Ignacio del Valle Alles idelvall@brutusin.org [1 implementers]
rpc-api/src/main/java/org/brutusin/rpc/websocket/WritableSession.java
TopicCallback (Interface)
@author Ignacio del Valle Alles idelvall@brutusin.org [3 implementers]
rpc-client/src/main/java/org/brutusin/rpc/client/wskt/TopicCallback.java
Session (Interface)
@author Ignacio del Valle Alles idelvall@brutusin.org [1 implementers]
rpc-api/src/main/java/org/brutusin/rpc/websocket/Session.java
MessageListener (Interface)
@author Ignacio del Valle Alles idelvall@brutusin.org [2 implementers]
rpc-client/src/main/java/org/brutusin/rpc/client/wskt/MessageListener.java
SpringNames (Interface)
@author Ignacio del Valle Alles idelvall@brutusin.org
rpc-api/src/main/java/org/brutusin/rpc/SpringNames.java
HttpClientContextFactory (Interface)
@author Ignacio del Valle Alles idelvall@brutusin.org [1 implementers]
rpc-client/src/main/java/org/brutusin/rpc/client/http/HttpClientContextFactory.java

Core symbols most depended-on inside this repo

getInstance
called by 74
rpc-impl/src/main/java/org/brutusin/rpc/RpcConfig.java
getName
called by 49
rpc-demos/rpc-examples/src/main/java/org/brutusin/demo/complex/Person.java
get
called by 46
rpc-impl/src/main/java/org/brutusin/rpc/GlobalThreadLocal.java
equals
called by 31
rpc-impl/src/main/java/org/brutusin/rpc/http/LimitedLengthInputStream.java
toString
called by 30
rpc-client/src/main/java/org/brutusin/rpc/client/http/HttpResponse.java
getValue
called by 27
rpc-api/src/main/java/org/brutusin/rpc/http/Cacheable.java
getId
called by 26
rpc-api/src/main/java/org/brutusin/rpc/websocket/Session.java
getInstance
called by 25
rpc-api/src/main/java/org/brutusin/rpc/websocket/WebsocketActionSupport.java

Shape

Method 621
Class 140
Function 21
Interface 11
Enum 3

Languages

Java97%
TypeScript3%

Modules by API surface

rpc-impl/src/main/java/org/brutusin/rpc/RpcConfig.java28 symbols
rpc-client/src/main/java/org/brutusin/rpc/client/wskt/WebsocketEndpoint.java28 symbols
rpc-impl/src/main/java/org/brutusin/rpc/http/RpcServlet.java25 symbols
rpc-impl/src/main/java/org/brutusin/rpc/RpcSpringContext.java21 symbols
rpc-tomcat/src/main/java/org/brutusin/rpc/TomcatRuntime.java19 symbols
rpc-client/src/main/java/org/brutusin/rpc/client/http/HttpEndpoint.java18 symbols
rpc-api/src/main/java/org/brutusin/rpc/RpcResponse.java18 symbols
rpc-impl/src/main/java/org/brutusin/rpc/websocket/SessionImpl.java15 symbols
rpc-client/src/main/java/org/brutusin/rpc/client/action/DelegatingHttpAction.java15 symbols
rpc-impl/src/main/java/org/brutusin/rpc/http/HttpActionSupportImpl.java14 symbols
rpc-client/src/main/java/org/brutusin/rpc/client/http/ConfigurationBuilder.java14 symbols
rpc-impl/src/main/java/org/brutusin/rpc/RpcWebInitializer.java13 symbols

For agents

$ claude mcp add Brutusin-RPC \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page