diff --git a/README.md b/README.md index d014f4a..27fafb8 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ > [!CAUTION] -> **⚠️ Homeval is still in early alpha and can be unstable so do not trust it with data you have not backed up. ⚠️** +> Homeval is still in early alpha and can be unstable so do not trust it with data you have not backed up. # License Homeval is licensed under GNU AGPL-3.0-only @@ -45,22 +45,22 @@ If the database isn't setup repldb won't work, and file history won't persist th ### Proper Authentication > [!WARNING] -> ⚠If you use someone else's key server it could let them authenticate as any user on your homeval instance +> If you use someone else's key server it could let them authenticate as any user on your homeval instance + +> [!NOTE] +> This feature has not been tested with deployments yet, a new solution may be needed. Run [repl-key-server](https://github.com/Goval-Community/repl-key-server) on a repl and set the env var `$HOMEVAL_PASETO_KEY_URL` to `/keys`. ### Replspace api > [!IMPORTANT] -> This will not work on windows. +> This will not work on windows see #112 To make use of this feature make sure that all files in `extras/` are placed in a directory contained in your `$PATH` on the machine running homeval. -## ⚠️ Notice for windows users -On windows `cargo run` as well as invoking the built binary must happen inside the [Git Bash](https://gitforwindows.org/) shell. - ## Building -Homeval can be built into a binary with `cargo build --release` the binary will then end up in `target/release/homeval` (make sure to set `RUST_LOG=INFO` when running this binary or you won't get any logs). +Homeval can be built into a binary with `cargo build --release` the binary will then end up in `target/release/homeval` or `target/release/homeval.exe` (make sure to set `RUST_LOG=INFO` when running this binary or you won't get any logs). ### Minimal Build To build a minimal build run `cargo build --release --no-default-features`, this will compile out the following features: @@ -77,9 +77,12 @@ To compile and run a debug build use `cargo run`. # Implementing a service -Make a new file in `services/` name it with the format `.js` then see existing services and `src/runtime.js` for the interface you need to provide. Docs focussed on implementing services are a WIP. +Make a new file in `services/src/` name it with the format `.rs` then see existing services and `services/src/traits.rs` for the interface you need to provide. Docs focussed on implementing services are a WIP. -> NOTE: The source code for services are compiled in to release builds, but loaded at runtime for debug builds. +To then use the service you will need to edit `services/src/lib.rs` to include your service. +1) Make a new line at the top of `services/src/lib.rs` and add `mod ` +2) Go to the definition of [`Channel::new`](https://github.com/search?q=repo%3AGoval-Community%2Fhomeval%20Channel%3A%3Anew&type=code) and add your service initialization code to the match statement. +3) Add your service to `IMPLEMENTED_SERVICES` (it can be found at the bottom of `services/src/lib.rs`) # Supported targets @@ -88,7 +91,7 @@ Make a new file in `services/` name it with the format `.js` then | --- | --- | --- | --- | --- | | Linux[^linux] | ✅ | ✅ | ✅ | ✅[^linux-tests] | | macOS[^macos] | ✅ | ✅ | ✅ | ❎ | -| Windows | ✅ | ✅ | ✅ | ❎ | +| Windows | ✅ | ✅ | ✅[^windows] | ❎ | [^testing]: This marks if every release is officially tested for this target. @@ -99,8 +102,4 @@ Make a new file in `services/` name it with the format `.js` then [^linux-tests]: Currently, the only tested distribution is arch linux. Though all distros with an up to date GLIC *should* work. -# TODO: - -- [ ] Debugger support -- [ ] Pid2 Support -- [ ] Unit Tests \ No newline at end of file +[^windows]: While the windows binary supports every feature, the replspace binaries found in [extras](extras/) still need to be ported to batch/powershell (#112) \ No newline at end of file