aboutsummaryrefslogtreecommitdiff
path: root/README.rst
blob: d2e0c6ccc0c3d02f4dc1174b1fc910cb0347823a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
.. raw:: html

  <p align="center">
    <a href="https://github.com/Whirlsplash/whirl">
      <img
        src="https://raw.githubusercontent.com/Whirlsplash/assets/master/Whirl.png"
        alt="Whirl"
        width="200">
    </a>
  </p>
  <h1 align="center">Whirl: The Open-Source WorldServer</h1>
  <h3 align="center">A Worlds United</h3>

  <br>

  <p align="center">

.. raw:: html

  </p>

Whirl is an open-source implementation of `Worlds <https://www.worlds.com/>`_'
`WorldServer <http://dev.worlds.net/private/GammaDocs/WorldServer.html>`_
protocol, written in the modern and safe `Rust <https://www.rust-lang.org/>`_.

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 alive 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 <https://whirlsplash.org/docs/>`_.

If you are looking for explicit documentation of only Whirl's source code, you
may generate them yourself be cloning the repository and running the `doc` Cargo
subcommand:

.. code-block:: shell

  $ cargo +nightly doc --open --document-private-items --no-deps # or `cargo make gen-docs`

Development Dependencies
------------------------

Required
~~~~~~~~

- `Rust <https://www.rust-lang.org/>`_ — The backbone of it all.
- `diesel\_cli <https://crates.io/crates/diesel_cli>`_ — Database migrations, setup, et cetera
- `cargo-make <https://github.com/sagiegurari/cargo-make>`_ — Cross-platform
  `make <https://www.gnu.org/software/make/>`_ substitute

Optional
~~~~~~~~

- `cargo-watch <https://crates.io/crates/cargo-watch>`_ — Recompilation on file-system changes
- `sqlfluff <https://github.com/sqlfluff/sqlfluff>`_ — SQL linting
- `Valgrind <https://www.valgrind.org/>`_ — Benchmarking

Licence
~~~~~~~

This project is licensed with the `GNU General Public License v3.0 <./LICENSE>`_.