- Maria is developed for web developers who switched to Rust from Nodejs, you can easily adapt Maria.rs code.
- Router
- Json handle
- Handler
- Async
- Traits
- Multithreading
- Hello world example
use maria::{ Request, Response, Router, handler, HandlerFn, Arc, Mutex};
#[tokio::main]
async fn main(){
//defining first handler
let home: HandlerFn = handler!(_req, res, {
res.send_html("<h1>Hello from Maria!</h1>");
});
// init the router
let mut router = Router::new();
// add our handler to router
router.get("/", vec![home]);
// that's it!
router.listen(8080).await;
}- I can't name as Router.use because Rust already has a keyword as use.
- But you can use with Router.r#use();
- Same as expressjs Router.use method.
- You can define something for all methods and all paths
- Example:
-
router.r#use(vec![handler!(_req,_res,{ println!("Something has came!"); })]);
- Also, readme updated with new handler! usage
-
now you can define a handler with using handler! macro example:
-
let home: HandlerFn = handler!(_req, res, { res.send_text("Hello world!"); })
-
2 Examples added
-
Basic function documentation added
-
and that's done. also, documentation will come to next versions.
- path params /:*param_key added.
- wildcart can take any of params
- for example: file/:*path -> file/folderpath/anotherfolder/file.txt
- params: *path: folderpath/anotherfolder/file.txt
- The problem is that it drains the routes when it goes into the handling function.
- But the drain is getting all inside the vec into another vec.
- So this problem causes 404 after getting a response in route.
- Also deleted a small debug log.
- New closure type handlers.
- Some quick deadlock fixes.
- Fully multithreded.
- Cargo.toml ready to be publish!
- Some warning fixes.