Skip to content

AllayMC/Allay

Repository files navigation


Logo

Allay

The next-generation Minecraft: Bedrock Edition server software

Build Documentation Status codecov Discord

Introduction

Allay is a third-party server software for Minecraft: Bedrock Edition written in Java with the goal of maintaining high scalability while maintaining high performance through a well-designed architecture.

Important

Please note that this project is still at a very early stage and has not yet been released officially, and a large number of interfaces may be added or removed without notice. Please do not use Allay in a production environment.

You can check our roadmap for development progress.

Features

Allay has many features that make it stand out from other server software, and here are some of them:

  • Cross-platform: Allay is based on JVM, so it can run on most platforms that can run JVM.
  • High Performance:
    • We fully understand the problems of Nukkit server under high load, Allay is a hundred times more performant than Nukkit in some aspects (eg: entity physics).
    • Thanks to the redesigned threading model, Allay takes full advantage of multicore CPUs, which means you don't need to intentionally use server that has high CPU frequency.
    • Allay is based on JDK 21, which theoretically gives it better performance.
  • Easy to Get Started:
    • You can write plugins for Allay in Java, Kotlin, Scala (JVM based language) and script languages such as JavaScript, Python, etc.
    • We introduced GraalVM, which means you can write plugins in many languages and get the same performance as Java and the ability to interoperate seamlessly.
  • Highly Customizable: Allay offers a large number of interfaces that can be used directly, and you can't do such thing in BDS.
  • Security:
    • Allay has more checks on client packets than BDS, and theoretically does not have many of the pernicious vulnerabilities that BDS has.
    • Allay has network encryption enabled by default. In addition, Allay has a built-in resource packet encryption function that automatically encrypts resource packets sent to the client, preventing your data from leaking to a certain extent.
  • Lots of New Features: Unlike the Nukkit server, Allay uses a lot of new protocol features that have been introduced by BDS, such as server-side authoritative inventory, new chunk format, sub-chunk packet sending, etc.
  • High Code Quality: We pay a lot of attention to code quality and keep the project stable with the help of extensive unit testing and refactoring.

Getting Started

For Normal Users

Install from one command line (Use AllayLauncher):

Linux:

wget -qO- https://raw.githubusercontent.com/AllayMC/AllayLauncher/refs/heads/main/scripts/install_linux.sh | bash

Windows(PowerShell):

Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/AllayMC/AllayLauncher/refs/heads/main/scripts/install_windows.ps1").Content

Check the Installation page in our docs for more information.

Run from Source Code

You may want to run Allay from source code and do some debugging, and that's quiet easy:

gradlew server:runShadow

Plugins

Allay supports running plugins written in Java, Kotlin, Scala (JVM based language) and script languages such as JavaScript, Python, etc. You can check out our plugin templates:

For more information, you can check our documents

Dependency

repositories {
    mavenCentral()
    maven("https://www.jitpack.io/")
    maven("https://repo.opencollab.dev/maven-releases/")
    maven("https://repo.opencollab.dev/maven-snapshots/")
    maven("https://storehouse.okaeri.eu/repository/maven-public/")
}

dependencies {
    compileOnly(group = "org.allaymc.allay", name = "api", version = "master-SNAPSHOT")
}

We use jitpack to publish our artifacts. If you want to use a specified api version, you can check the version here.

Contribute

Contributions are welcome! Please read CONTRIBUTING.md before submitting a PR!

This project exists thanks to the participation of the following developers:

contributors

Code Coverage

Feel free to help us refine our unit tests! More unit tests will help the project grow

Codecov Graph

Feedback

Your feedback can make this project better. If you find a problem/have a new idea, feel free to raise it in the issues page.

For anything else, please join our Discord group to discuss.

Stargazers over time

Stargazers over time

License

Copyright © 2023-2024 AllayMC, all rights reserved.

If not otherwise specified, project content is open source under the LGPL-3.0 license.

The contents of the following folders are open-sourced under the MIT license:

  • data
  • codegen

Special Thanks

YourKit-Logo

YourKit has granted AllayMC team an open-source license to their outstanding Java profiler, allowing us to make our software as performant as it can be!

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