Open fankaiLiu opened 10 months ago
Probably worth trying out omniqueue-rs for queues. As of now it supports redis, gcp, in memory, rabbitmq and sqs. I just filed a feature request to support other database backends. https://github.com/svix/omniqueue-rs/issues/62.
Probably worth trying out omniqueue-rs for queues. As of now it supports redis, gcp, in memory, rabbitmq and sqs. I just filed a feature request to support other database backends. svix/omniqueue-rs#62.
Thanks for the advice, I will try
I have started working on repo and experiment with how we can improve salvo-cli. I have tried to make the api minimal as possible. Feel free to have a look at https://github.com/prabirshrestha/salvo-template.
cargo install cargo-generate
cargo generate prabirshrestha/salvo-template
Right now beside the README.md it doesn't do any templating as I'm focusing on getting it working. Seems like cargo generate can also be used as a library so might be salvo cli and reuse it?
I have started working on repo and experiment with how we can improve salvo-cli. I have tried to make the api minimal as possible. Feel free to have a look at https://github.com/prabirshrestha/salvo-template.
cargo install cargo-generate cargo generate prabirshrestha/salvo-template
Right now beside the README.md it doesn't do any templating as I'm focusing on getting it working. Seems like cargo generate can also be used as a library so might be salvo cli and reuse it?
Thanks for your suggestion, using cargo-generate is a great practice, but it seems that you need to get the code online when you use it, but in China, many users many users can't access github directly, so downloading the code online will be a problem, I don't see any way to solve it for the moment.That's why I previously opted for an offline approach to cli.Do you have any good advice?
source of inspiration Improvements to the program will be outlined below
[ ] use cargo workspace
[ ] add support for SPA so client side apps can be written.
[ ] Add support for surrealdb. It can be embedded as well as run in clusters, supports vector embeddings
[x] use yaml for config, as this allows other folks in the team not familiar with rust or toml.
[x] generate README.md so we know what the next step is. for now it probably doesn't matter as it just cargo run. For
example I had to read the code to understand where the swagger ui is.
[ ] add support for background jobs. I think this is very important to enable rich responsive servers.
[ ] add support for cron jobs
[ ] instead of rand_utils.rs considering using specific files such as password.rs.
[ ] Considering using traits for Services. This would allow us to change the implementation via config.
[ ] consider consistent naming for routes such as get_user_page_router (for html), get_user_route (for apis), - [ ] delete_user_route and so on.
[ ] remove demo.rs
[ ] considering using sub folders for templates.
[ ] Add support for sending emails. Emails usually have html templates too.
[ ] Add support for 2fa auth.
[ ] Add support for App passwords.
[ ] Add support for updating/reseting passwords.
[x] call it open api instead of swagger.
[ ] add support for login, logout and register in homepage.
[ ] Add generic pagination concept.
[ ] add CSRF
[ ] add localization
[ ] add systemic and watch support so saving .rs files would automatically build
[ ] add support for server errors. might be even show stack traces in debug mode?
[ ] socket.io with https://github.com/Totodore/socketioxide for real time communication
[ ] in memory as well as distributed caching
[ ] generic storage using https://opendal.apache.org/. Allowing to easily swap files from files system to cloud storages.
[ ] Group templates into folder. Such as as templates/admin/users/list_page.html instead of templates/user_list_page.html.
[ ] Implement 500 internal server error page.
[ ] Add support for CSS minification/compliation. Might be can use grass which includes support for compiling SASS files so we get benefits for variables and imports that can be merged to a single file.
[ ] Use layout pages instead of duplicating code.
[ ] Don't default cors to the following. could be security issue.