A Minecraft launcher written in Rust, with an Electron frontend.

Overview

RustMine

wakatime CodeFactor CI

A Minecraft launcher written in Rust, with an Electron frontend.


Why?

I thought it would be fun to use two of my most familiar languages, Rust and JavaScript, to create a Minecraft launcher. I will most likely to not finish this program, since I only did this for fun.

I will create the UI using Electron and I will use Rust with Neon Bindings.


Roadmap

  • Frontend
    • Main Page
  • Backend
    • Mojang Login
    • Microsoft Login
    • Download Libraries
    • Download minecraft.jar
    • Authenticating
    • Launching Minecraft
  • Extra Stuff
    • Multiple Instances
    • Instance Specific Settings
    • Multiple Accounts
    • Mojang Status
    • Auto Update
    • Integrate with mod-updater
    • Animate Splash Screen

Development

  1. Clone this repository.
  2. Run yarn to install the dependencies for the frontend.
  3. Then, run yarn inside the backend folder to install the dependencies for the backend.
  4. Run yarn dev in the root folder of this project to start the app.

What if I am religiously opposed to using Electron?

TL;DR

Then you are not the target audience of this program. See [PolyMC](https://github.com/PolyMC/PolyMC) for a similar program that will not taint your machine with a library you happen to dislike.

It's clear that highly polarized opinions about languages and frameworks are characteristic of people who lack real-world programming experience and are more interested in building an identity than creating computer programs. When pressed for reasons what exactly is so bad about Electron, they can rarely offer anything than vaguely mumbled "memory usage" or "b-but it's an entire browser" (both of which have not been true for years, for example Electron's memory usage has improved dramatically, but the meme stuck). The programming world is filled with people who read angry rants about why library X or Y sucks and you should hate it, then repeat whatever they remember because they think whining makes them seem smart, without critically examining whether it makes sense or not.

The reasons behind Electron

- It's fun to develop for - It uses as much resources as a single browser tab, if used in a sane way - It provides a low barrier to entry for contributors - It lets us easily build and deploy to all major desktop platforms (various Linux distros, MacOS, Windows) - There is no good alternative that would provide all these benefits (don't get me started on qt - try using their designer) - The users don't care about the technology you use to build your app

With experience comes a certain appreciation of tradeoffs you take when building software and while Electron is not the perfect solution for every use case, it's certainly good enough for what I was trying to achieve with this app.


License

RustMine, a Minecraft launcher written in Rust, with an Electron frontend. Copyright (C) 2022 sourTaste000

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

You might also like...

Shizuku Launcher is a simple AWS Virtual Machine helper. Now in Next.js

Shizuku Launcher Shizuku Launcher is a simple AWS Virtual Machine helper. Shizuku Launcher offers multiple solutions to keep your credential security

Jan 3, 2023

A JupyterLab extension to create custom launcher entries.

A JupyterLab extension to create custom launcher entries.

jupyter_app_launcher A JupyterLab extension to create custom launcher entries jupyter_app_launcher helps users customize the JupyterLab launcher with

Dec 28, 2022

An opensource 360° media viewer written in JavaScript using Electron and Marzipano

An opensource 360° media viewer written in JavaScript using Electron and Marzipano

open360viewer open360viewer is an opensource 360° media viewer. It is based on electron and marzipano. It currently supports opening equirectangular 3

Oct 9, 2022

A quick and easy to use security reconnaissance webapp tool, does OSINT, analysis and red-teaming in both passive and active mode. Written in nodeJS and Electron.

A quick and easy to use security reconnaissance webapp tool, does OSINT, analysis and red-teaming in both passive and active mode. Written in nodeJS and Electron.

ᵔᴥᵔ RedJoust A quick and easy to use security reconnaissance webapp tool, does OSINT, analysis and red-teaming in both passive and active mode. Writte

Oct 31, 2022

O objetivo dessa aplicação era criar um frontend feito totalmente em Javascript, sem nenhum arquivo HTML ou CSS pré-criado. Além disso, esse projeto também é o frontend da minha API 100% NodeJS.

