Giter Club home page Giter Club logo

rust-warp-example's Introduction

Rust Warp backend server

This is a Rust Warp backend server prototype for the demo video below. I made it for a freelance client as a POF a few months before. I had a freedom to use the language for a backend server. So, I used Rust to prove myself that I can do it with Rust. If I have to do it again, I would use Python.

React Rust demo

I share it because I have to send some private works for Rust working opportunity. If I have to, I prefer it to be an open source.

If writing Rust were easy and take less time, I would rewrite. You can imporve it yourselves with TODO list below.

The payload will be session.rs file.

How to test it

You can use $python3 dev.py or $cargo run --bin main or $RUST_LOG=debug cargo run --bin main to test a web server.

If you want to start simple, start with hello and hi apis.

You can also test other CLI commands with cargo run --bin name. Refer to Cargo.toml for that.

End points

I let CURL commands for each files in routes/ folder to help you test the end points. But, you can start with these first.

  • Register a user
$curl -X POST localhost:8000/api/user/v1 -H "Content-Type: application/json" -d '{ "email": "[email protected]", "password": "password" }'
  • List users
$curl localhost:8000/api/user/v1
  • Login
curl -X POST localhost:8000/api/user/v1/login -c cookie.txt -H "Content-Type: application/json" -d '{ "email": "[email protected]", "password": "password" }'
  • Update cash
$curl -X PATCH localhost:8000/api/user/v1/cash -b cookie.txt -L -H "Content-Type: application/json" -d '{ "amount": 100000 }'
  • Buy a car
$curl -X POST localhost:8000/api/user/v1/car -b cookie.txt -L -H "Content-Type: application/json" -d '{ "price": 10000, "color": "red" }'
  • List cars
$curl -X GET localhost:8000/api/user/v1/car -b cookie.txt -L
  • Gamble with cash
$curl -X POST localhost:8000/api/user/v1/game -b cookie.txt -L -H "Content-Type: application/json" -d '{ "stake_amount": 10000, "car_id": null, "number_of_participants": 2 }'
  • Gamble with a car
$curl -X POST localhost:8000/api/user/v1/game -b cookie.txt -L -H "Content-Type: application/json" -d '{ "stake_amount": 10000, "car_id": null, "number_of_participants": 2 }'
  • Ranking
$curl localhost:8000/api/ranking/v1/game
  • Delete a user
$curl -X GET localhost:8000/api/user/v1/logout -b cookie.txt -L

TODO

This was just a prototype to clone a function of a gambling website. It is far from perfect. I will include some lists that you can improve.

If you want working Rust code to reuse, refer to the Rust Full Stack repository.

I did code with it a few months ago so they are only what I can think currently instead of investing so much time to read all code again.

There are not many Rust web server examples. I wouldn't write this way again if the development were for myself. But, hope you can save the compile time with it at least.

Frontend part is up to you. You can implement it on your own referring to the example above.

rust-warp-example's People

Contributors

steadylearner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.