Fast Java event bus leveraging the power of annotation processing. https://docs.zaaarf.foo/geb/
Find a file
2023-08-18 17:11:15 +02:00
gradle/wrapper feat: initial basic api implementation 2023-08-17 18:26:10 +02:00
src/main/java/ftbsc/geb/api feat: presumably completed the first version of the api 2023-08-18 17:11:15 +02:00
.editorconfig feat: initial basic api implementation 2023-08-17 18:26:10 +02:00
.gitignore feat: initial basic api implementation 2023-08-17 18:26:10 +02:00
build.gradle feat: initial basic api implementation 2023-08-17 18:26:10 +02:00
gradlew feat: initial basic api implementation 2023-08-17 18:26:10 +02:00
gradlew.bat feat: initial basic api implementation 2023-08-17 18:26:10 +02:00
LICENSE feat: initial basic api implementation 2023-08-17 18:26:10 +02:00
README.md feat: initial basic api implementation 2023-08-17 18:26:10 +02:00
settings.gradle fix: mistake 2023-08-18 17:10:31 +02:00

Geb!

GEB (short for Generative Event Bus) is an event bus leveraging annotation processing to achieve maximum possible speed.

The trick

There is no trick, it's just basic metaprogramming.

Suppose that you have a simple event system, with annotated listeners receiving Event objects. To process something like this at runtime, you need to ask every class to subscribe to the bus, then iterate all of its methods to find the annotated ones to call.

That works, of course, but it's not that fast. Ah, if only you knew in advance, such as at compile time, who's going to get called with what... oh, wait, you do.

GEB is just a basic event bus in itself; the actual magician is the processor, who writes into each event direct calls to all subscribers, to take as little time as possible.

What's with the name?

"GEB Bus" kind of sounds like "Jeb Bush" and I think it's very funny. Please clap.