O objetivo dessa aplicação era criar um frontend feito totalmente em Javascript, sem nenhum arquivo HTML ou CSS pré-criado. Além disso, esse projeto também é o frontend da minha API 100% NodeJS.

Projeto HTML 100% Javascript Front-end feito "sem HTML" Conteúdos ➜ Sobre o projeto ➜ O que aprendi ➜ Como usar 🔎 Sobre o projeto Voltar ao topo O ob

Aug 3, 2021

A tool to simplify importing custom assets in Minecraft

BAMO - Block And Move On A tool to simplify importing custom assets in Minecraft Currently only allows you to quickly prototype models in-game, but fu

Jul 15, 2022

Minecraft 1.8.9 mod which steals the access token and more things from the targetted user and sends to a backend server for processing. Disclaimer: For educational purposes only.

Minecraft 1.8.9 mod which steals the access token and more things from the targetted user and sends to a backend server for processing. Disclaimer: For educational purposes only.

R.A.T Retrieve Access Token Check DxxxxY/TokenAuth to login into an MC account with a name, token and uuid combo. Features Grabs the username, uuid, t

Jan 9, 2023

Servidor de Minecraft

 Servidor de Minecraft

Servidor de Minecraft Explore a documentação » Report Bug · Request Feature Sobre o Projeto Esse projeto é um servidor de Minecraft que foi desenvolvi

Jun 14, 2022

✨ Your Minecraft related projects are now easier.

✨ Your Minecraft related projects are now easier.

🧱 MineAPI - Simple Minecraft API Provider 💻 Get Started Fill in the src/config.json file completely. Make sure your Node.js version is v16.16.0. Ope

Nov 1, 2022
Owner
sussyimpostor
i break stuff
sussyimpostor
Secure-electron-template - The best way to build Electron apps with security in mind.

secure-electron-template A current electron app template with the most popular frameworks, designed and built with security in mind. (If you are curio

reZach 1.4k Dec 29, 2022
Minecraft client written in Javascript

webmc About Webmc is minecraft client written in Javascript. From web browser this client connects to websocket proxy and then to real minecraft serve

Michał Jażdżyk 1.1k Jan 9, 2023
A planetary body simulator with a HTML5/CSS3/JS frontend and simulated using Rust WebAssembly.

Solar Sim ?? A planetary body simulator with a HTML5/CSS3/JS frontend and simulated using Rust WebAssembly. Try the latest version here! Built with ??

Ben Plate 3 Jun 15, 2022
A TOML parsing tool written in Rust for Node.js

@daydog/toml A TOML parsing tool written in Rust for Node.js Installation @daydog/toml is available via npm. npm install @daydog/toml Usage parse You

null 5 Jul 20, 2022
A simple and fast redirection tool (short link) written in Rust.

?? RabiJump 简体中文 | API Doc RabiJump is an open source redirection service aimed for efficiency and simplicity. ?? Features: Built-in filesystem databa

Rui Li 53 Oct 19, 2022
A launcher for Mindustry built with Node.JS.

MindustryLauncher A custom launcher for Mindustry built with TypeScript and Node.JS. Features Logging Version selection Automatic version download Aut

null 5 Jun 23, 2022
A launcher for quickly & easily switching server destinations.

GrassClipper Grasscutter launcher for easily switching between Official and Private servers Download Here! *Note: some translations are outdated, so i

null 520 Jan 6, 2023
MacOS launcher & command palette

About If you ever liked tools like Raycast and Alfred, but wanted to own them and tweak them yourself, then SOL is the tool for you. All the affordanc

Oscar Franco 1.4k Dec 30, 2022
Shizuku Launcher is a simple AWS Virtual Machine helper.

shizuku-launcher-web Shizuku Launcher is a simple AWS Virtual Machine helper. Shizuku Launcher offers multiple solutions to keep your credential secur

Seraphim Lou 16 Oct 11, 2022
An Anime Game launcher for Linux with automatic patching fixing detection of Linux/Wine and telemetry disabling

An Anime Game launcher for Linux with automatic patching fixing detection of Linux/Wine and telemetry disabling

An Anime Team 367 Jan 4, 2023