https://github.com/mnlipp/jgrapes
An event driven component framework for Java
https://github.com/mnlipp/jgrapes
component-architecture event-driven framework java
Last synced: 11 months ago
JSON representation
An event driven component framework for Java
- Host: GitHub
- URL: https://github.com/mnlipp/jgrapes
- Owner: mnlipp
- License: agpl-3.0
- Created: 2012-09-29T12:30:31.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2025-04-13T15:21:18.000Z (12 months ago)
- Last Synced: 2025-04-13T16:26:20.801Z (12 months ago)
- Topics: component-architecture, event-driven, framework, java
- Language: Java
- Homepage: https://mnlipp.github.io/jgrapes/
- Size: 609 MB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
JGrapes
=======
See the [project's home page](https://jgrapes.org/) for a
detailed description of the framework.
[](https://github.com/mnlipp/jgrapes/actions) [](https://www.codacy.com/gh/mnlipp/jgrapes/dashboard?utm_source=github.com&utm_medium=referral&utm_content=mnlipp/jgrapes&utm_campaign=Badge_Grade)
| Package | Download |
| ------- | -------- |
| core | [](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22org.jgrapes.core%22)
| util | [](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22org.jgrapes.util%22)
| io | [](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22org.jgrapes.io%22)
| http | [](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22org.jgrapes.http%22)
This repository comprises the sources for jars that provide the basic
packages (org.jgrapes.core, ...util, ...io etc.). The jars have augmented
manifests that allow them to be used as OSGi bundles without wrapping,
but they do not depend in any way on the OSGi framework.
Short Overview
--------------
JGrapes is an event driven (message driven) component framework written
in Java. It includes support for asynchronous I/O and can be used to
build reactive systems. It was inspired by the
["circuits framework"](https://pypi.org/project/circuits/#description)
written for Python.
This repository is used to maintain the library with
the interfaces and classes that provide the
event handling features of the core framework.
Some additional libraries built on top of the core which
support asynchronous I/O and provide some more complex components
such as an HTTP server are also maintained in this repository.
A web console that uses these basic libraries as a foundation
is maintained as a separate
[JGrapes Web Console](https://github.com/mnlipp/jgrapes-webconsole)
project.
Some extra JGrapes components (that depend on the OSGi framework and
provide JGrapes based OSGi services) are maintained in a
[repository of their own](https://github.com/mnlipp/jgrapes-osgi).
See the [project's home page](https://jgrapes.org/) for a
detailed description of the framework.
Running
-------
Starting with versions core-1.21.0, util-1.36.0, io-2.11.0, http-3.5.0,
http.freemarker-1.17.0, JGrapes makes use of virtual threads and therefore
requires Java 21 SE or newer. Binaries are currently made available at
Maven Central.
```gradle
repositories {
mavenCentral()
}
dependencies {
compile 'org.jgrapes:org.jgrapes.PACKAGE:X.Y.Z'
}
```
(See badge above for the latest version.)
Building
--------
The libraries can be built with `gradle build`. For working with
the project in Eclipse run `gradle eclipse` before importing the
project.
If you want to use
[buildship](https://projects.eclipse.org/projects/tools.buildship),
import the project as "Gradle / Existing Gradle Project". Should you
encounter the (in)famous
["sync problem"](https://github.com/eclipse/buildship/issues/478),
simply restart Eclipse.