summaryrefslogtreecommitdiff
path: root/src/projects
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-10-02 19:14:17 +0200
committermetamuffin <metamuffin@disroot.org>2025-10-02 19:14:17 +0200
commit23871d5aadcaa4d01b7c46cb951854572940414d (patch)
tree9a3f0490675642a5b76bdda8f44f2e75b469046c /src/projects
parentfbc308f96dca2854bc462e6fee412b5dc35b6c3c (diff)
downloadmetamuffin-website-23871d5aadcaa4d01b7c46cb951854572940414d.tar
metamuffin-website-23871d5aadcaa4d01b7c46cb951854572940414d.tar.bz2
metamuffin-website-23871d5aadcaa4d01b7c46cb951854572940414d.tar.zst
Rewrite
Diffstat (limited to 'src/projects')
-rw-r--r--src/projects/data.rs393
-rw-r--r--src/projects/mod.rs88
2 files changed, 0 insertions, 481 deletions
diff --git a/src/projects/data.rs b/src/projects/data.rs
deleted file mode 100644
index a307b50..0000000
--- a/src/projects/data.rs
+++ /dev/null
@@ -1,393 +0,0 @@
-use super::{Project, State::*, Status::*};
-
-pub const PROJECTS: &'static [Project] = &[
- Project {
- name: "gnix",
- status: Maintained,
- description: "a stupid reverse proxy to replace nginx. serving the webpage you are viewing right now.",
- link: Some("https://metamuffin.org"),
- ..default()
- },
- Project {
- name: "keks-meet",
- status: Maintained,
- description: "a simple secure web conferencing application.",
- link: Some("https://meet.metamuffin.org"),
- ..default()
- },
- Project {
- name: "hurrycurry",
- status: Maintained,
- description: "A cooperative video game about cooking. Featuring multiplayer, 3d graphics and more.",
- link: Some("https://hurrycurry.metamuffin.org"),
- repo_link: Some("https://codeberg.org/hurrycurry/hurrycurry"),
- ..default()
- },
- Project {
- name: "weareserver",
- status: Developing,
- description: "server software (and experimental client) for a generic 3d multiplayer game with VoIP capabilities. Inspired by VRChat and Minetest.",
- ..default()
- },
- Project {
- name: "abrechenbarkeit",
- status: Maintained,
- description: "a simple trust-based ledger implemented as a Lua CGI web application with a CSV database",
- ..default()
- },
- Project {
- name: "jellything",
- status: Paused(Working),
- description: "(paused until accumulated technical dept is fixed) media streaming solution (similiar to jellyfin). supports on-the-fly remuxing and federated content.",
- ..default()
- },
- Project {
- name: "pfadfinder",
- status: Paused(Working),
- description: "parallel anytime A* for openstreetmap with custom frontend and integration into the existing one.",
- ..default()
- },
- Project {
- name: "video-codec-experiments",
- status: Paused(Working),
- description: "a few attempts of creating my own video codecs, making use of motion compensation, dct, quantization and more. ",
- ..default()
- },
- Project {
- name: "pixelflut tools",
- status: Paused(Working),
- description: "the programs I hacked together when playing pixelflut. includes GPU-acceleration for updating the canvas with minimal bandwidth usage.",
- ..default()
- },
- Project {
- name: "attocc",
- status: Paused(Unfinished),
- description: "minimal C compiler in C",
- ..default()
- },
- Project {
- name: "trash-proxy",
- status: Maintained,
- description: "A minecraft reverse proxy for offline authentification.",
- ..default()
- },
- Project {
- name: "voxelwagen",
- status: Paused(Unfinished),
- description: "voxel game engine made from scratch; made to host an automation game.",
- repo_link: Some("https://codeberg.org/voxelwagen/voxelwagen"),
- ..default()
- },
- Project {
- name: "reCYCLING",
- status: Developing,
- description: "A fun CAPTCHA solution",
- ..default()
- },
- Project {
- name: "keckup",
- status: Maintained,
- description: "Backup utility that traverses the filesystem while applying .gitignore and .backupignore files",
- ..default()
- },
- Project {
- name: "ebml-struct",
- status: Maintained,
- description: "EBML parser and generator library with integrated Matroska types implemented in Rust without proc macros",
- ..default()
- },
-];
-pub const EXTRA_PROJECTS: &'static [Project] = &[
- Project {
- name: "mond",
- status: Paused(Unfinished),
- description: "server monitoring software, no much code written so far",
- ..default()
- },
- Project {
- name: "infra",
- status: Paused(Working),
- description: "multi-system installation manager. allows to centrally manage installations with a single configuration in form of a rust DSL",
- ..default()
- },
- Project {
- name: "pbot",
- status: Developing,
- description: "Opinionated rust library for writing high-level chatbots that concurrently run on multiple messengers.",
- ..default()
- },
- Project {
- name: "karlender",
- status: Paused(Working),
- description: " a personal calender suite consisting of a daemon, a graphical and a command-line user interface. supports very flexible condition based recurring tasks and automatic scheduling so you dont need to decide.",
- ..default()
- },
- Project {
- name: "bad-editor",
- status: Paused(Unfinished),
- description: "A really bad editor",
- ..default()
- },
- Project {
- name: "cosu",
- status: Paused(Unfinished),
- description: "a simple fast osu! client in c (not nearly a working client yet)",
- ..default()
- },
- Project {
- name: "sprakc",
- status: Abandoned(Working),
- description: "A compiler from c++ to sprak",
- ..default()
- },
- Project {
- name: "sprak-runtime",
- status: Abandoned(Working),
- description: "",
- ..default()
- },
- Project {
- name: "ehb-data",
- status: Abandoned(Working),
- description: "",
- ..default()
- },
- Project {
- name: "sgf",
- status: Unknown,
- description: "",
- ..default()
- },
- Project {
- name: "circuit-simulator",
- status: Unknown,
- description: "",
- ..default()
- },
- Project {
- name: "metabot",
- status: Paused(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "website",
- status: Maintained,
- description: "",
- ..default()
- },
- Project {
- name: "ld49",
- status: Abandoned(Unfinished),
- description: "Ludum dare 49",
- ..default()
- },
- Project {
- name: "bot-game",
- status: Unknown,
- description: "",
- ..default()
- },
- Project {
- name: "game-platform",
- status: Unknown,
- description: "",
- ..default()
- },
- Project {
- name: "simple-game-engine",
- status: Paused(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "voice-control",
- status: Paused(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "libreverse-old",
- status: Abandoned(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "golf-lang",
- status: Abandoned(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "mumble-music",
- status: Paused(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "muon",
- status: Paused(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "libresyncedvideoplayer",
- status: Unknown,
- description: "",
- ..default()
- },
- Project {
- name: "fireworks",
- status: Abandoned(Unfinished),
- description: "Fireworks with Three.js",
- ..default()
- },
- Project {
- name: "bj1",
- status: Unknown,
- description: "",
- ..default()
- },
- Project {
- name: "so-survey",
- status: Paused(Working),
- description: "Some code for processing the stackoverflow developer survey's results",
- ..default()
- },
- Project {
- name: "rubberkeys",
- status: Abandoned(Working),
- description: "",
- ..default()
- },
- Project {
- name: "lunar-lander",
- status: Abandoned(Working),
- description: "",
- ..default()
- },
- Project {
- name: "molecule-viewer",
- status: Paused(Working),
- description: "Web application to visualize layout of molecules",
- ..default()
- },
- Project {
- name: "oxelpot",
- status: Paused(Working),
- description: "text-board service using pure html on the client",
- ..default()
- },
- Project {
- name: "CUBE",
- status: Abandoned(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "godot-mumble-link",
- status: Paused(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "libreverse-server",
- status: Unknown,
- description: "2d multiplayer game engine server",
- ..default()
- },
- Project {
- name: "twclient",
- status: Paused(Unfinished),
- description: "A teeworlds client in rust, based on libtw2",
- ..default()
- },
- Project {
- name: "minetest_meta_uhc",
- status: Paused(Unfinished),
- description: "ultra hardcore mod for minetest with decreasing border size",
- ..default()
- },
- Project {
- name: "guitar-chords",
- status: Paused(Unfinished),
- description: "",
- ..default()
- },
- Project {
- name: "gnu-netcat",
- status: Paused(Working),
- description: "Mirror of the “GNU“ netcat utility (imported from CVS)",
- ..default()
- },
- Project {
- name: "stonk-game",
- status: Abandoned(Unfinished),
- description: "simple game to compete in trading stocks",
- ..default()
- },
- Project {
- name: "pw-patchbay",
- status: Paused(Working),
- description: "Tool to setup links for pipewire",
- ..default()
- },
- Project {
- name: "desterr",
- status: Maintained,
- description: "dead simple tool to distinguish stderr and stdout",
- ..default()
- },
- Project {
- name: "staticwiki",
- status: Paused(Working),
- description: "tools to convert MediaWiki XML dumps to static HTML pages",
- ..default()
- },
- Project {
- name: "trash-map",
- status: Paused(Working),
- description: "A minecraft map renderer",
- ..default()
- },
- Project {
- name: "acoustsearch",
- status: Paused(Unfinished),
- description: "Search the acoustid database locally.",
- ..default()
- },
- Project {
- name: "meta_shell",
- status: Paused(Unfinished),
- description: "Simple wayland shell only including a status dock.",
- ..default()
- },
- Project {
- name: "3d-frame-interpolation",
- status: Paused(Working),
- description: "",
- ..default()
- },
- Project {
- name: "librelambda",
- status: Paused(Working),
- description: "A lambda calculus \"solver\".",
- ..default()
- },
- Project {
- name: "automato",
- status: Paused(Unfinished),
- description: "A minimal, gridless automation game.",
- ..default()
- },
-];
-
-const fn default() -> Project {
- Project {
- name: "",
- status: super::Status::Unknown,
- description: "",
- link: None,
- repo_link: None,
- }
-}
diff --git a/src/projects/mod.rs b/src/projects/mod.rs
deleted file mode 100644
index afb275f..0000000
--- a/src/projects/mod.rs
+++ /dev/null
@@ -1,88 +0,0 @@
-use self::data::{EXTRA_PROJECTS, PROJECTS};
-use crate::layout::{DynScaffold, Scaffold};
-use markup::Render;
-use rocket::get;
-
-pub mod data;
-
-#[get("/projects")]
-pub fn r_projects() -> DynScaffold<'static> {
- Scaffold {
- title: "projects".to_string(),
- content: markup::new! {
- p { "I am starting a lot of projects - this page lists some of them." }
- p {
- "Starting so many means, that most of then are not maintained or not even properly developed. "
- "Here is a quick reference to what I define the status of a project to be: "
- }
- ol {
- li { @Status::Planned.render() ": No code has been written yet." }
- li { @Status::Developing.render() ": Project is under active development." }
- li { @Status::Maintained.render() ": Project is in a working state and receives regular updates." }
- li { @Status::Paused(State::Working).render() @Status::Paused(State::Unfinished).render() ": Project has been discontinued for an unspecified amount of time, but might be resumed if i feel like it." }
- li { @Status::Abandoned(State::Working).render() @Status::Abandoned(State::Unfinished).render() ": Project has been discontinued and will likely not ever be continued." }
- li { @Status::Unknown.render() ": I have not bothered to write down the status" }
- }
- ul { @for p in PROJECTS { li { @p } } }
- details { summary { "Other not-so-important projects" }
- ul { @for p in EXTRA_PROJECTS { li { @p } } }
- }
- },
- }
-}
-
-#[derive(Debug, Clone, Copy)]
-pub enum State {
- Working,
- Unfinished,
-}
-
-#[derive(Debug, Clone, Copy)]
-pub enum Status {
- Unknown,
- Planned,
- Developing,
- Paused(State),
- Maintained,
- Abandoned(State),
-}
-
-markup::define! { Project(
- name: &'static str,
- status: Status,
- description: &'static str,
- link: Option<&'static str>,
- repo_link: Option<&'static str>
-) {
- b { @name }
- @status.render()
- ": " @description
- " ("
- @if let Some(link) = link {
- a[href=link] "Project page"
- ", "
- }
- @let fallback = format!("https://codeberg.org/metamuffin/{name}");
- a[href=repo_link.unwrap_or(&fallback)] "Source code"
- ")"
-}}
-
-impl Status {
- fn ident(self) -> &'static str {
- match self {
- Status::Unknown => "unknown",
- Status::Planned => "planned",
- Status::Developing => "developing",
- Status::Maintained => "maintained",
- Status::Paused(State::Unfinished) => "paused-unfinished",
- Status::Paused(State::Working) => "paused-working",
- Status::Abandoned(State::Unfinished) => "abandoned-unfinished",
- Status::Abandoned(State::Working) => "abandoned-working",
- }
- }
- pub fn render(self) -> impl Render {
- markup::new! {
- div[class=format!("status status-{}", self.ident())] { @format!("{self:?}") }
- }
- }
-}