io.bluebank.braid:braid

a library to make it easy to write new services and apps with fewer configuration headaches


License
Apache-2.0

Documentation

As the maintainers of Braid, we value every community member's positive contribution of time and effort. We made a choice to open source the code making it free and available for everyone. As the use of Braid grows so does the demands for support and maintenance. We have introduced a Braid subscription to be able to provide support and maintenance to those organisations who are reliant on Braid. The subscription will prioritise your issues and answer your calls for support. It will also accelerate the roadmap and delivery of your feature requests. If you are intending to use Braid in production we would recommend your company evaluates the value of a Braid subscription. If this is of interest to you then please drop an email to community@cordite.foundation

Braid

pipeline status

logo

Introduction

Braid is a high performance reactive RPC and REST library for exposing your services in a secure way, with very little code, and to consume them in any language, runtime, and platform.

The library has three primary modules:

Modes of Operation

As a CordaRPC Proxy

Automatically expose an OpenAPI protocol compliant server. (JSON-RPC streaming coming soon)

Directly within your Corda cordapp

Using both OpenAPI and JSON-RPC protocols.

In your custom server

JSON-RPC protocol available. OpenAPI protocol coming soon.

Comparison to other toolkits

As easy as Spring. As performant as Vertx. Braid can deliver much higher throughput than all JVM webservers, including popular ones like Spring. This is owing to its use of the high performance libraries vertx and netty. Read the benchmarks comparison of Vertx to other toolkits.

Protocols

Braid implements the OpenAPI REST (and ships with an in-built Swagger UI) and a socket-based streaming JSON-RPC protocol.

Examples

Building locally

You will need:

  • Maven 3.5.x
  • Node JS 10.9.x together with NPM 6.2.0
  • An up-to-date version of Docker

The build for all modules (Kotlin, Javascript, Cordapps etc) is orchestrated with maven.

To compile, test and install the dependencies:

mvn clean install

The project can be loaded into any IDE that can read Maven POMs.

Publishing / Deploying Artifacts

  1. Create a new tag in Gitlab, following semantic versioning rules.
  2. In gitlab CI there is a manual job for the tag that you will kick off
  3. Log into https://oss.sonatype.org/
  4. Go to the Staging Repositories tab, and search for iobluebank, locating the current staged release.
  5. Close the release and release it.