Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
290 commits
Select commit Hold shift + click to select a range
07aae4d
refactor(lib core): add new errors to sync std tcp client
cainthebest Jul 11, 2024
0f091c2
refactor(lib core): add new errors to tokio sealed tcp client
cainthebest Jul 11, 2024
999ae17
refactor(lib core): change vis of async std tcp client and add new er…
cainthebest Jul 11, 2024
caf79a5
refactor(lib error): add `TimeoutElapsedError`
cainthebest Jul 11, 2024
d3973ff
fix(lib error): make errros more readable in src
cainthebest Jul 20, 2024
b81d144
refactor(lib core): polish tcp client errors
cainthebest Jul 20, 2024
9897bc6
chore: merge remote-tracking into experimental/async
cainthebest Jul 20, 2024
3d14942
fix(lib): add error module that got removed in merge somehow
cainthebest Jul 20, 2024
5c42240
chore(lib core): match udp file structure with tcp
cainthebest Jul 21, 2024
67aa341
chore(lib core): add tls module in http for planning
cainthebest Jul 21, 2024
ee7d934
chore(lib core): add rcon mod
cainthebest Jul 21, 2024
05e2e3a
impl(lib core): tcp aprox based vec shrink
cainthebest Jul 22, 2024
a4af8a2
fix(lib core): correct tcp shrink margin
cainthebest Jul 23, 2024
0b11738
impl(lib core): add shrink to fit on other tcp clients and val size
cainthebest Jul 24, 2024
93a2bd9
chore(lib core): start adding docs to top lvl tcp
cainthebest Jul 24, 2024
10c1e72
chore(lib error): remove unused re export
cainthebest Jul 24, 2024
205ba79
refactor(lib core): add trace + debug logs for TCP client and clean u…
cainthebest Jul 27, 2024
6a02c2d
chore(workspace): add basic justfile
cainthebest Jul 31, 2024
3600290
chore(workspace): add other crates and clean up things that will be b…
cainthebest Jul 31, 2024
dce2197
chore(cli): move changelog to changeset to test
cainthebest Aug 1, 2024
568f5e1
chore(lib): plan some files
cainthebest Aug 10, 2024
c077d7c
chore(lib): plan some more files
cainthebest Aug 10, 2024
b9a00eb
impl(lib timeout): add validate methods and docs
cainthebest Aug 10, 2024
4e85714
chore(lib): map out some more dirs
cainthebest Aug 10, 2024
1ec567a
chore(lib): change some of the file struct
cainthebest Aug 10, 2024
830bfd4
chore(lib): move rcon mod into protocol
cainthebest Aug 11, 2024
f231704
chore(lib): remove dupe rcon mod in core net
cainthebest Aug 11, 2024
547a9e6
chore(lib): update exports
cainthebest Aug 11, 2024
a046247
impl(lib io): buf reader
cainthebest Aug 11, 2024
cfb7aa9
fix(lib io): MaybeAsyncRead is not satisfied with R for T
cainthebest Aug 11, 2024
17b9f3a
impl(lib io): string reader example
cainthebest Aug 11, 2024
29193a2
refactor(lib io): use sync buf with prim
cainthebest Aug 15, 2024
04d7228
refactor(lib io): insure no mix ups on le/be
cainthebest Aug 15, 2024
b99783e
chore(lib): add modules and format
cainthebest Aug 15, 2024
c9d0537
chore(lib): plan out features
cainthebest Aug 16, 2024
44c357d
impl(lib): add io error and docs
cainthebest Aug 16, 2024
df4161c
chore: clean up unused
cainthebest Aug 16, 2024
8bfab7f
chore(lib): update readme
cainthebest Aug 16, 2024
6f34ebb
chore(lib): start adding cfg features
cainthebest Aug 16, 2024
5faaff3
impl(lib): mock up player adapter
cainthebest Aug 16, 2024
3c044eb
chore: fmt repo
cainthebest Aug 16, 2024
fdd4664
impl(lib): attachable components for errors
cainthebest Aug 21, 2024
dc2ce26
refactor(lib error): split into more than 1 module
cainthebest Aug 28, 2024
9326e73
fix(lib buf): add better error handle inc hex dump
cainthebest Aug 29, 2024
2bffa02
doc(lib): start docs at mod lvl
cainthebest Aug 29, 2024
fd8f8fd
feat(lib): clean up no-ops from log with feat gate
cainthebest Aug 29, 2024
25090d3
fix(lib core): make tokio tcp more correct and simple
cainthebest Aug 29, 2024
d32d8e2
refactor(lib tcp): use new errors with std internals
cainthebest Aug 30, 2024
addd435
fix(lib tcp): use correct attachments fn
cainthebest Aug 30, 2024
3ef076e
fix(lib tcp): correct client logs
cainthebest Aug 30, 2024
962a2c2
chore(lib core): add mods to prelude
cainthebest Aug 30, 2024
25e349a
refactor(lib io): change mod to short name
cainthebest Aug 30, 2024
be640e5
fix(lib core): update compiler error
cainthebest Aug 30, 2024
475c0b1
chore(lib tcp): remove un needed comment
cainthebest Aug 30, 2024
44772c6
impl(lib): add settings struct
cainthebest Aug 30, 2024
6a6e5c4
fix(lib tcp): client read returns buf direct now for eou
cainthebest Aug 30, 2024
765d70b
impl(lib io): add wip string methods
cainthebest Sep 1, 2024
2a04afc
fix(lib io): correct utf16 iter on inner vec
cainthebest Sep 1, 2024
8c244fc
impl(lib io): add ucs2 and latin 1 string methods
cainthebest Sep 1, 2024
a716771
chore(lib): gs1 latin 1 feature to remember for #89
cainthebest Sep 1, 2024
362eb11
impl(lib io): add error hande to strings
cainthebest Sep 1, 2024
c497846
refactor(lib core): propagate len from sock to buf
cainthebest Sep 1, 2024
5e49098
impl(lib error): add string conversion error
cainthebest Sep 1, 2024
d5f3cc7
impl(lib http): add feature gates, deps and checks
cainthebest Sep 2, 2024
5fa1097
chore(lib tcp): update import
cainthebest Sep 2, 2024
a82289a
fix(lib): correct feature gate deps and check
cainthebest Sep 2, 2024
e3bafcb
refactor(lib settings): add cfg attr to timeout
cainthebest Sep 2, 2024
657f2b5
chore(justfile): add lint recipes
cainthebest Sep 4, 2024
4733c44
refactor(lib settings): derive default rather than impl
cainthebest Sep 4, 2024
f01fb6a
fix(lib io): use len in buf than call `.len()`
cainthebest Sep 4, 2024
55afb38
refactor(lib io): clean up convert fn F in num
cainthebest Sep 4, 2024
66076c6
chore(lib io): add some allow dead code for warns
cainthebest Sep 4, 2024
d9ab739
impl(lib http): start coming up with a abstract layer
cainthebest Sep 4, 2024
878548a
chore(lib cargo): come up with easy to use default features
cainthebest Sep 4, 2024
3d07e77
chore(lib http): remove unused file
cainthebest Sep 4, 2024
a1b7095
chore(lib game): remove unused modules
cainthebest Sep 4, 2024
259f996
fix(lib http): set return type to json in al
cainthebest Sep 4, 2024
919518e
fix(lib io): handle ranges in a better way
cainthebest Sep 7, 2024
9728b87
chore(workspace): move some crates around
cainthebest Sep 15, 2024
74f8b8b
refactor(io buf): clean up ranges
cainthebest Sep 15, 2024
591c64b
chore(lib): update lib comments
cainthebest Oct 1, 2024
c033002
refactor(lib error): manually use `from` to remove derive more dep
cainthebest Oct 1, 2024
b252a6d
impl(lib http): start adding basic structs for request
cainthebest Oct 1, 2024
2472990
refactor(lib feature): make compiler errors better
cainthebest Oct 1, 2024
b5bff61
refactor(lib tcp): rework how timeout duration is handled
cainthebest Oct 1, 2024
2c4eb2a
fix(lib tcp): remove borrow on error addr for std
cainthebest Oct 1, 2024
e752698
refactor(lib error): feature gate errors to there features
cainthebest Oct 1, 2024
3fdcc7e
impl(lib udp): add working udp client WIP
cainthebest Oct 3, 2024
3d8c40f
chore(lib udp): clean uo some imports
cainthebest Oct 3, 2024
334ac5b
chore(lib core): re export udp client in core
cainthebest Oct 3, 2024
1491502
impl(lib log): add a module for event targets
cainthebest Oct 13, 2024
ed1d742
impl(lib log): add feature gate for dev logs
cainthebest Oct 13, 2024
a916617
impl(dev container): add basic setup
cainthebest Oct 17, 2024
20ce186
fix(dev container): use docker outside of container for act
cainthebest Oct 17, 2024
79baf4f
fix(dev container): use docker in docker
cainthebest Oct 17, 2024
f956f8e
chore(dev container): improve and add just
cainthebest Oct 17, 2024
2ac2009
chore(ci): add basic ci for testing
cainthebest Oct 17, 2024
6363746
fix(dev container): Rename DockerFile to Dockerfile
cainthebest Oct 17, 2024
250ea44
impl(dev containers): add image with gh codespace support
cainthebest Oct 18, 2024
54b6855
fix(dev container): try to fix codespace build error
cainthebest Oct 18, 2024
6883bef
fix(dev container): setup act in gh codespace
cainthebest Oct 18, 2024
9f845e3
chore(workflows): add dependabot
cainthebest Oct 18, 2024
6ffe4da
chore(dev containers): clean up config
cainthebest Oct 18, 2024
77986cf
chore(repo): normalize line endings
cainthebest Oct 18, 2024
3b07358
chore(dev containers): set ide settings
cainthebest Oct 18, 2024
861edb7
chore(dev container): add cross rs cli
cainthebest Oct 18, 2024
3273fe5
chore(dev container): remove cross and unneeded setting
cainthebest Oct 19, 2024
1326e05
fix(dev container): correct docket volume path
cainthebest Oct 19, 2024
6ff1ad1
chore(dev containers): clean up volume mount
cainthebest Oct 19, 2024
e97314d
fix(core buf): use pos as range context and add utils
cainthebest Oct 22, 2024
d9c8b8f
impl(rcon): start adding packet for valve source
cainthebest Oct 22, 2024
d2a3619
refactor(lib error): rework diagnostic hex dump
cainthebest Oct 29, 2024
124d3f4
chore(lib): add log mod to lib and add lib header
cainthebest Oct 29, 2024
12f4148
chore(dev containers): add half done readme
cainthebest Oct 29, 2024
281fb0c
fix(rustfmt): dont wrap comments
cainthebest Oct 29, 2024
2064fe4
chore(lib): update deps
cainthebest Nov 6, 2024
2351539
fix(lib features): rework how http is served as a feature so its simp…
cainthebest Nov 6, 2024
e560e36
chore(lib core): comment out feature check for now
cainthebest Nov 6, 2024
5fc6213
refactor(lib error): add missing error and update cfg
cainthebest Nov 7, 2024
2832efa
refactor(lib core): add some docs and correct cfgs for tcp AL
cainthebest Nov 7, 2024
220bb9a
refactor(lib core): update tcp tokio client cfgs and improve logs
cainthebest Nov 7, 2024
4086b91
refactor(lib core): update tcp std client cfgs and improve logs
cainthebest Nov 7, 2024
a8dc719
refactor(lib core): update log cfgs on tcp client
cainthebest Nov 7, 2024
3cab74e
fix(lib error): own inner hexdump as buf could be dropped before display
cainthebest Nov 20, 2024
50d5420
fix(lib buf): range check uses rel pos, correct num so it isnt pos + …
cainthebest Nov 20, 2024
b60ec25
chore(lib error): change wording "underflow" to OOB
cainthebest Nov 20, 2024
12392a2
refactor(lib buf): rework errors and move pos
cainthebest Nov 23, 2024
9e1655a
refactor(lib error): add IO::BufferInvalidRangeError
cainthebest Nov 23, 2024
9eb0737
chore(workspace): clean up some unused stuff for now
cainthebest Nov 23, 2024
8f12860
chore(workspace): add temp readme
cainthebest Nov 23, 2024
a08dd1c
refactor(buf): clean up and add docs
cainthebest Dec 13, 2024
735f113
chore(buf): correct wording on docs
cainthebest Dec 13, 2024
fa7c23a
refactor(lib): clean up compiler errors
cainthebest Dec 13, 2024
059a826
refactor(valve rcon): clean up packet
cainthebest Dec 13, 2024
4984062
impl(valve rcon): add some tests and docs
cainthebest Dec 15, 2024
786d716
chore(dict): plan to have this at high lvl
cainthebest Dec 15, 2024
9d1e14a
impl(buf): add num tests
cainthebest Dec 15, 2024
e3d981d
impl(buf): add more tests
cainthebest Dec 15, 2024
44fe1d2
chore(buf): add note on strings
cainthebest Dec 15, 2024
63c2318
chore(rcon): remove unused
cainthebest Dec 15, 2024
47f7fbf
chore(dict): add mod to lib
cainthebest Dec 15, 2024
001b8b1
chore(https): use rustls for TLS to get rid of openssl requirement on…
cainthebest Dec 15, 2024
2f8a6d1
chore(rcon): remove for now as will come back to it
cainthebest Feb 7, 2025
a0153a4
chore(https): comment out and just add as todo
cainthebest Feb 19, 2025
13bfc2d
chore(query gold_src): merge protocol into valve
cainthebest Feb 19, 2025
7d6c750
chore(comment): add goldsrc to valve docs
cainthebest Feb 19, 2025
4eb3f13
impl(valve query): add all packet structures for protocol
cainthebest Feb 19, 2025
c991517
chore(rustfmt): update semver
cainthebest Feb 19, 2025
b231823
refactor(valve query): split packet into more than 1 file
cainthebest Feb 19, 2025
80fdecf
refactor(valve info query): move stuff around and polish
cainthebest Feb 19, 2025
9dcebe1
perf(valve info query): inline fns
cainthebest Feb 20, 2025
f421a99
port(core dy_buf): impl under `_DEV_BUF_EXPERIMENTAL` new buf that su…
cainthebest Mar 10, 2025
b79991b
chore(valve player): remove unused struct
cainthebest Mar 10, 2025
526ae71
refactor(valve rules): simplify and just use hash map
cainthebest Mar 10, 2025
369fbc1
refactor(valve info): rename res struct to "ServerInfo"
cainthebest Mar 10, 2025
3e5efe5
fix(core dy_buf string): double advancing the cursor for utf16
cainthebest Mar 10, 2025
02d5b0b
impl(core dy_buf): add unit tests for everything
cainthebest Mar 10, 2025
b984634
refactor(core buf): move dy_buf into core buf now that its stable ish
cainthebest Mar 10, 2025
3743789
chore(rust fmt): fix some deprecation warnings
cainthebest Mar 10, 2025
2c4b2b1
chore(format): format eveything with new config
cainthebest Mar 10, 2025
9ecd005
refactor(core tcp): rework how data is processed (still needs cleanup)
cainthebest Mar 11, 2025
ad714de
refactor(core udp): rework how data is processed (still needs cleanup)
cainthebest Mar 11, 2025
4ae6d0a
fix(core tcp): using an explicit closure for copying elements
cainthebest Mar 11, 2025
d86a114
fix(error diagnostic): op has no effect
cainthebest Mar 11, 2025
49e1ddb
chore(lib): change edition to 2024
cainthebest Mar 11, 2025
d30f52b
fix(core udp): borrow timeout and copy from user side
cainthebest Mar 11, 2025
4f8e95a
chore(license): update year to 2025 to match main
cainthebest Mar 11, 2025
578bed8
chore(cli): state edition to get rid of build warn
cainthebest Mar 11, 2025
522139f
chore(lib deps): update all to latest
cainthebest Mar 13, 2025
9e8cc37
refactor(dict): feature gate so that phf can now be optional
cainthebest Mar 13, 2025
1b9dcf5
impl(error diagnostic): add unit tests
cainthebest Mar 14, 2025
9d01e74
impl(error): add a basic unit test for display
cainthebest Mar 14, 2025
f020d3c
fix(error diagnostic): failure reason header should be yellow not blue
cainthebest Mar 22, 2025
2a08d4f
fix(buf errors): cover edge cases with errors rather than panic
cainthebest Mar 22, 2025
956faaa
fix(core udp): client not having pub crate on fns
cainthebest Apr 13, 2025
410e897
refactor(valve query): new high def model and move some things around
cainthebest Apr 13, 2025
7207198
impl(diagnostic): add sysinfo display component for os, arch, pkg sem…
cainthebest Apr 13, 2025
4136da8
refactor(error diagnostic): split system info up and clean up
cainthebest Apr 15, 2025
896fbf1
refactor(error diagnostic): add main features to crate info
cainthebest Apr 15, 2025
3a0e783
refactor(error diagnostic): clean up and document
cainthebest Apr 17, 2025
d8c1e1b
fix(udp client): change trace to dev log feature
cainthebest Apr 28, 2025
b034bb5
fix(dict): swap out phf for hashify
cainthebest Apr 29, 2025
c0b69e2
impl(dict): come up with a POC with cfgs
cainthebest Apr 29, 2025
d21e819
chore(https): clean up
cainthebest Apr 29, 2025
77ac96f
fix(buf string): remove unused import
cainthebest Apr 29, 2025
0e34674
chore(features): cut out all the unimpl ready for beta
cainthebest Apr 29, 2025
ee62750
chore(dict): remove POC
cainthebest Apr 29, 2025
fe60433
impl(log): add util macros for logging
cainthebest May 7, 2025
cb8b9f7
chore(format): forgot before last commit
cainthebest May 7, 2025
e78f3a9
chore(log): remove pointless cfg on prod event target
cainthebest May 7, 2025
1075de8
fix(log): sort macro use consumer hierarchy
cainthebest May 7, 2025
0e588e0
chore(log): manually format as rustfmt dont wanna do it
cainthebest May 9, 2025
5fbfbd3
fix(rustfmt): sort warnings about config
cainthebest May 9, 2025
d4ec167
fix(diagnostic): derive crate info with debug
cainthebest May 9, 2025
0d02da7
refactor(tcp): clean logic up on client and tokio (std still todo)
cainthebest May 9, 2025
5007018
impl(tcp tokio): add debug log on conn drop
cainthebest May 9, 2025
871e59d
chore(readme): start planning out workspace readme
cainthebest May 24, 2025
ca38aad
chore(readme): add a banner i made in my ide as img
cainthebest May 25, 2025
de1a6b2
chore(readme): clean up table
cainthebest May 25, 2025
de58ce2
chore(readme): new header style
cainthebest May 25, 2025
cdfa5e5
chore(readme): clean up space
cainthebest May 25, 2025
df52067
chore(workspace): sort readmes and file structs
cainthebest May 26, 2025
d750c83
impl(id_gen): come up with a proposal for game ids with cli tool
cainthebest May 28, 2025
68962e3
chore(tokio tcp): clean up printables
cainthebest Jun 24, 2025
658478b
refactor(std tcp): improve debug logs and errors
cainthebest Jun 26, 2025
ecd31e6
chore(net replay): initialize Cargo.toml and main.rs for net replay tool
cainthebest Jul 28, 2025
c90e60a
chore(ffi udl): this should be in its own crate as there maybe more f…
cainthebest Jul 28, 2025
2a5ccff
chore(lib): improve docs and add some comments on macros
cainthebest Jul 28, 2025
5a4c1af
refactor(log macros): update target references to use super::EventTarget
cainthebest Jul 28, 2025
6e003d9
chore(lib): format
cainthebest Jul 28, 2025
7bbc1f6
fix(core tcp): its possable to set a timeout at 1ns, if timeout is le…
cainthebest Jul 28, 2025
d2c7cf1
chore(lib deps): update reqwest version to 0.12.22
cainthebest Jul 28, 2025
892eb68
chore(lib deps): update ureq version to 3.0.12
cainthebest Jul 28, 2025
f239d1f
chore(lib deps): update tokio version to 1.47.0
cainthebest Jul 28, 2025
9776c9f
chore(lib deps): update serde_json version to 1.0.141
cainthebest Jul 28, 2025
6b2a4ab
chore(lib deps): update log version to 0.4.27
cainthebest Jul 28, 2025
8dada07
chore(lib deps): update async-trait version to 0.1.88
cainthebest Jul 28, 2025
dbff7bb
chore(core tcp std): apply clippy suggestion
cainthebest Jul 28, 2025
f70f371
chore(lib error): add file for compile errors
cainthebest Jul 28, 2025
1c924e1
revert(core tcp): its possable to set a timeout at 1ns, if timeout is…
cainthebest Jul 30, 2025
0c98cf6
fix(core tcp): add args to client trace log
cainthebest Jul 30, 2025
95092dc
refactor(core udp client): improve client to be more like tcp and imp…
cainthebest Jul 30, 2025
0bc4ea0
fix(core udp): change address parameter to value type and update time…
cainthebest Jul 30, 2025
f57bd22
chore(core udp): remove unused dead code attr
cainthebest Jul 30, 2025
41c333a
fix(core udp std): update address parameter to value type and adjust …
cainthebest Jul 30, 2025
a9cd6c6
fix(valve query client): update new() method to accept value types fo…
cainthebest Jul 30, 2025
ff724a5
chore(core http): just cut it out for now till a plan can be put toge…
cainthebest Jul 31, 2025
d5a1f3f
fix(core udp tokio): change address parameter to value type and updat…
cainthebest Aug 1, 2025
40b1230
chore(core udp client): update docs for send and recv methods for cla…
cainthebest Aug 4, 2025
511a463
refactor(core udp tokio): enhance logging for socket binding and conn…
cainthebest Aug 4, 2025
c182713
chore(git tree): Merge remote-tracking branch 'origin/main' into expe…
cainthebest Aug 6, 2025
101c85b
fix(log macros): macro expansion target path bs, needs fixed path not…
cainthebest Aug 6, 2025
ab5c3d0
refactor(core io buffer): remove dead code annotations from buffer me…
cainthebest Aug 11, 2025
1234fbe
refactor(lib adapters): impl GenericPlayer and GenericServer data str…
cainthebest Aug 22, 2025
604fb06
fix(lib adapters): change IntoGenericPlayer and IntoGenericServer tra…
cainthebest Aug 22, 2025
265a841
chore(lib adapters): add docs for GenericPlayer and GenericServer
cainthebest Aug 22, 2025
f241768
feat(lib adapters): introduce GenericDataValue/GenericDataHashMap and…
cainthebest Aug 22, 2025
1bd90b9
perf(lib adapters): change players in GenericServer from Vec to HashSet
cainthebest Aug 22, 2025
ac5753d
refactor(lib adapters): change GenericDataHashMap to use Option for N…
cainthebest Aug 22, 2025
cbd5876
chore(readme): update to latest structure
cainthebest Aug 22, 2025
9a1c9ae
chore(readme): update crate paths
cainthebest Aug 22, 2025
a438a87
doc(new WIP changelog): add initial changelog entries for versions v0…
cainthebest Aug 23, 2025
7bbf631
refactor(converters): rename adapters to converters
cainthebest Aug 24, 2025
3b6666c
doc(lib): add logo and cfg guard changelog
cainthebest Aug 24, 2025
baa4ca9
chore(changelog docs): get rid for now and come back to it
cainthebest Aug 29, 2025
36ae971
chore(core buffer): add tracing to fns
cainthebest Sep 7, 2025
030e84f
impl(valve query): start to add A2S INFO
cainthebest Oct 6, 2025
42e3c51
fix(udp tokio client): add system and crate info to connection error …
cainthebest Oct 6, 2025
1ad73cb
chore(valve query): clean some stuff up
cainthebest Oct 19, 2025
c435d8c
impl(config): come up with generic net config for all protocols/games
cainthebest Oct 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions .actrc
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
# Configuration file for act (run github actions locally using docker)
# https://github.com/nektos/act

