update readme

This commit is contained in:
Sebastian Hugentobler 2022-03-26 11:43:01 +01:00
parent 39e06ae504
commit 7413f09170
Signed by: shu
GPG Key ID: BB32CF3CA052C2F0
1 changed files with 23 additions and 12 deletions

View File

@ -1,47 +1,58 @@
# vesys bank servers and clients # vesys bank servers and clients
Implementations of a simple bank server for the 2022 vesys class at FHNW. Implementations of a simple bank server for the 2022 vesys class at FHNW.
Please note that the writer is in no way an experienced or even professional rust developer (hence the cloning everywhere) and Please note that the writer is in no way an experienced or even professional rust developer (hence the cloning
most of this was written in a hurry. Parts of the code might sneak into your house in bright daylight and marry your cat everywhere) and most of this was written in a hurry. Parts of the code might sneak into your house in bright daylight
to run off with them to Greenland or wherever it is they go for their honeymoon. and marry your cat to run off with them to Greenland or wherever it is they go for their honeymoon.
## socket-server ## socket-server
Use an on-the-fly invented byte protocol. Consult the code for documentation. Use an on-the-fly invented byte protocol. Consult the code for documentation.
## http-server ## http-server
An http implementation, using [actix-web](https://actix.rs/), wanted to try that for a while now.
Again, consult the code for information on how the routes work. An http implementation, using [actix-web](https://actix.rs/), wanted to try that for a while now. Again, consult the
code for information on how the routes work.
## http-client ## http-client
An experimental client for the http-server, built with rust, [yew](https://yew.rs/) and the power of web assembly.
First time I am trying this, there is probably even more wrong with it than with the server implementations. An experimental client for the http-server, built with rust, [yew](https://yew.rs/) and the power of web assembly. First
time I am trying this, there is probably even more wrong with it than with the server implementations.
# Usage # Usage
## Servers ## Servers
Run it like you would with any [cargo workspace](https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html) project. Run it like you would with any [cargo workspace](https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html) project.
For example, starting the http-server variant, with debug logging and compiled in release mode: For example, starting the http-server variant, with debug logging and compiled in release mode:
``` ```
RUST_LOG=debug cargo run --release --bin http-server RUST_LOG=debug cargo run --release --bin http-server
``` ```
## http client ## http client
[Trunk](https://trunkrs.dev/) is used for wasm bundling. [Trunk](https://trunkrs.dev/) is used for wasm bundling.
Local development with auto-reload: Local development with auto-reload:
``` ```
trunk serve trunk serve
``` ```
Build for release (the built artifacts can be found in `dist`): Build for release (the built artifacts can be found in `dist`):
``` ```
trunk build --release trunk build --release
``` ```
# Releases # Releases
Release binaries are built for multiple architectures (always statically compiled): Release binaries are built for multiple architectures (always statically compiled):
- x86_64-unknown-linux-musl (needs ``) - x86_64-unknown-linux-musl (needs `x86_64-linux-musl-gcc`)
- aarch64-unknown-linux-musl (needs `aarch64-linux-musl-gcc` and `aarch64-linux-musl-gcc`) - aarch64-unknown-linux-musl (needs `aarch64-linux-musl-gcc` and `aarch64-linux-musl-gcc`)
- x86_64-pc-windows-gnu (needs `x86_64-w64-mingw32-gcc`) - x86_64-pc-windows-gnu (needs `x86_64-w64-mingw32-gcc`)
- wasm32-unknown-unknown (needed for the http-client) - wasm32-unknown-unknown (needed for the http-client)
@ -51,9 +62,9 @@ These are the target triplet names as they are used by rustup (add them with `ru
To make it more convenient to build, a makefile is provided. Use the following targets for it: To make it more convenient to build, a makefile is provided. Use the following targets for it:
- linux-x86_64-musl - linux-x86_64-musl
- linux-aarch64-musl - linux-aarch64-musl
- windows-gnu - windows-gnu
- http-client - http-client
The `default` and `all` targets build all of them. After a successful build, everything is copied into The `default` and `all` targets build all of them. After a successful build, everything is copied into the `release`
the `release` folder. folder.