pollymc/libraries/README.md
kumquat-ir c07fff7503 switch to qdcss for parsing
make it not horrible to look at

Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-02-12 17:23:15 -05:00

151 lines
3.9 KiB
Markdown

# Third-party libraries
This folder has third-party or otherwise external libraries needed for other parts to work.
## filesystem
Gulrak's implementation of C++17 std::filesystem for C++11 /C++14/C++17/C++20 on Windows, macOS, Linux and FreeBSD.
See [github repo](https://github.com/gulrak/filesystem).
MIT licensed.
## gamemode
A performance optimization daemon.
See [github repo](https://github.com/FeralInteractive/gamemode).
BSD-3-Clause licensed
## cmark
The C reference implementation of CommonMark, a standardized Markdown spec.
See [github_repo](https://github.com/commonmark/cmark).
BSD2 licensed.
## javacheck
Simple Java tool that prints the JVM details - version and platform bitness.
Do what you want with it. It is so trivial that noone cares.
## Katabasis
Oauth2 library customized for Microsoft authentication.
This is a fork of the [O2 library](https://github.com/pipacs/o2).
MIT licensed.
## launcher
Java launcher part for Minecraft.
It does the following:
- Waits for a launch script on stdin.
- Consumes the launch script you feed it.
- Proceeds with launch when it gets the `launcher` command.
If "abort" is sent, the process will exit.
This means the process is essentially idle until the final command is sent. You can, for example, attach a profiler before you send it.
The `standard` and `legacy` launchers are available.
- `standard` can handle launching any Minecraft version, at the cost of some extra features `legacy` enables (custom window icon and title).
- `legacy` is intended for use with Minecraft versions < 1.6 and is deprecated.
Example (some parts have been censored):
```
mod legacyjavafixer-1.0
mainClass net.minecraft.launchwrapper.Launch
param --username
param CENSORED
param --version
param Prism Launcher
param --gameDir
param /home/peterix/minecraft/FTB/17ForgeTest/minecraft
param --assetsDir
param /home/peterix/minecraft/mmc5/assets
param --assetIndex
param 1.7.10
param --uuid
param CENSORED
param --accessToken
param CENSORED
param --userProperties
param {}
param --userType
param mojang
param --tweakClass
param cpw.mods.fml.common.launcher.FMLTweaker
windowTitle Prism Launcher: 172ForgeTest
windowParams 854x480
userName CENSORED
sessionId token:CENSORED:CENSORED
launcher standard
```
Available under `GPL-3.0-only` (with classpath exception), sublicensed from its original `Apache-2.0` codebase
## libnbtplusplus
libnbt++ is a free C++ library for Minecraft's file format Named Binary Tag (NBT). It can read and write compressed and uncompressed NBT files and provides a code interface for working with NBT data.
See [github repo](https://github.com/ljfa-ag/libnbtplusplus).
Available either under LGPL version 3 or later.
## LocalPeer
Library for making only one instance of the application run at all times.
BSD licensed, derived from [QtSingleApplication](https://github.com/qtproject/qt-solutions/tree/master/qtsingleapplication).
Changes are made to make the code more generic and useful in less usual conditions.
## murmur2
Canonical implementation of the murmur2 hash, taken from [SMHasher](https://github.com/aappleby/smhasher).
Public domain (the author disclaimed the copyright).
## quazip
A zip manipulation library.
LGPL 2.1 with linking exception.
## rainbow
Color functions extracted from [KGuiAddons](https://inqlude.org/libraries/kguiaddons.html). Used for adaptive text coloring.
Available either under LGPL version 2.1 or later.
## systeminfo
A Prism Launcher-specific library for probing system information.
Apache 2.0
## tomlplusplus
A TOML language parser. Used by Forge 1.14+ to store mod metadata.
See [github repo](https://github.com/marzer/tomlplusplus).
Licenced under the MIT licence.
## qdcss
A quick and dirty css parser, used by NilLoader to store mod metadata.
Translated (and heavily trimmed down) from [the original Java code](https://github.com/unascribed/NilLoader/blob/trunk/src/main/java/nilloader/api/lib/qdcss/QDCSS.java) from NilLoader
Licensed under LGPL version 3.