# Swap docker image for the one containing the rust toolchain
-P ubuntu-latest=ghcr.io/catthehacker/ubuntu:rust-latest

# Load custom event
-e .github/.act-event.json
# Set the default image for the act container
-P ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-latest
48 changes: 48 additions & 0 deletions .devcontainer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# GameDig Dev Containers

This setup guide is for configuring a unified, containerized environment tailored for both **Docker Desktop** (local development) and **GitHub Codespaces** (cloud development). The configurations use Visual Studio Code’s Dev Containers to streamline environment setup and maintain consistency across different operating systems.

---

## What Are Dev Containers?

Dev Containers allow you to run a development environment inside a Docker container, providing an isolated workspace with pre-installed dependencies, tools, and configurations. This means:

- **Reduced Setup Time**: All tools, dependencies, and configurations are predefined.
- **Platform Consistency**: Every developer gets an identical environment, avoiding "works on my machine" issues.
- **Flexibility**: Supports running on Windows, macOS, and Linux systems.

For a general introduction, see [Microsoft’s Dev Containers Overview](https://code.visualstudio.com/docs/devcontainers/containers).

## Dev Container Images

The GameDig project includes two Dev Container configurations optimized for Docker Desktop and GitHub Codespaces:

- **Docker Desktop**: Designed for local development.
- **GitHub Codespaces**: Optimized for remote, cloud-based development on GitHub.

### Key Features in Both Images:

- **Rust Development Tools**: Rust is pre-installed with nightly toolchain.
- **VS Code Extensions**: A comprehensive set of extensions for Rust development, code visualization, and Docker management.
- **Utility Tools**:
- **`just` command runner** for task automation
- **`act`** for running GitHub Actions locally
- **Docker** integration for Docker-in-Docker or Docker-outside-of-Docker, depending on the environment.

---

## Setup Instructions

### Prerequisites

Ensure you have the following tools installed:

- **Visual Studio Code**: [Download here](https://code.visualstudio.com/).
- **Dev Containers Extension**: Install [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers).
- **Docker**: Refer to the OS-specific steps on the [Docker website](https://docs.docker.com/get-docker).

---

> [!NOTE]
> Work in progress. to be continued...
7 changes: 7 additions & 0 deletions .devcontainer/docker_desktop/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM mcr.microsoft.com/devcontainers/rust:1

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive

RUN chown -R vscode /usr/local/cargo

RUN rustup toolchain install nightly
8 changes: 8 additions & 0 deletions .devcontainer/docker_desktop/compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
services:
workspace:
build:
context: .
dockerfile: Dockerfile
command: sleep infinity
volumes:
- ../..:/workspace:cached
28 changes: 28 additions & 0 deletions .devcontainer/docker_desktop/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "GameDig Docker Desktop (Dev Container)",

"service": "workspace",
"dockerComposeFile": "compose.yaml",
"workspaceFolder": "/workspace",

"features": {
"ghcr.io/guiyomh/features/just:0": {},
"ghcr.io/itsmechlark/features/act:1": {},
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}
},

"customizations": {
"vscode": {
"settings": { "rust-analyzer.rustfmt.extraArgs": ["+nightly"] },
"extensions": [
"mhutchie.git-graph",
"Gruntfuggly.todo-tree",
"rust-lang.rust-analyzer",
"nefrob.vscode-just-syntax",
"tamasfe.even-better-toml",
"ms-vsliveshare.vsliveshare",
"aaron-bond.better-comments"
]
}
}
}
7 changes: 7 additions & 0 deletions .devcontainer/github_codespace/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM mcr.microsoft.com/devcontainers/rust:1

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive

RUN chown -R vscode /usr/local/cargo

RUN rustup toolchain install nightly
27 changes: 27 additions & 0 deletions .devcontainer/github_codespace/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"name": "GameDig GitHub Codespace (Dev Container)",

"build": { "dockerfile": "Dockerfile" },

"features": {
"ghcr.io/guiyomh/features/just:0": {},
"ghcr.io/itsmechlark/features/act:1": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},

"customizations": {
"vscode": {
"settings": { "rust-analyzer.rustfmt.extraArgs": ["+nightly"] },
"extensions": [
"mhutchie.git-graph",
"Gruntfuggly.todo-tree",
"rust-lang.rust-analyzer",
"nefrob.vscode-just-syntax",
"tamasfe.even-better-toml",
"ms-vsliveshare.vsliveshare",
"aaron-bond.better-comments",
"ms-azuretools.vscode-docker"
]
}
}
}
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[attr]rust text eol=lf whitespace=tab-in-indent,trailing-space,tabwidth=4

