Ikala Core

A Java framework for building modular plugin-based applications. This framework is designed to be flexible and easy to use and serves as the foundation for multiple projects.

The idea is that programs will be made up almost entirely of reusable plugins, which can be loaded and unloaded at runtime. This means that modding/plugin support for programs is extremely powerful, since they are created the same way the programs themselves are. It’s also designed to be very simple to use so that plugins can be created by an amateur in minutes, instead of dealing with the complexity of things like OSGi.

Key Features

  • Plugin system that allows dynamically managing plugins at runtime, with dependency (including circular) handling
  • Event system which allows for easy event listener registration and extensible events
  • Scripting system including a custom language resembling Java, with its own compiler and runtime, to allow for features like goto and pausing scripts indefinitely
  • Configuration system, providing a standard interface and structure for configuring plugins and providing defaults
  • Various utilities to make tasks easier such as loading resources, fetching system properties, keeping a registry of names, and handling files

Links