Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
305 commits
Select commit Hold shift + click to select a range
adeea23
fix: set default listening address to 0.0.0.0
Quozul May 30, 2025
eb8f49d
refactor: server and client
Quozul May 30, 2025
db4c298
refactor: handlers can now return a result
Quozul May 30, 2025
6c6390d
refactor: add prelude to minecraft_server crate
Quozul May 30, 2025
441a869
refactor: move keep alive to client
Quozul May 30, 2025
553dc18
refactor!: Move server list config to a dedicated section
Quozul May 31, 2025
2356a42
feat: add a setting to toggle online player count in server list
Quozul May 31, 2025
e670c9b
refactor: improve error handling when parsing configuration file
Quozul May 31, 2025
208e6b3
refactor: improve error handling when initializing socket
Quozul May 31, 2025
d0ba80b
feat: added welcome chat messages for clients prior to 1.19
Quozul May 31, 2025
7465080
feat: check if the client supports modern forwarding
Quozul May 31, 2025
e18c36a
chore: improve error display from handlers
Quozul May 31, 2025
96968f1
feat: add support for BungeeCord
Quozul May 31, 2025
baa4590
feat: add support for BungeeGuard
Quozul May 31, 2025
7c506fd
refactor: improved stability of packet_map by removing unwraps and an…
Quozul Jun 1, 2025
588f0cd
refactor: improved stability of registry construction by removing unw…
Quozul Jun 1, 2025
e0b8d09
chore(docker): update .dockerignore
Quozul Jun 5, 2025
28c4887
fix: worldgen/biome registry not being sent when running on windows
Quozul Jun 6, 2025
2765342
feat: add support for 1.21.6
Quozul Jun 1, 2025
79c5743
Merge pull request #13 from Quozul/feat/1.21.6-support
Quozul Jun 23, 2025
beb69e3
feat: add customizable game mode in configuration
Quozul Jun 24, 2025
9949ef4
refactor: improve dimension configuration serialization
Quozul Jun 24, 2025
10f7afa
refactor: add an error message when connection through proxy is refused
Quozul Jun 24, 2025
01374e5
feat: add command auto-completion when running behind a proxy (#16)
Quozul Jun 24, 2025
039dfc8
Create FUNDING.yml
Quozul Jun 25, 2025
71b8d28
fix: use correct biome index
Quozul Jun 28, 2025
a76c236
fix: correct implementation of palette container for 1.21.5+
Quozul Jun 28, 2025
3f4d3c0
fix: send correct dimension type for 1.20.5+
Quozul Jun 28, 2025
4bc8aa3
Merge pull request #18 from Quozul/fix/send-biome-dimension
Quozul Jun 28, 2025
bc25966
feat: add support for 1.21.7
Quozul Jun 30, 2025
6d9ca40
feat: docs website
Quozul Jul 2, 2025
4f18215
feat: add workflow to deploy docs website
Quozul Jul 2, 2025
ebbdd51
chore: use consistent yaml file extensions
Quozul Jul 2, 2025
3f65d47
chore: update readme to mention documentation website
Quozul Jul 2, 2025
c0e3ca8
fix: typo in minecraft version readme
Quozul Jul 2, 2025
1c7ad7f
refactor: move minecraft_server crate inside pico_limbo
Quozul Jul 4, 2025
83e1bf7
refactor: remove generic type from Server struct
Quozul Jul 4, 2025
f3bd496
refactor: remove unused interface ConnectedClients
Quozul Jul 4, 2025
d517872
chore(docs): Remove dead link from README
Quozul Jul 6, 2025
c7a09b2
chore(deps): Remove build script
Quozul Jul 6, 2025
b825c97
refactor(deps): move dependencies to workspace
Quozul Jul 6, 2025
9d8f177
refactor: rename server module
Quozul Jul 6, 2025
d4d3cd9
refactor(crate): Merge packet_serializer crate with minecraft_protocol
Quozul Jul 6, 2025
62c8fbd
fix: invalid login start packet between 1.19 and 1.20.1
Quozul Jul 12, 2025
b83bbe2
chore(docs): Update settings and supported versions pages
Quozul Jul 19, 2025
5b8f1ec
fix(nbt): Do not always serialize as dynamic list if possible for >=1…
Quozul Jul 19, 2025
3e5fe64
fix(packet): UUID is misencoded for <1.7.6
Quozul Jul 19, 2025
b510d79
fix(string): Invalid string decoding
Quozul Jul 19, 2025
21af8bc
feat(docs): Add CHANGELOG.md
Quozul Jul 19, 2025
8a4e367
fix(handshake): Accept -1 protocol version number
Quozul Jul 19, 2025
c03dcc7
feat: add support for 1.21.8
Quozul Jul 19, 2025
a0b1481
refactor(pvn): ProtocolVersion enum is now a repr(i32)
Quozul Jul 19, 2025
e8cd2e0
chore: update versioning scheme to include Minecraft version
Quozul Jul 19, 2025
55cbaf9
chore: release v1.3.1+mc1.21.8
Quozul Jul 19, 2025
63965ba
fix: keep alive not sending properly for 1.7.x
Quozul Jul 28, 2025
259fc83
chore: Add favicon to docs website
Quozul Jul 28, 2025
05d0ad5
fix: Replace spectator with creative game mode for 1.7.x
Quozul Jul 28, 2025
28b530a
chore: release v1.3.2+mc1.21.8
Quozul Jul 30, 2025
4a780d8
fix: specify correct latest tag for the Docker image in the docs
Quozul Aug 11, 2025
9d64003
chore(docs): Add Bedrock in docs' FAQ
Quozul Aug 11, 2025
2e5cfa6
fix: Shutdown signal is now properly handled on Docker
Quozul Aug 12, 2025
54e3ea5
chore: Force cargo to run as table in CI and use new Rust feature
Quozul Aug 12, 2025
17961fb
refactor(ping): Move ping feature into pico_limbo
Quozul Jul 19, 2025
f8ef366
chore: Enable clippy pendantic mode
Quozul Jul 20, 2025
a8f0f31
refactor: implement pico_binutils crate and update nbt to use it
Quozul Jul 20, 2025
8411ad7
feat: use pico_binutils for network packets
Quozul Jul 20, 2025
d463e3a
refactor: Simplify Velocity key integrity check
Quozul Jul 20, 2025
db1b322
refactor: Remove pico_ping utility crate and move pico_limbo to the root
Quozul Aug 13, 2025
d38af68
refactor: renamed nbt crate to pico_nbt
Quozul Aug 13, 2025
389ff18
refactor: Move ProtocolVersion to its own crate
Quozul Aug 15, 2025
60dc6d6
feat: Implement PacketReport struct
Quozul Aug 15, 2025
d4e9c0f
refactor: Rename PacketId trait to Identifiable
Quozul Aug 15, 2025
562a525
feat: Compile-time packet reports
Quozul Aug 15, 2025
dbf3b81
refactor: Merge RegistryDataCodec and RegistryData packets
Quozul Aug 16, 2025
25ce8ee
refactor: Merge registry construction into one public function
Quozul Aug 16, 2025
cb6f995
refactor: Pre-compile registries and related data
Quozul Aug 16, 2025
d65086c
chore: Add unit tests for handshake packet handler and bungee cord check
Quozul Aug 20, 2025
5b57d88
chore: Add unit tests for status packets handler
Quozul Aug 20, 2025
00a555c
chore: Update Cargo dependencies
Quozul Aug 20, 2025
9c6178c
fix: Add proper packet reports for Any version
Quozul Aug 22, 2025
73ca1bf
chore: Improve error handling for packet reports encode and decode
Quozul Aug 22, 2025
0864a81
chore: Add unit tests for play packet handler
Quozul Aug 22, 2025
f1099cc
fix: Clients can now be kicked from any state
Quozul Aug 22, 2025
0d9f6a0
chore: release v1.4.0+mc1.21.8
Quozul Aug 23, 2025
0488c72
feat: Add benchmarks to the docs website
Quozul Aug 23, 2025
1871638
fix: Populate configuration file if empty
Quozul Aug 25, 2025
178e730
chore: Improve installation instructions
Quozul Aug 25, 2025
ec505c7
fix: Update Pterodactyl egg and associated documentation
Quozul Aug 27, 2025
7dc195a
chore: Add benchmark on ARM
Quozul Aug 27, 2025
6d7fe7f
chore(docs): Warn user about uploading binaries on Pterodactyl
Quozul Aug 29, 2025
fe43cf2
fix: NBT strings and arrays should be prefixed with a UShort
Quozul Aug 25, 2025
11d56e9
feat: Customise spawn position
Quozul Aug 25, 2025
d09daa4
fix: Send correct version in KnownPacks
Quozul Aug 25, 2025
adb6e69
fix: Update order of play packets
Quozul Aug 25, 2025
dfb60e1
fix: Player not spawning due to view distance being too small
Quozul Aug 25, 2025
7e3f84a
fix: Set center chunk to prevent player getting stuck in loading worl…
Quozul Aug 25, 2025
d7e6a16
feat: Add hardcore mode
Quozul Aug 25, 2025
23c8afa
feat: Implement void chunk for 1.19 and above
Quozul Aug 25, 2025
9ea1a83
fix: Send correct amount of ChunkSection for each dimension
Quozul Aug 26, 2025
c09e1ac
fix: Clouds not rendering starting 1.21.6
Quozul Aug 27, 2025
b293917
fix: Connection from BungeeCord were rejected
Quozul Aug 29, 2025
735592a
fix: wrong synchronize position after 1.21.2
Quozul Aug 29, 2025
da6f255
chore: Add block reports
Quozul Aug 30, 2025
f605450
feat: Experimental schematic loading
Quozul Aug 30, 2025
de90170
chore: release v1.5.0+mc1.21.8
Quozul Aug 30, 2025
f9bb896
refactor: Performance optimizations when loading schematics
Quozul Aug 30, 2025
76da109
chore: release v1.5.1+mc1.21.8
Quozul Sep 1, 2025
835adfd
Add player position and rotation packet handling
AxenoDev Sep 5, 2025
dc766c7
fix: Handle invalid UTF-8 strings
Quozul Sep 6, 2025
7644920
chore: release v1.5.2+mc1.21.8
Quozul Sep 6, 2025
23c857c
Add minimum Y position to config
AxenoDev Sep 6, 2025
3244b36
Add minimum Y position message to config
AxenoDev Sep 6, 2025
d519695
Merge branch 'Quozul:master' into feat/max-y-position
AxenoDev Sep 6, 2025
4ee4653
Add move_player_pos packet
AxenoDev Sep 6, 2025
fd8f057
Add send_message method to client_state for chat message handling
AxenoDev Sep 6, 2025
c5773c6
Add send_message import
AxenoDev Sep 6, 2025
38dd2ec
Remove unused import
AxenoDev Sep 6, 2025
2cdbedf
Add new packets' IDs for all versions
Quozul Sep 6, 2025
d70ca17
Add set_player_pos module to handle player position updates and telep…
AxenoDev Sep 6, 2025
00f731e
Fix f64 form
AxenoDev Sep 6, 2025
ccde8e3
Review Quozul
AxenoDev Sep 6, 2025
fe5947b
Formating the files
AxenoDev Sep 6, 2025
122c4bd
Formating the files
AxenoDev Sep 6, 2025
d648234
Add test for set player pos packet
AxenoDev Sep 6, 2025
6e5fbba
Add test for set player pos and rotation packet
AxenoDev Sep 6, 2025
2f6f94e
Add error handling for invalid spawn position Y
AxenoDev Sep 6, 2025
ba67206
Merge pull request #20 from AxenoDev/feat/max-y-position
Quozul Sep 6, 2025
acba2bf
chore: Add installation script and improve manual installation instru…
Quozul Sep 6, 2025
ffa9a00
Add update time packet and integrate into client state
AxenoDev Sep 6, 2025
f59669a
Merge branch 'Quozul:master' into feat/time-config
AxenoDev Sep 6, 2025
161e36f
Add update time packet and integrate into client state
AxenoDev Sep 6, 2025
de0534f
Merge remote-tracking branch 'origin/feat/time-config' into feat/time…
AxenoDev Sep 6, 2025
9d590d1
Add all packet IDs to support all versions
AxenoDev Sep 6, 2025
cd7bd04
Update World Configuration and Add Time Settings
AxenoDev Sep 7, 2025
b07c724
Update wiki
AxenoDev Sep 7, 2025
19f3dc6
refactor: Improve parsing of the world time setting
Quozul Sep 7, 2025
6b77630
refactor: Move the configuration settings to their appropriate section
Quozul Sep 7, 2025
1f14b64
Merge pull request #22 from AxenoDev/feat/time-config
Quozul Sep 7, 2025
43e3198
feat: Add partial support for MiniMessages
Quozul Sep 6, 2025
0ada18b
refactor: De-duplicate the teleportation logic
Quozul Sep 6, 2025
0a2a501
chore: Remove limit for maximum view distance
Quozul Sep 6, 2025
2bfaf63
refactor: Move game mode config parsing
Quozul Sep 7, 2025
e1b8e06
fix: Deploy docs only on new version
Quozul Sep 7, 2025
9d151b4
Add a world boundaries section in the config to enable or disable it.
AxenoDev Sep 7, 2025
d4d66c8
fix: Update teleport message for world boundaries
AxenoDev Sep 7, 2025
e4f1529
fix: Rename min_y_message to teleport_message in world boundaries config
AxenoDev Sep 7, 2025
d592d5a
fix: Refactor world configuration structure
AxenoDev Sep 7, 2025
d64ea8c
fix: Ensure spawn position validation respects world boundaries confi…
AxenoDev Sep 7, 2025
fff3d71
fix: CI not triggering
Quozul Sep 7, 2025
6f593e6
refactor: Create boundaries enum to hold configuration
Quozul Sep 7, 2025
85065fe
Merge pull request #23 from AxenoDev/fix/repeatedly-teleport
Quozul Sep 7, 2025
02108d4
refactor: Update forwarding configuration format
Quozul Sep 7, 2025
825f64c
Merge pull request #24 from Quozul/refactor/update-forwarding-config
Quozul Sep 7, 2025
a354fd5
refactor: Safer identifier from str method
Quozul Sep 7, 2025
1a5696a
refactor: Removed unused unwrap method from Optional type
Quozul Sep 7, 2025
5dde704
refactor: Removed unused string indexer struct
Quozul Sep 7, 2025
7cfc372
refactor: Removed unused code from protocol_version crate
Quozul Sep 7, 2025
860c74a
refactor: Slightly safer mini message
Quozul Sep 7, 2025
f55cc6f
chore: Update changelog
Quozul Sep 8, 2025
713552e
add: tab list packet
AxenoDev Sep 9, 2025
785f723
refactor: Update TabListPacket to use Component
AxenoDev Sep 9, 2025
7fc5fca
refactor: Update packet to support all mc version
AxenoDev Sep 9, 2025
8a5ac4a
Add all packet IDs to support all versions
AxenoDev Sep 9, 2025
fe65471
feat: Add TabList configuration and integrate into server state
AxenoDev Sep 9, 2025
7b4af36
refactor: Simplify TabListPacket creation and implement Default for T…
AxenoDev Sep 9, 2025
865ab0c
refactor: Simplify TabListPacket creation and implement Default for T…
AxenoDev Sep 9, 2025
bc767cf
refactor: Implement EncodePacket for Component
Quozul Sep 10, 2025
80495cc
refractor: Enhance TabList handling with enum variants for header and…
AxenoDev Sep 10, 2025
6f6c585
refactor: Remove unused import
AxenoDev Sep 10, 2025
d23f5f8
refactor: Implement Default for TabListConfig
AxenoDev Sep 10, 2025
96baa3b
refactor: Rename tablist to tab_list
AxenoDev Sep 11, 2025
6af7201
remove: server.toml & limbo.schem
AxenoDev Sep 11, 2025
61bf1e8
refactor: Update tab_list method to return Result and simplify logic
AxenoDev Sep 11, 2025
708603e
refactor: Update tab_list method signature for improved readability
AxenoDev Sep 11, 2025
5d9bb2f
Merge pull request #25 from AxenoDev/feat/tablist
Quozul Sep 12, 2025
33bc26d
refactor: Move registries to a new crate
Quozul Sep 11, 2025
d7e7351
chore: Update cargo dependencies
Quozul Sep 11, 2025
3fefce5
refactor: Implement Batch struct to lazily build and send packets
Quozul Sep 11, 2025
ff48ab6
feat: add support for skins
Quozul Sep 7, 2025
7cbb781
chore: Update changelog and docs
Quozul Sep 13, 2025
9ec6088
chore: Use rustls instead of native openssl
Quozul Sep 13, 2025
7ff0ba2
chore: Update docs
Quozul Sep 13, 2025
367bacc
feat: add BossBarPacket
AxenoDev Sep 13, 2025
00b157e
feat: implement BossBarPacket and update packet registry
AxenoDev Sep 13, 2025
ed76d83
refactor: remove default attributes from BossBar enums and clone titl…
AxenoDev Sep 13, 2025
80d43cd
feat: Add all packet IDs to support all versions
AxenoDev Sep 13, 2025
cec5673
feat: Add BossBar configuration and serialization support
AxenoDev Sep 13, 2025
fbab60f
feat: Add Boss Bar documentation
AxenoDev Sep 13, 2025
521b21a
feat: Update documentation links for Boss Bar configuration
AxenoDev Sep 13, 2025
185a796
feat: Implement BossBarPacket methods for action handling and simplif…
AxenoDev Sep 13, 2025
f6eee6b
feat: Refactor BossBar division handling to use enum configuration
AxenoDev Sep 13, 2025
cb07756
feat: Update BossBarColorConfig to use explicit values and simplify c…
AxenoDev Sep 13, 2025
d3d3180
feat: Simplify BossBarDivisionConfig usage in serialization and deser…
AxenoDev Sep 13, 2025
b0ee2ab
feat: Fix ci format
AxenoDev Sep 13, 2025
4588013
refactor: Simplified boss bar implementation
Quozul Sep 14, 2025
94e17be
refactor: Simplified uuid as two long implementation
Quozul Sep 14, 2025
ea6cc61
chore: Update docs
Quozul Sep 14, 2025
9278c7b
feat: Add support for server icon
Quozul Sep 13, 2025
95ef11c
feat: Add support for non-closing tags and newline tag
Quozul Sep 13, 2025
b3050fa
fix: Player should be teleported once when out of binary, even with h…
Quozul Sep 13, 2025
6840ee0
fix: Always send player info even when no skin
Quozul Sep 13, 2025
f54c576
fix: Add tab list packet id for 1.9.3
Quozul Sep 14, 2025
c7f3039
refactor: Improve deserialization of config
Quozul Sep 14, 2025
e3c5ce3
feat: Add Debian based egg
Quozul Sep 14, 2025
d807321
feat: Add network packet compression
Quozul Sep 15, 2025
0e4764e
fix: Properly condition boss bar and tab list packets
Quozul Sep 15, 2025
f170d6b
chore: Update changelog
Quozul Sep 15, 2025
ed1bd98
chore: Rename void to plains
Quozul Sep 17, 2025
b53bcdf
chore: Add registries and blocks reports for 1.16-1.18.2
Quozul Sep 17, 2025
07b17c2
feat: Allow loading a world for 1.16-1.18.2
Quozul Sep 17, 2025
692e70f
feat: Allow customizing the compression level
Quozul Sep 18, 2025
8782413
chore: Update docs
Quozul Sep 18, 2025
fd347af
refactor: Split LoginPacket to make it more readable
Quozul Sep 19, 2025
14dc4d4
chore: Rust 1.90 is out
Quozul Sep 22, 2025
160cf4b
refactor: Reduce allocations from String reader
Quozul Sep 24, 2025
81063e3
refactor: Reduce allocations from VarInt
Quozul Sep 24, 2025
de6b11e
refactor: Replace HashMap with Vec to slightly improve performance fo…
Quozul Sep 24, 2025
8b487ec
feat: Add support for title and action bar messages
AxenoDev Sep 28, 2025
b177ade
chore: Update changelog
Quozul Sep 28, 2025
e160bc3
chore: Send title and subtitle packet only if defined
Quozul Sep 28, 2025
f4b6477
chore: update docs
Quozul Sep 29, 2025
e9137ed
feat: Add support for 1.21.9
Quozul Sep 18, 2025
5eacb6d
chore: release v1.6.0+mc1.21.9
Quozul Sep 28, 2025
73e5634
chore: Update README and docs for 1.21.10 support
Quozul Oct 8, 2025
87fe77a
fix: Reduce Docker image size by removing source file from the image …
Quozul Oct 11, 2025
8ad1f65
feat: Add spawn rotation configuration
trafficlunar Oct 17, 2025
42834c7
feat: add reduced debug info configuration
Quozul Oct 18, 2025
c06b57b
fix: wrong skin parts metadata ID for 1.12 to 1.14.4
Quozul Oct 19, 2025
536f0c3
chore: release v1.7.0+mc1.21.10
Quozul Oct 19, 2025
c92b076
feat: Add block entities (#32)
trafficlunar Oct 31, 2025
6d186d8
feat: Add new option to hide player from the tab list
Quozul Oct 20, 2025
9abca58
fix: Allow status request to bypass the Bungeecord/guard handshake
Quozul Nov 3, 2025
d30c106
feat: New option to block unsupported versions
Quozul Nov 3, 2025
834ba5e
feat: Document new reply to status response
Quozul Nov 3, 2025
f51a322
chore: release v1.8.0+mc1.21.10
Quozul Nov 3, 2025
c9e9f56
docs: Fallback server
Quozul Nov 8, 2025
4d0ec47
docs: Schematic conversion
Quozul Nov 11, 2025
15ac5bd
refactor: Move the player listed settings to tab list section
Quozul Nov 14, 2025
220dff1
feat: add new /spawn command
Quozul Nov 15, 2025
6894d99
chore: Update changelog
Quozul Nov 21, 2025
f5f6451
chore: Rename reports to packets
Quozul Nov 21, 2025
f3aeaf2
feat: Add support for 1.21.11 in data generator script
Quozul Nov 21, 2025
67a45b8
chore: Run data generator script for 1.21.11
Quozul Nov 21, 2025
f80f501
feat: Add support for 1.21.11
Quozul Nov 21, 2025
28e135b
chore: release v1.9.0+mc1.21.11
Quozul Dec 10, 2025
81e41a9
fix: Reduced the interval between keep alive packets to reduce kicks
Quozul Dec 10, 2025
3be949d
Fix sky light and block light calculation for schematics
Szabolcs05 Dec 10, 2025
089831a
Fix sky light and block light calculation for schematics
Szabolcs05 Dec 10, 2025
491a189
Merge branch 'feature/lighting-improvements' of https://github.com/sz…
Szabolcs05 Dec 14, 2025
faba204
feat: Implement Starlight-style global light propagation algorithm
Szabolcs05 Dec 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 7 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
/data/**
!/data/generated
!/data/generated/**
/.git
/.github
/.idea
/docs
/pterodactyl
/target
/.git
/data/survival-storage
15 changes: 15 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# These are supported funding model platforms

github: [Quozul]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: Quozul
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
86 changes: 71 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,86 @@
name: Rust
name: CI

on:
push:
branches: [ "master" ]
branches: [ master ]
paths:
- 'pico_limbo/**'
- 'crates/**'
- 'data/generated/**'
- 'Cargo.lock'
- 'Cargo.toml'
pull_request:
branches: [ "master" ]
branches: [ master ]
paths:
- 'pico_limbo/**'
- 'crates/**'
- 'data/generated/**'
- 'Cargo.lock'
- 'Cargo.toml'

env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: full

jobs:
check:
name: check
# Run cargo test
test:
name: Test Suite
runs-on: ubuntu-latest

timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Run linter
run: cargo check
- name: Checkout sources
uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.toml') }}
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Run cargo test
run: cargo +stable test

tests:
name: tests
# Run cargo clippy -- -D warnings
clippy_check:
name: Clippy
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-clippy-${{ hashFiles('**/Cargo.toml') }}
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Run clippy
run: cargo +stable clippy -- -D warnings

# Run cargo fmt --all -- --check
format:
name: Format
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Run Tests
run: cargo test
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run cargo fmt
run: cargo +stable fmt --all -- --check
57 changes: 57 additions & 0 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Deploy docs site to Pages

on:
push:
tags:
- 'v*'
paths:
- 'docs/**'
- 'package-lock.json'
- 'package.json'

workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Install dependencies
run: npm ci
- name: Build with VitePress
run: npm run docs:build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/.vitepress/dist

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build
runs-on: ubuntu-latest
name: Deploy
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
131 changes: 0 additions & 131 deletions .github/workflows/publish.yml

This file was deleted.

Loading