Skip to content

Rust Rewrite #215

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 166 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
166 commits
Select commit Hold shift + click to select a range
3157f95
Don't really where to start
mindstorm38 Dec 3, 2024
879e8ba
Small progress on rust rewrite
mindstorm38 Dec 3, 2024
cd8f1f3
Disabling Python test workflow for the Rust Rewrite.
mindstorm38 Dec 3, 2024
5b6cf43
Also disabling codecov PR comment
mindstorm38 Dec 3, 2024
0b84d52
Working on standard installer
mindstorm38 Dec 3, 2024
c30f8df
Working on standard installer (not yet mojang!).
mindstorm38 Dec 3, 2024
670e54a
Reworking assets filtering
mindstorm38 Dec 3, 2024
d35d872
Working on assets resolution...
mindstorm38 Dec 3, 2024
045dd22
Working on standard install
mindstorm38 Dec 3, 2024
ec03e7b
Working on libs resolution
mindstorm38 Dec 3, 2024
927b274
Better error handling
mindstorm38 Dec 3, 2024
48ed1bc
Rules resolution and more error handling
mindstorm38 Dec 3, 2024
a4adc01
Try using serde for JSON parsing.
mindstorm38 Dec 3, 2024
cd0f6da
Library resolution
mindstorm38 Dec 3, 2024
c1bd745
Thinking of another way to install the game...
mindstorm38 Dec 3, 2024
7473869
Trying something with installer steps (unsure!!)
mindstorm38 Dec 3, 2024
72c421d
Working on state machine based installation
mindstorm38 Dec 3, 2024
623c3f3
Testing yet another arch...
mindstorm38 Dec 3, 2024
a01a51c
Reworking installer using event based handler
mindstorm38 Dec 3, 2024
32c0d53
Working on HTTP and Mojang manifest support
mindstorm38 Dec 3, 2024
b3f933c
Async bulk download is insane!
mindstorm38 Dec 3, 2024
b16ad54
Fixed issues with async download and finally saving assets paths
mindstorm38 Dec 3, 2024
5cca08a
Some refactor, also working on Mojang manifest
mindstorm38 Dec 3, 2024
b873d8c
Reworking handlers to avoid returning errors
mindstorm38 Dec 3, 2024
e698fa7
Reworking downloading handling
mindstorm38 Dec 3, 2024
27729ab
Reworked handlers for standard and download processes
mindstorm38 Dec 3, 2024
35a35ff
WIP Mojang Manifest
mindstorm38 Dec 3, 2024
c26ec20
Implemented Mojang version installer
mindstorm38 Dec 3, 2024
f90dae1
Finally reworked how handlers are passed as arguments and implemented…
mindstorm38 Dec 3, 2024
1ea0623
Added entry mode to the batch download API that support both "force" …
mindstorm38 Dec 3, 2024
9557090
Working on loading/finding JVM
mindstorm38 Dec 3, 2024
37a74ae
JVM resolution
mindstorm38 Dec 3, 2024
ed9a925
Finished Mojang JVM installation, with correct link support and fallb…
mindstorm38 Dec 3, 2024
7694d2c
Working on launching the game (not ready!)
mindstorm38 Dec 3, 2024
97e6fc6
New tested version
mindstorm38 Dec 3, 2024
ad33a70
Added tests for GAV module
mindstorm38 Dec 3, 2024
c6a3733
Changed how JVM platform is determined
mindstorm38 Dec 3, 2024
a2922e7
Implemented more fixes and added events to warn
mindstorm38 Dec 3, 2024
f31e84d
Fixed major version checking when searching for system JVM.
mindstorm38 Dec 3, 2024
8bebc28
Working MSA account authentication and implement offline/online auth …
mindstorm38 Dec 3, 2024
a19d02b
Finished deciding how to launch the game, now working and fixed a lot…
mindstorm38 Dec 3, 2024
78a113c
Improved JVM finding, now in parallel. Still have issues with map_to_…
mindstorm38 Dec 3, 2024
63261fb
Fixed resources assets copy and small rework of JVM version finding f…
mindstorm38 Dec 3, 2024
ec34465
Fixed how mojang manifest was requested in case all version of the hi…
mindstorm38 Dec 3, 2024
2d33fdd
Refactored the package into a workspace to split the CLI and have its…
mindstorm38 Dec 3, 2024
7e9d6af
Adjusted crates metadata
mindstorm38 Dec 3, 2024
08cf942
Working on CLI
mindstorm38 Dec 3, 2024
13fec7b
Working on CLI
mindstorm38 Dec 3, 2024
755dcc7
Improved human output and terminal width calculation.
mindstorm38 Dec 3, 2024
96a5a19
Working on human and machine readable outputs
mindstorm38 Dec 3, 2024
be7d82f
Finished reworking the output abstraction, still missing table output…
mindstorm38 Dec 3, 2024
9004652
Log output mode is now finished and polished.
mindstorm38 Dec 3, 2024
972c330
Working on table output for CLI, also using Chrono crate in core crat…
mindstorm38 Dec 3, 2024
b1159d9
Fixed compilation on non unix
mindstorm38 Dec 3, 2024
2acfbfc
Improved implementation of the table output
mindstorm38 Dec 3, 2024
b5de8e3
Finished implementation of mojang search.
mindstorm38 Dec 3, 2024
b3eedec
Improved logging.
mindstorm38 Dec 3, 2024
e13fc2a
Improved how logging is organized and added good error messages. Also…
mindstorm38 Dec 3, 2024
10ccb77
Worked on local search
mindstorm38 Dec 3, 2024
37f16cc
Added filter to local search.
mindstorm38 Dec 3, 2024
0a91aef
Working on the frontend to support proper XML logging as well as lega…
mindstorm38 Dec 3, 2024
ba9dd8f
Fixed an issue with ${arch} pattern replacement in natives.
mindstorm38 Dec 3, 2024
8273861
Fixed non-replaced user_properties crashing older versions.
mindstorm38 Dec 3, 2024
b726c19
Improved logging of CLI start.
mindstorm38 Dec 3, 2024
79b8d5e
Added ctrlc handler and termination of the game to ensure coherency o…
mindstorm38 Dec 3, 2024
99275fe
Lot of rework around downloading, now working on fabric.
mindstorm38 Dec 3, 2024
800ae51
Reworked download for better and optimized support of single entry do…
mindstorm38 Dec 3, 2024
293c0d3
Various async-related refactors, the goal is to definitely abstract f…
mindstorm38 Dec 3, 2024
0d123cb
Added raw version type for start, to be impl later.
mindstorm38 Dec 3, 2024
6736683
Fully implemented fabric loader and fixed some small issues to suppor…
mindstorm38 Dec 3, 2024
38cbbe4
Adjusted support for all fabric APIs.
mindstorm38 Dec 3, 2024
d30fb2f
Fixed critical output issue that caused replacement of random lines...
mindstorm38 Dec 3, 2024
e9bc302
Removed /rust gitignore that is used on main branch...
mindstorm38 Dec 3, 2024
f9eb2ec
Working on forge/neoforge installer
mindstorm38 Dec 3, 2024
f607fe5
Working on forge installer
mindstorm38 Dec 3, 2024
3116ad7
Working on forge installer support.
mindstorm38 Dec 7, 2024
5976d93
Saving my work because I've done insanely huge progress and I'm afrai…
mindstorm38 Dec 9, 2024
2dcde91
Forge is now installing and running... So many tests to do, but omg
mindstorm38 Dec 10, 2024
1ed146e
Avoid duplication of system JVM versions.
mindstorm38 Dec 10, 2024
25bf482
Typo and avoiding NaN for download progress.
mindstorm38 Dec 10, 2024
94eef47
Refactored the standard unexpected errors to include a more generic o…
mindstorm38 Dec 10, 2024
607ec1c
Implemented many checks for properly installed forge
mindstorm38 Dec 10, 2024
928cc63
Lot of refactor with naming convention of versions, also fixed some f…
mindstorm38 Dec 10, 2024
a4f7703
Legacy arguments now overwrite any previous arguments.
mindstorm38 Dec 10, 2024
0f753a6
Fixed support for many forge installer version
mindstorm38 Dec 12, 2024
42973cf
Added process exit on ctrl-c
mindstorm38 Dec 13, 2024
f01cf64
Fixed missing table separator and table cleanup on drop
mindstorm38 Dec 13, 2024
19a212a
Typo and adjustment of doc
mindstorm38 Dec 13, 2024
da4f4d9
Lot of improvement of the public interface to avoid exposing internal…
mindstorm38 Dec 14, 2024
7f213f8
Introducing the C API crate, really really WIP so, just to remember t…
mindstorm38 Dec 14, 2024
3d5730b
Reworked search command to use flags instead of cumbersome syntax.
mindstorm38 Dec 15, 2024
85d1362
Huge refactor of handlers and fixed various issues
mindstorm38 Dec 24, 2024
bbd98be
Huge rework of the forge installers to provide better repository supp…
mindstorm38 Dec 28, 2024
a86f670
Lot of cleanup, naming changes and remove release/snapshot "root vers…
mindstorm38 Dec 28, 2024
f415fec
Removed unused example
mindstorm38 Dec 28, 2024
24421a5
Huge rework of how versions is given to loader installers!
mindstorm38 Jan 4, 2025
a4344dc
Fully implemented fabric loader search.
mindstorm38 Jan 5, 2025
c7f5406
Improved logging
mindstorm38 Jan 5, 2025
8b68c7a
Implemented JVM policy to CLI, working on auth db
mindstorm38 Jan 7, 2025
a2f3547
Working on MSA auth and its database.
mindstorm38 Jan 9, 2025
82414c1
Fully implemented the auth command, replacing login and logout
mindstorm38 Jan 17, 2025
fb467f1
Authentication for starting the game is now implemented! With account…
mindstorm38 Jan 18, 2025
8362743
Fixed missing error_uri on auth error
mindstorm38 Jan 18, 2025
ee2e8f9
Improved JVM version fetching, wider compatibility with system findin…
mindstorm38 Jan 25, 2025
4fd11be
Renamed "capi" to "ffi" and introduced placeholder crate for python b…
mindstorm38 Jan 26, 2025
3d9412d
Working on integration tests.
mindstorm38 Jan 26, 2025
74ce9a0
Little work on ffi
mindstorm38 Jan 28, 2025
f763ff7
Added more integration test
mindstorm38 Jan 29, 2025
842e8db
Replace non relevant tests by a better test for libraries
mindstorm38 Jan 29, 2025
6158b76
Renamed test file
mindstorm38 Jan 29, 2025
9a86355
Fixed various doc issues.
mindstorm38 Jan 29, 2025
1ee8d3e
Experimenting with FFI
mindstorm38 Jan 29, 2025
668969b
Finally found how to properly package the Python native module.
mindstorm38 Jan 30, 2025
1883c49
Working on Python binding
mindstorm38 Feb 4, 2025
dce56ef
Fixed many builder functions
mindstorm38 Feb 12, 2025
d484125
Small change to lib
mindstorm38 Feb 15, 2025
fc92c19
Removed main_dir arg from all installers constructors
mindstorm38 Feb 15, 2025
1424f78
Working on python binding!
mindstorm38 Feb 15, 2025
9f42788
Implementing mojang installer in Python bindings
mindstorm38 Feb 15, 2025
d1ba6da
Implemented all installers in python bindings
mindstorm38 Feb 16, 2025
b7581fe
Added __repr__ on all installer
mindstorm38 Feb 16, 2025
26aa555
Working on handlers
mindstorm38 Feb 16, 2025
cc5b1d8
Implemented quick play and fixes in the command line. Command line is…
mindstorm38 Feb 16, 2025
789e877
Small rename of Handler's fallback function to be more obviously inte…
mindstorm38 Feb 17, 2025
27eafd2
Renamed composite JvmPolicy
mindstorm38 Feb 17, 2025
fa6ceee
Working on the install method and Game object.
mindstorm38 Feb 17, 2025
d87cb30
Implemented all the msa module!
mindstorm38 Feb 18, 2025
30a7e5a
Added unit tes
mindstorm38 Feb 18, 2025
ebe8ac3
Some refactor
mindstorm38 Feb 28, 2025
a00614b
Lot of refactoring around errors.
mindstorm38 Mar 1, 2025
ce8cfdb
Optimized size of BatchResult
mindstorm38 Mar 2, 2025
eca0a27
Improved errors and internal errors reporting for all errors in PMC.
mindstorm38 Mar 2, 2025
befdd27
Small fix to the "neoforge" search kind
mindstorm38 Mar 3, 2025
4578b25
Removed unused structures in MSA module
mindstorm38 Mar 3, 2025
69846a7
Moved auth arg after uuid and username
mindstorm38 Mar 3, 2025
62d2aa3
Implemented include class/natives arguments
mindstorm38 Mar 4, 2025
cbf1aef
Working on --exclude-lib
mindstorm38 Mar 4, 2025
2a4c777
Fixed tests for GAV
mindstorm38 Mar 7, 2025
0aa7c92
Small adjustments
mindstorm38 Mar 25, 2025
250f374
Now using regex-lite instead of regex because we only use it for matc…
mindstorm38 Mar 25, 2025
c6da8a4
Improved fetch exclude to support regexes, not currently supported by…
mindstorm38 Mar 25, 2025
81442a2
Using again regex (instead of regex-lite), but disabled unicode featu…
mindstorm38 Mar 25, 2025
95298d5
Typo in CLI
mindstorm38 Mar 25, 2025
21d0a8c
Typo in CLI again
mindstorm38 Mar 25, 2025
765e0fd
Added search -l (--limit) argument.
mindstorm38 Mar 25, 2025
b79304c
Fixed CLI default value for --jvm-policy
mindstorm38 Mar 26, 2025
fd6f3eb
Added an information log with the version of LWJGL.
mindstorm38 Mar 26, 2025
eb56db8
Tried many things to reduce binary size of download module, but it's …
mindstorm38 Mar 26, 2025
a2584cc
Added some unit tests for simple functions
mindstorm38 Mar 26, 2025
0ac56d0
Working on FFI and defined MSRV
mindstorm38 Mar 28, 2025
edc5b13
Working on FFI bindings and testing
mindstorm38 Apr 11, 2025
2fe6af1
Finally done the generic "ExternBox" opaque type that allows a common…
mindstorm38 Apr 12, 2025
b485b20
Update extern box doc.
mindstorm38 Apr 12, 2025
59a5698
Full rework of the smart box allocation. Working on new error allocat…
mindstorm38 Apr 15, 2025
17036b6
Improved extern box allocation, ready for testing, testing, testing...
mindstorm38 Apr 15, 2025
4e361e6
Added some tests to the extern box module.
mindstorm38 Apr 15, 2025
c15519c
Re-enabled unicode-perl tu support metacharacter like \d
mindstorm38 Apr 18, 2025
8e62af2
Added test for all versions.
mindstorm38 Apr 18, 2025
106925a
Typos
mindstorm38 Apr 19, 2025
2bb35b3
Working on std installer of the FFI
mindstorm38 Apr 22, 2025
b8d2d3a
Added argument to change the Azure app ID
mindstorm38 Apr 22, 2025
24baf88
Reorganized tests
mindstorm38 Apr 23, 2025
00b8765
Small refactor of the Game structure
mindstorm38 May 2, 2025
e985c8e
Working on C FFI
mindstorm38 May 2, 2025
11461cb
Renamed "standard" installer to "base" installer, much simpler.
mindstorm38 May 3, 2025
d1f1f4e
Working on FFI
mindstorm38 May 5, 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
File renamed without changes.
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,3 @@ __pycache__
# Do not keep tests and coverage results
.pytest_cache
.coverage

# To avoid cluttering when switching branch with 'rust-rewrite' branch.
/rust
1 change: 1 addition & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
github_checks:
annotations: false
comment: false
5 changes: 5 additions & 0 deletions rust/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/target

*.obj
*.exe
*.exe.old
Loading