/chimera

Karus Lab's mono-repository for annotation processing tools & spigot libraries

Primary LanguageJavaMIT LicenseMIT

An annotation-driven and reflection-free command framework.

Requires Java 17+. Read the wiki to get started. View our GitHub discussions to learn about upcoming developments.

CI/CD Funding Codecov Stable Source Code Discord

Why Chimera?

  • Improved performance - Since annotations are processed at compile-time, we can avoid many of the performance pitfalls associated with reflection.

  • Light(er)weight Dependencies - All Typist annotations are discarded after compilation and generated code do not rely on Typist, hence it doesn't need to be bundled with the plugin. The only dependency required is Chimera.

  • Low Learning Curve & Safety - One benefit of compile-time annotation processing is the ability to check annotations at compile-time. This means errors can be caught eariler by the annotation processor and thus easier to learn and safer.

  • Native Brigadier Support - Typist is built on Chimera, hence by extension, built on Brigadier.

  • Better Developer Experience - No need to compile the plugin, fiddle with the jar, boot-up a Spigot server and pray it doesn't instantly hurl an error. Typist has a slightly shorter feedback loop.

Imgur

Version Compatibility
Chimera Version Minecraft Version
5.5.0 1.19.2 - 1.19.3
5.4.2 1.19.1
5.3.0 1.18.2
5.2.0 1.18.0 - 1.18.1
5.1.0 1.17.1
5.0.0 1.17.0
4.9.0-SNAPSHOT 1.16.4
4.8.0 1.16.3
4.7.1 1.16.1
4.6.1 1.15.2
4.3.0 1.14 - 1.14.4
4.1.0 1.13.2

Maven Repository

<repository>
  <id>chimera-releases</id>
  <url>https://repo.karuslabs.com/repository/chimera-releases/</url>
</repository>

<repository>
  <id>chimera-snapshots</id>
  <url>https://repo.karuslabs.com/repository/chimera-snapshots/</url>
</repository>

Annotations - Contains general purpose annotations

releases-maven snapshots-maven javadoc

<dependency>
    <groupId>com.karuslabs</groupId>
    <artifactId>annotations</artifactId>
    <version>5.5.0</version>
</dependency>

Commons - Contains the command framework and other common utilities for Spigot plugin development

releases-maven snapshots-maven javadoc

<dependency>
    <groupId>com.karuslabs</groupId>
    <artifactId>commons</artifactId>
    <version>5.5.0</version>
</dependency>

Typist - Contains the annotations add-on for the command framework in Commons

releases-maven snapshots-maven javadoc

<dependency>
    <groupId>com.karuslabs</groupId>
    <artifactId>typist</artifactId>
    <version>5.5.0</version>
</dependency>