Josiah Glosson 650ab71a83
Commonized networking (#3310)
* Fix not being able to connect to local friends socket

* Start basic work on tunneling protocol and move some code into a common crate

* Commonize message serialization logic

* Serialize Base62Ids as u64 when human-readability is not required

* Move ActiveSockets tuple into struct

* Make CI run when rust-common is updated

CI is currently broken for labrinth, however

* Fix theseus-release.yml to reference itself correctly

* Implement Labrinth side of tunneling

* Implement non-friend part of theseus tunneling

* Implement client-side except for socket loop

* Implement the socket loop

Doesn't work though. Debugging time!

* Fix config.rs

* Fix deadlock in labrinth socket handling

* Update dockerfile

* switch to workspace prepare at root level

* Wait for connection before tunneling in playground

* Move rust-common into labrinth

* Remove rust-common references from Actions

* Revert "Update dockerfile"

This reverts commit 3caad59bb474ce425d0b8928d7cee7ae1a5011bd.

* Fix Docker build

* Rebuild Theseus if common code changes

* Allow multiple connections from the same user

* Fix test building

* Move FriendSocketListening and FriendSocketStoppedListening to non-panicking TODO for now

* Make message_serialization macro take varargs for binary messages

* Improve syntax of message_serialization macro

* Remove the ability to connect to a virtual socket, and disable the ability to listen on one

* Allow the app to compile without running labrinth

* Clippy fix

* Update Rust and Clippy fix again

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2025-02-28 10:52:47 -08:00
2024-07-09 15:17:38 -07:00
2025-02-28 10:52:47 -08:00
2025-02-28 10:52:47 -08:00
2024-12-11 19:54:18 -08:00
2025-02-28 10:52:47 -08:00
2025-02-28 10:52:47 -08:00
2024-07-04 21:46:29 -07:00
2024-11-02 21:14:00 -07:00
2024-07-03 00:18:35 -07:00
2025-02-28 10:52:47 -08:00
2025-02-28 10:52:47 -08:00
2024-07-04 21:46:29 -07:00
2024-12-30 20:55:37 -07:00
2024-12-11 19:54:18 -08:00
2024-10-19 19:46:40 -07:00
2024-07-03 13:25:49 -07:00
2024-12-11 19:54:18 -08:00
2024-12-11 19:54:18 -08:00

Modrinth Monorepo Cover

Issues Pull Requests Contributors Lines Commit Activity Last Commit

Modrinth Monorepo

Welcome to the Modrinth Monorepo, the primary codebase for the Modrinth web interface and app. It contains Lines lines of code and has Contributors contributors!

If you're not a developer and you've stumbled upon this repository, you can access the web interface on the Modrinth website and download the latest release of the app here.

Development

This repository contains two primary packages. For detailed development information, please refer to their respective READMEs:

Contributing

We welcome contributions! Before submitting any contributions, please read our contributing guidelines.

If you plan to fork this repository for your own purposes, please review our copying guidelines.

Security

If you discover a security vulnerability within our codebase, please follow our responsible disclosure guidelines.

Support

If you need help with the Modrinth web interface or app, please visit our support page. For general inquiries, you can also join our Discord server.

License

All packages in this repository are licensed under their respective licenses. Refer to the LICENSE file in each package for more information.

Description
The Modrinth monorepo containing all code which powers Modrinth!
Readme 122 MiB
Languages
Rust 44.6%
Vue 38.6%
TypeScript 8.2%
HTML 5.1%
JavaScript 1.9%
Other 1.5%