lemeow125 / UniversitySystem-Backend

1 stars 0 forks source link

Suggestion to write some of the features in Rust #3

Open egargo opened 6 months ago

egargo commented 6 months ago

I opened this issue to propose that some of the features be written in Rust. The frameworks and libraries that will be used are Axum/Actix for the web framework, and Diesel for the ORM. I believe that Rust's memory safety and fast runtime performance will greatly contribute to this project. If this proposal is approved, I'll contribute to this project.

lemeow125 commented 6 months ago

Hello and thanks for taking interest in the project, it is very much appreciated. It looks to me like we're two sides of the same coin. I unfortunately don't have any prior experience in Rust backend development and I'd probably just slow the project down in the earlier stages as I learn. I imagine the same would go for you with development proceeding in Django

I can instead opt to move the ERD and all platform-agnostic documentation to a separate repository. We can fork the repositories with each fork having their own backend implementations in Django and Rust. Let me know what you think of this. If this is pushed through, I'll do my best to contribute to both repos (though I must admit I might lag behind in Rust development since I'll be learning from scratch)

egargo commented 6 months ago

Hello, and thank you for the response. I totally agree that it'd slow down the development of the project. Although I've had backend development with Django, I have not delved much into it and its ecosystem.

I very much appreciate the idea of moving the platform-agnostic documentation to a separate repository and having our own implementation of the project. It's a go. Aside from the Rust implementation, I'll also do my best to contribute to the (main) Django implementation of the project. I'll let you know when I'll start implementing the Rust implementation and discuss the intricate details of the project.

egargo commented 6 months ago

Hello and good day. I have now created the repository for the Rust implementation of the project. It is worth noting that this is only an initialization of the project; it currently only shows the health/status of the project (I'll be adding the features once I'm done with my university tasks):

curl -s http://0.0.0.0:8000 | jq
{
  "status": "200 OK",
  "message": "online"
}

I am using Docker and Actix Web for this project. For the DB, I am using SQLite.

Let me know what you think.