# Normalize files to LF line endings
* text=auto eol=lf
*.rs rust diff=rust
6 changes: 0 additions & 6 deletions .github/.act-event.json

This file was deleted.

23 changes: 0 additions & 23 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

14 changes: 0 additions & 14 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

17 changes: 0 additions & 17 deletions .github/ISSUE_TEMPLATE/help-regarding-code-protocol-errors.md

This file was deleted.

Empty file removed .github/badges/.gitkeep
Empty file.
20 changes: 0 additions & 20 deletions .github/badges/node.svg

This file was deleted.

7 changes: 6 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
version: 2
updates:
- package-ecosystem: "devcontainers"
directory: "/"
schedule:
interval: "daily"

- package-ecosystem: "github-actions"
directory: "/.github/workflows"
schedule:
Expand All @@ -13,4 +18,4 @@ updates:
- package-ecosystem: "cargo"
directory: "/crates/lib"
schedule:
interval: "daily"
interval: "daily"
18 changes: 0 additions & 18 deletions .github/labeler.yml

This file was deleted.

20 changes: 0 additions & 20 deletions .github/workflows/audit.yml

This file was deleted.

53 changes: 53 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: CI

on:
push:
branches:
- main

env:
CARGO_TERM_COLOR: always

jobs:
check:
name: Check

strategy:
matrix:
platform:
- ubuntu-latest

runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy

- name: Cache
uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ runner.os }}

- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --verbose

- name: Lint
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets -- -D warnings

- name: Format
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
Loading