4 releases
0.1.3 | Jan 3, 2021 |
---|---|
0.1.2 | Jan 1, 2021 |
0.1.1 | Jan 1, 2021 |
0.1.0 | Jan 1, 2021 |
#185 in #front-end
21 downloads per month
Used in vujio_application
29KB
561 lines
vuj.io
/vu-hē-oʊ/
Description
An experimental fast and pertinent web platform for modern devices.
Rust backend and TypeScript frontend.
See https://github.com/vujio/vujio
Example:
use vujio::*;
#[server("127.0.0.1:8080")]
async fn main() {
#[get_html("/")]
async fn main(_req: Request<AppState>) -> String {
let directory_links = ["test_path"].map(|v| format!("<a href=\"{}\">{}</a>", v, v));
let directory_list = format!("<p>Directory:<ul>{}</ul></p>", directory_links.join(""));
format!(
"Pages:<br>{}", directory_list
)
}
#[get_html]
async fn test_path(_req: Request<AppState>) -> String {
"Page: /test_path".into()
}
#[message("/websocket")]
async fn message(stream: &WebSocketConnection, input: String) {
println!("Client says: {:?}", input);
stream.send_string("server response".into()).await;
}
#[binary_stream("/ws")]
async fn my_stream(stream: &WebSocketConnection, input: Vec<u8>) {
stream.send_bytes(input).await;
}
}
Dependencies
~42–57MB
~1M SLoC