Crates.io | mcvm |
lib.rs | mcvm |
version | 0.23.0 |
source | src |
created_at | 2023-05-08 23:35:30.463723 |
updated_at | 2024-06-04 16:04:36.999191 |
description | A fast, extensible, and powerful Minecraft launcher |
homepage | |
repository | https://github.com/CarbonSmasher/mcvm |
max_upload_size | |
id | 860149 |
size | 345,911 |
MCVM is a lightweight Minecraft launcher and management ecosystem meant to provide a better interface with custom content such as mods and resource packs.
In the official launcher and many alternative ones, you have to waste time moving files in and out of folders, downloading mods from sketchy websites, setting up servers, and sharing your config to play with friends. MCVM hopes to alleviate some of these pains with its smart systems for configuration sharing and package management.
In addition, MCVM has a ton of flexibility and power, allowing you to build your perfect launcher by hand, or just use the amazing tools already built by the community.
To get started, view our user guide.
Packages are a big selling point of MCVM. You just configure what packages you want on a profile or instance and all the files you need for some addon are automatically installed. The sodium
package, for example, when installed on a profile, will add the Sodium jar file to your mods folder only on client instances.
Packages are designed in such a way that they work with any hosting system. Because they can download files from any URL, packages serve as an intermediary for the formats and conventions of many different websites.
MCVM's packaging format provides the ability to model complex relationships between packages. You won't have to worry about getting all of the correct dependencies for your packages, as they will be automatically installed.
Packages can be more than just an index of files. They can be scripts which run simple logic to determine dependencies and addon files depending on the conditions of the environment.
Packages are made to be as secure as possible. Even though they have scripting capabilities, they are in a controlled environment with no uneeded access to the system or ability to run arbitrary code. Public repositories will be screened often to ensure quality.
You don't have to just use the packages from the official repositories. You can use whatever local or remote package repository you please with whatever priority, as long as they match the API standard. The syncing of package files from repositories is a separate process that only happens when you explicitly say so. Changes to packages will never break your game without your knowledge.
MCVM has many use cases for different applications
This is the main use case of most people, and is an important focus of the ecosystem.
All the functionalities of the CLI in a more approachable format as a desktop application.
You can use the MCVM library as a base for the functionalities of your launcher. Even if you don't use the packaging formats, MCVM contains functions to launch the game in a simple way, as well as customize the launch process to your liking.
The MCVM CLI is the perfect assistant for server managers. The way that it groups configuration for instances makes it easy to orchestrate multiple running servers at once. Plugins can add features like launching on remote machines, config management, automatic scaling and restarts, and proxy support.
Launchers can use the different MCVM crates to parse, validate, evaluate, and host MCVM packages.
Right now, the launcher and library have most of the core features implemented. However, support for more complex features such as a plugin system have yet to be fleshed out. If you see something you want that isn't there, try contributing!
Join the Discord if you have any questions.