• Stars
    star
    813
  • Rank 56,073 (Top 2 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated 15 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An Intuitive Event-Driven Reactive Programming Library for Java

Build Status Build status (1.x branch) License Maven Central Javadoc

⚡️ Mutiny, an Intuitive Event-Driven Reactive Programming Library for Java

Mutiny is a modern reactive programming library for Java.

Mutiny provides a simple but powerful asynchronous development model to build reactive applications.

This project is sponsored by Red Hat.

🚀 Overview

Mutiny can be used in any Java application exhibiting asynchrony.

From reactive microservices, data streaming, event processing to API gateways and network utilities, Mutiny is a great fit.

Event-Driven

Mutiny places events at the core of its design. With Mutiny, you observe events, react to them, and create elegant and readable processing pipelines.

💡 A PhD in functional programming is not required.

Navigable

Even with smart code completion, classes with hundred of methods are confusing.

Mutiny provides a navigable and explicit API driving you towards the operator you need.

Non-Blocking I/O

Mutiny is the perfect companion to tame the asynchronous nature of applications with non-blocking I/O.

Declaratively compose operations, transform data, enforce progress, recover from failures and more.

Quarkus and Vert.x native

Mutiny is integrated in Quarkus where every reactive API uses Mutiny, and Eclipse Vert.x clients are made available using Mutiny bindings.

Mutiny is however an independent library that can ultimately be used in any Java application.

Reactive Converters Built-In

Mutiny is based on the Reactive Streams protocol, and so it can be integrated with any other reactive programming library.

In addition, Mutiny offers converters to interact with other popular libraries and Kotlin.

📦 Build instructions

Mutiny is built with Apache Maven, so all you need is:

./mvnw install

If you want to run a quick build without running tests or generating API docs, then run:

./mvnw -Dquickly
Git branch Versions Baseline Compliance
main 2.x (in development) Java 11, java.util.concurrent.Flow Reactive Streams TCK 1.0.4
1.x 1.x.y (backports, bug fixes) Java 8, Reactive Streams 1.0.4 Reactive Streams TCK 1.0.4

Contributing

See the contributing guidelines

Mutiny is an open project, feel-free to:

👋 Discussions and support

For anything related to the usage of Mutiny in Quarkus, please refer to the Quarkus support

For more general discussions about Mutiny, you can:

🧪 Publications

Julien Ponge, Arthur Navarro, Clément Escoffier, and Frédéric Le Mouël. 2021. Analysing the Performance and Costs of Reactive Programming Libraries in Java. In Proceedings of the 8th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems (REBLS ’21), October 18, 2021, Chicago, IL, USA. ACM, New York, NY, USA, 10 pages. (PDF)

More Repositories

1

jandex

Java Annotation Indexer
Java
394
star
2

smallrye-reactive-messaging

SmallRye Reactive Messaging
Java
239
star
3

smallrye-graphql

Implementation for MicroProfile GraphQL
Java
159
star
4

smallrye-config

SmallRye Config - A Java Configuration library
Java
157
star
5

smallrye-open-api

SmallRye implementation of Eclipse MicroProfile OpenAPI
Java
115
star
6

smallrye-fault-tolerance

SmallRye implementation of MicroProfile Fault Tolerance: bulkheads, circuit breakers, fallbacks, rate limits, retries, timeouts, and more
Java
85
star
7

smallrye-mutiny-vertx-bindings

Smallrye Mutiny bindings for Eclipse Vert.x
Java
82
star
8

smallrye-stork

SmallRye Stork is a service discovery and client side-load balancing framework.
Java
76
star
9

smallrye-jwt

Java
75
star
10

smallrye-health

Java
52
star
11

smallrye-metrics

Java
39
star
12

smallrye-context-propagation

SmallRye implementation of MicroProfile Context Propagation
Java
30
star
13

smallrye-common

Common utilities for SmallRye
Java
21
star
14

smallrye-opentelemetry

SmallRye OpenTelemetry - A CDI and Jakarta REST implementation of OpenTelemetry Tracing
Java
21
star
15

smallrye-reactive-streams-operators

Implementation of the MicroProfile Reactive Streams Operators specification
Java
20
star
16

smallrye-opentracing

An MicroProfile-OpenTracing implementation
Java
19
star
17

smallrye-mutiny-zero

Zero-dependency Reactive Streams publishers library
Java
17
star
18

smallrye-async-api

Java
7
star
19

smallrye-event-sourcing

7
star
20

smallrye-llm

Experimentation around LLM and MicroProfile
Java
7
star
21

smallrye-rest-client

Implementation has been moved to https://github.com/resteasy/Resteasy/tree/master/resteasy-client-microprofile
Java
7
star
22

smallrye-graphql-client-intellij-plugin

Kotlin
5
star
23

smallrye-parent

Maven Parent POM
4
star
24

smallrye-beanbag

A simple programmatic bean container with support for creating a Maven resolver via integration with Eclipse SISU.
Java
3
star
25

smallrye-safer-annotations

Safer annotation constraints
Java
3
star
26

smallrye-antora-ui

Antora UI for the SmallRye documentation
CSS
2
star
27

smallrye-reactive-converters

Java
2
star
28

smallrye-testing

Testing utilities for all SmallRye projects
Java
1
star
29

smallrye-bom

1
star
30

smallrye-opentelemetry-sdk

Java
1
star
31

smallrye-jose

1
star
32

smallrye-converters

Java
1
star
33

smallrye-aesh

1
star
34

smallrye

SmallRye repo to handle cross projects work
1
star
35

smallrye-certificate-generator

Utilities to generated signed and self-signed certificates
Java
1
star