.. raw:: html
The Open-Source WorldServer
A Worlds united
.. image:: https://img.shields.io/discord/821938182274154506
:alt: Discord
:target: https://discord.com/invite/8hn6padWF6
.. image:: https://www.codefactor.io/repository/github/whirlsplash/whirl/badge
:alt: CodeFactor
:target: https://www.codefactor.io/repository/github/whirlsplash/whirl
.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg
:alt: Say Thanks
:target: https://saythanks.io/to/fuwnzy@gmail.com
.. image:: https://img.shields.io/github/license/Whirlsplash/whirl
:alt: License
:target: ./LICENSE
.. raw:: html
Whirl, an open-source implementation of the
`WorldServer `_
protocol in `Rust `_.
Purpose
-------
Two *main* reasons;
1. Worlds' official servers are old, slowly deteriorating, and *probably* unmaintained.
2. Worlds is **old**; the shutdown of the servers is inevitable.
**TLDR**: To keep Worlds' legacy going for future generations.
Usage
-----
Use in production environments is **not** recommended as this project is currently under heavy
development.
As stability increases, periodic updates regarding production use will be released (via Discord or
blog).
Documentation
-------------
Documentation about the entire Whirlsplash ecosystem can be found
`here `_.
If you are looking for explicit documentation of only Whirl's source code, you
must generate them yourself be cloning the repository and running the Cargo
subcommand;
.. code-block:: shell
$ cargo +nightly doc --open --document-private-items --no-deps # or `cargo make gen-docs`
Known Issues
------------
- https://github.com/Whirlsplash/whirl/issues/2
Contributing
------------
Please reference the `contribution guidelines <./CONTRIBUTING.md>`_ of this repository.
Development Dependencies
------------------------
Required
~~~~~~~~
- `Rust `_ — The backbone of it all.
- `diesel\_cli `_ — Database migrations, setup, et cetera
- `cargo-make `_ — Cross-platform
`make `_ substitute
Optional
~~~~~~~~
- `cargo-watch `_ — Recompilation on file-system changes
- `sqlfluff `_ — SQL linting
- `Valgrind `_ — Benchmarking
*These development dependencies (excluding sqlfluff) will automatically be satisfied if you are
using the Nix shell configuration as provided.*
Benchmarking
------------
For the time being; benchmarking is only available for \*nix-based environments as the benchmarking
utility currently in place, `Iai `_, has a hard dependency on
`Valgrind `_ which is only accessible within \*nix-based environments.
More so, the current benchmarks which have been set-up do not cover the full extent of Whirl, but a
small portion of the crates which make up Whirl as a whole. In the future, benchmarks may be
expanded upon.
To execute the available benchmarks, use the following Cargo subcommand;
.. code-block:: shell
$ cargo bench
License
~~~~~~~
`GNU General Public License v3.0 <./LICENSE>`_