PiggyPiglet / Framework

Reflection based java project framework

Home Page:https://rpf.piggypiglet.me

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This project isn't dead

Head over the dev branch for the latest additions. I'm currently in the midst of rewriting a bunch of stuff, and ofc adding more features. However development has slowed compared to the rate of last year, primarily due to irl commitments (school, etc)

Reflection Based Project Framework

RPF, as the name suggests, is a reflection based Java project framework. What is reflection though? In essence, reflection is basically a tool that allows you to view and extend a class's architecture, for example, allowing you to get all annotations in a class, or on a method. RPF takes this basic tool to the next level though, by integrating well-known reflection utilizing libraries such as Guice and Guava, resulting in a unique and efficient way of creating applications.

Features:

  • Child injector based startup system
  • Platform independent command API
  • Extensive configurability (boot order, values throughout several components)
  • Task manager
  • Classpath scanning
  • Manager API (implementations for MySQL, Web, Levenshtein search)
  • Intelligent Object Mapper (similarity based key/variable comparisons)
  • Configuration system (JSON Default, supports object mapping)
  • Language System
  • File manager
  • Plenty of addons
    • MySQL API
    • Logback Implementation
    • Serve HTTP JSON
    • Console interaction
    • Runtime Jar Loader
  • Loads of pre-made bindings for popular apis (with platform independent common libraries)
    • Bukkit
    • Sponge
    • Velocity
    • BungeeCord
    • Nukkit
    • Fabric (Soon)
    • JDA
    • Discord4J (Soon)
    • Javacord (Soon)
  • More to come

Alone with these, there are also implementations for popular apis, such as Bukkit and JDA. In these, you can expect things that you'd normally have to do manually, to be done automatically, for example event registering.

Usage

Comprehensive documentation can be found on the wiki, and method/class descriptions on the javadocs.

Builds can be downloaded from here, however I recommend you use my maven repository instead.
Gradle:

repositories {
    mavenCentral()
    maven {
        url = "https://repo.piggypiglet.me/repository/maven-releases/"
    }
}

Maven:

<repositories>
  <repository>
    <id>piggypiglet</id>
    <name>piggypiglet</name>
    <url>https://repo.piggypiglet.me/repository/maven-releases/</url>
  </repository>
</repositories>

More info can be found on their respective pages.

Status

Jenkins
Versions:

Core Console HTTP Jars Logback MySQL Bukkit BungeeCord JDA Sponge Velocity Nukkit
1.8.41 1.8.41 1.8.41 1.8.41 1.8.41 1.8.41 1.8.41 1.8.41 1.8.41 1.8.41 1.8.41 1.8.41

Endorsements

YourKit

YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.

About

Reflection based java project framework

https://rpf.piggypiglet.me

License:MIT License


Languages

Language:Java 99.8%Language:Shell 0.2%Language:HTML 0.0%