summaryrefslogtreecommitdiff
path: root/docs/handbook/Project-Tick/glossary.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/handbook/Project-Tick/glossary.md')
-rw-r--r--docs/handbook/Project-Tick/glossary.md556
1 files changed, 556 insertions, 0 deletions
diff --git a/docs/handbook/Project-Tick/glossary.md b/docs/handbook/Project-Tick/glossary.md
new file mode 100644
index 0000000000..cca34ef3c9
--- /dev/null
+++ b/docs/handbook/Project-Tick/glossary.md
@@ -0,0 +1,556 @@
+# Project Tick — Glossary
+
+## A
+
+### Adler-32
+A checksum algorithm designed by Mark Adler, used in the zlib data format.
+neozip provides SIMD-accelerated implementations of Adler-32 via architecture-
+specific intrinsics (SSE4.2, AVX2, NEON, VMX).
+
+### AMQP (Advanced Message Queuing Protocol)
+A wire-level protocol for message-oriented middleware. tickborg uses AMQP
+(via RabbitMQ) to receive build requests from GitHub webhooks and dispatch
+them to worker nodes.
+
+### AppImage
+A portable Linux application format that bundles all dependencies into a
+single executable file. MeshMC distributes Linux releases as AppImages.
+
+### Autotools
+A build system suite (autoconf, automake, libtool) used by several
+sub-projects including genqrcode. The `./autogen.sh` script bootstraps
+the build, producing `configure` and `Makefile.in`.
+
+### AUR (Arch User Repository)
+A community-driven repository for Arch Linux packages. MeshMC publishes a
+PKGBUILD to the AUR for Arch users.
+
+### AVX2 / AVX-512
+Advanced Vector Extensions — x86 SIMD instruction sets providing 256-bit and
+512-bit vector operations. neozip uses AVX2 for accelerated CRC-32, Adler-32,
+and deflate hash chain insertion.
+
+---
+
+## B
+
+### Bazel
+An open-source build system from Google. json4cpp provides `BUILD.bazel` and
+`MODULE.bazel` files for Bazel-based builds as an alternative to CMake.
+
+### BSD License
+A permissive open-source license family. Project Tick uses BSD-1-Clause,
+BSD-2-Clause, BSD-3-Clause, and BSD-4-Clause across various components,
+primarily in corebinutils (FreeBSD-derived code).
+
+### BSL-1.0 (Boost Software License)
+A permissive license used by some utility code in the monorepo.
+
+---
+
+## C
+
+### Cargo
+The Rust package manager and build system. tickborg uses a Cargo workspace
+with two crates: `tickborg` and `tickborg-simple-build`.
+
+### CC-BY-SA-4.0
+Creative Commons Attribution-ShareAlike 4.0 International. Used for
+documentation content within the Project Tick monorepo.
+
+### CC0-1.0
+Creative Commons Zero. A public domain dedication used for trivial
+configuration files and metadata.
+
+### CGI (Common Gateway Interface)
+A protocol for web servers to execute programs and return their output. cgit
+is a CGI application that generates HTML from Git repositories.
+
+### cgit
+A fast, lightweight web interface for Git repositories, written in C. The
+Project Tick fork includes UI customizations and is linked against a bundled
+Git source tree.
+
+### CLA (Contributor License Agreement)
+A legal agreement between a contributor and the project. Project Tick uses
+PT-CLA-2.0, which must be signed before contributions are accepted.
+
+### Clang
+The C/C++ compiler from the LLVM project. MeshMC requires Clang 18+ or
+equivalent. The Nix development shell provides LLVM 22 (Clang 22).
+
+### clang-format
+An automatic C/C++ code formatter. MeshMC's `.clang-format` defines the
+project's formatting rules, enforced by CI.
+
+### clang-tidy
+A C/C++ static analysis tool. MeshMC's `.clang-tidy` configures enabled
+checks. CI runs clang-tidy as part of the lint stage.
+
+### CMake
+A cross-platform build system generator. The primary build system for MeshMC,
+neozip, json4cpp, libnbtplusplus, genqrcode, cmark, and MNV. Project Tick
+requires CMake 3.28+ for MeshMC.
+
+### CMake Presets
+A JSON-based configuration file (`CMakePresets.json`) that defines named sets
+of CMake configure, build, and test options. MeshMC uses presets for each
+target platform.
+
+### CODEOWNERS
+A GitHub feature that maps file paths to responsible reviewers. Project Tick's
+`.github/CODEOWNERS` routes all reviews to `@YongDo-Hyun`.
+
+### CodeQL
+GitHub's semantic code analysis engine for finding security vulnerabilities.
+Configured in `.github/codeql/` for C, C++, and Java scanning.
+
+### cmark
+A standard-compliant CommonMark Markdown parser written in C. Licensed under
+BSD-2-Clause. Provides both a library and a CLI tool.
+
+### CommonMark
+A strongly-defined specification for Markdown syntax. cmark is the reference
+C implementation of the CommonMark spec.
+
+### Conventional Commits
+A commit message convention: `type(scope): description`. The CI lint stage
+(`ci/github-script/lint-commits.js`) enforces this convention.
+
+### corebinutils
+A collection of core Unix utilities ported from FreeBSD. Provides minimal
+implementations of commands like `cat`, `ls`, `cp`, `mv`, `rm`, `mkdir`,
+`chmod`, `echo`, `kill`, `ps`, and 30+ others.
+
+### Coverity
+A commercial static analysis tool. Some sub-projects include Coverity scan
+integration in their CI workflows.
+
+### CRC-32
+Cyclic Redundancy Check with a 32-bit output. Used in gzip, PNG, and other
+formats. neozip provides SIMD-accelerated CRC-32 using PCLMULQDQ (x86),
+PMULL (ARM), and hardware instructions on s390x.
+
+### Crowdin
+A localization management platform. MeshMC uses Crowdin for translation
+management (`launcher/translations/`).
+
+### CurseForge
+A Minecraft mod hosting platform. MeshMC integrates with CurseForge for mod
+discovery and installation via `launcher/modplatform/`.
+
+---
+
+## D
+
+### DCO (Developer Certificate of Origin)
+A lightweight alternative to a CLA. Contributors certify their right to
+submit code by adding `Signed-off-by:` to commit messages (`git commit -s`).
+Enforced by `.github/dco.yml`.
+
+### Deflate
+A lossless compression algorithm combining LZ77 and Huffman coding. neozip
+provides multiple deflate strategies: fast, medium, slow (best), quick,
+huffman-only, RLE, and stored.
+
+### DFLTCC (Deflate Conversion Call)
+A hardware instruction on IBM z15+ mainframes (s390x) that performs deflate
+compression/decompression in hardware. neozip supports DFLTCC via
+`arch/s390/`.
+
+### direnv
+A shell extension that loads environment variables from `.envrc` files.
+Project Tick uses direnv with Nix (`use flake`) for automatic development
+environment activation.
+
+### Docker / Containerfile
+Container image build specifications. images4docker provides 40 Dockerfiles
+for CI build environments. MeshMC includes a `Containerfile` for container
+builds.
+
+---
+
+## E
+
+### ECM (Extra CMake Modules)
+A set of additional CMake modules provided by the KDE project. Required as a
+build dependency for MeshMC.
+
+---
+
+## F
+
+### Fabric
+A lightweight Minecraft mod loader. MeshMC supports Fabric modding via
+`launcher/modplatform/`. The meta generator produces Fabric version metadata
+(`generate_fabric.py`).
+
+### Flake (Nix)
+A Nix feature that provides reproducible, hermetic project definitions. The
+root `flake.nix` defines the development shell with LLVM 22, Qt 6, and all
+build dependencies.
+
+### Flatpak / Flathub
+A Linux application sandboxing and distribution system. MeshMC is published
+on Flathub after release.
+
+### Forge (Minecraft Forge)
+A Minecraft mod loader for modifying the game. forgewrapper provides a Java
+shim using SPI (Service Provider Interface) for Forge's boot process.
+
+### ForgeWrapper
+A Java library that uses JPMS (Java Platform Module System) and SPI to
+integrate with Minecraft Forge's installer/detector mechanism. Located at
+`forgewrapper/`.
+
+### FreeBSD
+A Unix-like operating system. corebinutils contains utilities ported from
+FreeBSD's coreutils.
+
+### Fuzz Testing
+A testing technique that provides random/malformed inputs to find crashes and
+vulnerabilities. neozip, cmark, meta, and tomlplusplus include fuzz testing
+targets.
+
+---
+
+## G
+
+### Garnix
+A CI platform for Nix projects. The meta sub-project uses Garnix
+(`meta/garnix.yaml`).
+
+### genqrcode
+A C library for generating QR codes. Supports all QR code versions (1–40),
+multiple error correction levels (L/M/Q/H), and various encoding modes
+(numeric, alphanumeric, byte, kanji, ECI).
+
+### GHCR (GitHub Container Registry)
+GitHub's container image registry. images4docker images are pushed to GHCR.
+
+### GPL (GNU General Public License)
+A copyleft license family. Project Tick uses GPL-2.0-only (cgit),
+GPL-3.0-only (archived projects), and GPL-3.0-or-later (MeshMC,
+images4docker).
+
+### Gradle
+A build automation tool for JVM projects. forgewrapper uses Gradle with the
+Gradle Wrapper (`gradlew`).
+
+---
+
+## H
+
+### Huffman Coding
+A lossless data compression algorithm using variable-length codes. neozip's
+`trees.c` implements Huffman tree construction for the deflate algorithm.
+
+---
+
+## I
+
+### images4docker
+A collection of 40 Dockerfiles providing CI build environments for every
+supported Linux distribution. Qt 6 is a mandatory dependency in all images.
+Images are rebuilt daily at 03:17 UTC.
+
+---
+
+## J
+
+### JPMS (Java Platform Module System)
+Introduced in Java 9 (Project Jigsaw), JPMS provides a module system for
+Java. forgewrapper uses JPMS configuration (`jigsaw/`) for proper module
+encapsulation.
+
+### json4cpp
+A fork of nlohmann/json — a header-only JSON library for C++. Licensed under
+MIT. Provides SAX and DOM parsing, serialization, JSON Pointer, JSON Patch,
+JSON Merge Patch, and CBOR/MessagePack/UBJSON/BSON support.
+
+---
+
+## L
+
+### lefthook
+A fast, cross-platform Git hooks manager. Configured in `lefthook.yml` to
+run REUSE lint and checkpatch on pre-commit.
+
+### LGPL (GNU Lesser General Public License)
+A copyleft license that permits linking from proprietary code.
+libnbtplusplus uses LGPL-3.0, genqrcode uses LGPL-2.1.
+
+### libnbtplusplus
+A C++ library for reading and writing Minecraft's NBT (Named Binary Tag)
+format. Used by MeshMC to parse and modify Minecraft world data.
+
+### LLVM
+A compiler infrastructure providing Clang, LLD, and other tools. Project
+Tick's Nix development shell provides LLVM 22.
+
+### Lua
+A lightweight scripting language. cgit uses Lua for content filtering
+(`filter.c`).
+
+### LZ77
+A lossless compression algorithm that replaces repeated occurrences with
+references (length, distance pairs). The foundation of the deflate algorithm
+implemented in neozip.
+
+---
+
+## M
+
+### Make (GNU Make)
+A build automation tool. Used by cgit, corebinutils, and cmark. cgit uses
+a plain Makefile, while corebinutils uses GNUmakefile.
+
+### MeshMC
+The primary application in the Project Tick ecosystem. A custom Minecraft
+launcher written in C++23 with Qt 6, supporting multiple mod loaders,
+instance management, and cross-platform deployment.
+
+### Meson
+A build system focused on speed and simplicity. tomlplusplus uses Meson as
+its primary build system.
+
+### MIT License
+A permissive open-source license. Used by json4cpp, tomlplusplus,
+forgewrapper, tickborg, and archived/projt-minicraft-modpack.
+
+### MNV
+A fork of the Vim text editor with modern enhancements. Written in C, built
+with CMake or Autotools.
+
+### Modrinth
+A Minecraft mod hosting platform. MeshMC integrates with Modrinth for mod
+discovery and installation.
+
+### Mojang
+The developer of Minecraft. meta generates Mojang version metadata
+(`generate_mojang.py`).
+
+### MS-PL (Microsoft Public License)
+An open-source license used by the meta sub-project.
+
+### MSVC (Microsoft Visual C++)
+Microsoft's C/C++ compiler. MeshMC requires MSVC 17.10+ (Visual Studio 2022)
+for Windows builds.
+
+### musl
+A lightweight C standard library implementation for Linux. Some neozip CI
+builds test against musl for static linking compatibility.
+
+---
+
+## N
+
+### NBT (Named Binary Tag)
+A binary format used by Minecraft for storing structured data (worlds,
+entities, items). libnbtplusplus provides C++ types for all NBT tag types:
+`tag_byte`, `tag_short`, `tag_int`, `tag_long`, `tag_float`, `tag_double`,
+`tag_string`, `tag_byte_array`, `tag_list`, `tag_compound`,
+`tag_int_array`, `tag_long_array`.
+
+### NEON
+ARM's SIMD instruction set for 128-bit vector operations. neozip uses NEON
+for accelerated CRC-32, Adler-32, and slide hash on AArch64.
+
+### NeoForge
+A community fork of Minecraft Forge. MeshMC supports NeoForge modding. The
+meta generator produces NeoForge version metadata (`generate_neoforge.py`).
+
+### neozip
+Project Tick's fork of zlib-ng, a high-performance zlib replacement with
+SIMD acceleration across x86, ARM, Power, s390x, RISC-V, and LoongArch
+architectures. Licensed under the Zlib license.
+
+### Nix
+A purely functional package manager. Project Tick uses Nix flakes for
+reproducible development environments, CI tooling, and package builds.
+
+### nixpkgs
+The Nix package collection. CI pins a specific nixpkgs revision in
+`ci/pinned.json` for reproducible builds.
+
+### NSIS (Nullsoft Scriptable Install System)
+A Windows installer creation tool. MNV uses NSIS (`mnv/nsis/`) for Windows
+distribution.
+
+---
+
+## O
+
+### ofborg
+The upstream project from which tickborg is forked. A CI system for the
+Nixpkgs package repository that processes GitHub events via AMQP.
+
+---
+
+## P
+
+### PCLMULQDQ
+An x86 instruction for carry-less multiplication used to accelerate CRC-32
+computation. neozip uses PCLMULQDQ via `arch/x86/`.
+
+### PKGBUILD
+An Arch Linux package build script. MeshMC maintains a PKGBUILD for AUR
+distribution.
+
+### PMULL
+An ARM instruction for polynomial multiplication, used for CRC-32
+acceleration on AArch64. neozip's ARM CRC implementation uses PMULL.
+
+### Poetry
+A Python dependency management and packaging tool. The meta sub-project uses
+Poetry (`meta/pyproject.toml`, `meta/poetry.lock`).
+
+### PR (Pull Request)
+A GitHub mechanism for proposing code changes. All changes to protected
+branches must go through PRs with passing CI and review approval.
+
+---
+
+## Q
+
+### QR Code (Quick Response Code)
+A two-dimensional barcode format. genqrcode generates QR codes supporting
+versions 1–40, four error correction levels (L/M/Q/H), and multiple encoding
+modes.
+
+### Qt 6
+A cross-platform application framework. MeshMC uses Qt 6 for its GUI
+(widgets, dialogs, themes). Qt 6 is a mandatory dependency across all
+images4docker build environments.
+
+### Quilt
+A Minecraft mod loader forked from Fabric. MeshMC supports Quilt modding. The
+meta generator produces Quilt version metadata (`generate_quilt.py`).
+
+---
+
+## R
+
+### RabbitMQ
+An AMQP message broker. tickborg connects to RabbitMQ to receive build
+requests dispatched from GitHub webhooks.
+
+### Reed-Solomon
+An error-correcting code used in QR codes. genqrcode implements Reed-Solomon
+error correction in `rsecc.c`.
+
+### Renovate
+An automated dependency update bot. Configured in `meta/renovate.json`.
+
+### REUSE
+A specification from the FSFE (Free Software Foundation Europe) for
+expressing license and copyright information. Project Tick's `REUSE.toml`
+maps every file path to its SPDX license identifier.
+
+### RISC-V
+An open-source instruction set architecture. neozip includes RISC-V SIMD
+optimizations via the RVV (Vector) and ZBC (Carry-less Multiply) extensions
+in `arch/riscv/`.
+
+---
+
+## S
+
+### Scoop
+A Windows package manager. `bootstrap.cmd` uses Scoop to install
+dependencies on Windows.
+
+### Semgrep
+A pattern-based static analysis tool for security scanning. Some CI workflows
+include Semgrep scans.
+
+### SemVer (Semantic Versioning)
+A versioning scheme: `MAJOR.MINOR.PATCH`. MAJOR for breaking changes, MINOR
+for backwards-compatible features, PATCH for bug fixes.
+
+### SIMD (Single Instruction, Multiple Data)
+A parallel processing technique. neozip heavily uses SIMD for performance-
+critical operations: SSE2/SSE4.2/AVX2/AVX-512 (x86), NEON (ARM), VMX/VSX
+(Power), DFLTCC (s390x), RVV (RISC-V), LSX/LASX (LoongArch).
+
+### SPI (Service Provider Interface)
+A Java API pattern for extensibility. forgewrapper uses SPI via
+`IFileDetector.java` to integrate with Forge's installer mechanism.
+
+### SPDX (Software Package Data Exchange)
+A standard for communicating software license information. All Project Tick
+licenses use SPDX identifiers. The `LICENSES/` directory contains full SPDX-
+named license text files.
+
+### SSE (Streaming SIMD Extensions)
+x86 SIMD instruction sets (SSE2, SSE4.2). neozip uses SSE for baseline
+SIMD acceleration on x86 platforms.
+
+---
+
+## T
+
+### tickborg
+Project Tick's CI bot, forked from ofborg. A Rust application that listens on
+AMQP for build requests and executes them. Bot commands: `@tickbot build`,
+`@tickbot test`, `@tickbot eval`.
+
+### TOML (Tom's Obvious Minimal Language)
+A configuration file format. tomlplusplus is a C++17 header-only TOML parser
+and serializer supporting TOML v1.0.0.
+
+### tomlplusplus
+A header-only C++17 TOML library. Licensed under MIT. Provides parsing,
+serialization, and manipulation of TOML documents. Built with Meson or CMake.
+
+### treefmt
+A universal code formatter dispatcher. Configured in `ci/default.nix` to run
+all language-specific formatters in a single pass.
+
+---
+
+## U
+
+### Unlicense
+A public domain dedication license. Used for some trivial files in the
+monorepo.
+
+---
+
+## V
+
+### vcpkg
+Microsoft's C/C++ package manager. MeshMC uses vcpkg for Windows dependency
+management (`meshmc/vcpkg.json`, `meshmc/vcpkg-configuration.json`).
+
+### Vim
+A highly configurable text editor. MNV is a fork of Vim with additional
+features. Licensed under the Vim license + GPL-3.0.
+
+### VMX / VSX
+IBM Power architecture SIMD instruction sets (Vector Multimedia Extension /
+Vector Scalar Extension). neozip uses VMX/VSX for Power8/9 acceleration.
+
+---
+
+## W
+
+### WSL (Windows Subsystem for Linux)
+A compatibility layer for running Linux on Windows. Project Tick does **not**
+support building under WSL; native Windows builds via MSVC are required.
+
+---
+
+## Z
+
+### zlib
+The original compression library implementing the deflate algorithm. neozip
+is a high-performance fork of zlib-ng, which itself is a modernized fork of
+zlib.
+
+### zlib-ng
+A modernized fork of zlib with SIMD optimizations. neozip is Project Tick's
+fork of zlib-ng with additional modifications.
+
+### Zlib License
+A permissive open-source license. Used by neozip and archived/ptlibzippy.