Anvil - A cross-platform plugin library

Anvil v0.2.1 has been released! Please read the release notes and download here

Anvil is a plugin API that aims to help developers create structured cross-platform plugins. Included in anvil is an entity framework and many services that abstract platform-specific actions so that they can be used in common code, which means you don’t need to create a completely rewritten plugin for each platform you’d like your plugin to run on - you write the common code and Anvil will help you easily integrate it into each platform.

Anvil is not only cross-platform for plugin platforms but also for databases. As of this writing, Anvil ships with MongoDB and Xodus support by default. With Anvil, you can write a central abstract set of logic that can work on several different database types.

The two databases that are natively supported at the moment are MongoDB and Xodus.

Anvil will use Xodus out of the box, meaning there is no configuring or set up required other than placing the jar in the appropriate folder in your server.

1 Like

Anvil v0.2.0 has been released! Please read the release notes and download here

This release has breaking API changes.

New in this version:

  • Important! Registering a listener to a registry now requires you to add .register(); at the end of the call. Plugins will fail silently if this is not done. This was done to make it simpler to specify the scope and order for a listener.
  • Added ordering to registry listeners.
  • Added @RegistryScoped annotation.
  • Keys now require a namespace to register, this is to make inter-plugin data access easier and pave the way for future placeholder stuff.
  • TimeFormatService now uses FormatResult for some return types. Use toString() to capture the current state of the FormatResult as a String.
  • Updated MongoDB drivers
  • Started using checker framework

Removed in this version:

  • Nuked the Plugin interface. This interface added unnecessary weight to the API and wasn’t being used anywhere.
  • The PermissionService no longer has a generic type. This service only has one boolean method to check a permission for the provided subject. Checking the type of this parameter is now done at runtime.

Anvil v0.2.1 has been released! Please read the release notes and download here