Eternal Search

About me 📌

Castle of Carcassonne

Hello! My name is Ivan Kolesnikov. I am twenty-seven years old and currently I am a software engineer living in Nice, France.

My education:

I've also participated in various robotics and programming competitions. The most remarkable ones:

  • RobotChallenge 2018, Beijing (first and third places in PuckCollect category)
  • RobotChallenge 2017, Beijing (second place in PuckCollect category)
  • Robomaticon 2018, Warsaw (first place in PuckCollect category)
  • ACM ICPC (our team two times passed to the semi-final in Saint-Petersburg, Russia)
  • Robofinist (multiple years and categories)
  • Robofest (multiple years and categories)

Of course there are more less big competitions. You can learn more about some of our robot projects here.

All my robotics experience wasn't possible without my good colleague and the best friend Mikhail Ilmenskii.

Vice President of Education for 2023-2024 year at Toastmasters Nice.

Integration of Axum with S3 storage

Recently, I encountered a challenge in integrating the Axum web framework and the rust-s3 library. The task at hand is to create two endpoints:

  1. Uploading a file to storage and obtaining a link.
  2. Downloading a file from storage using a link.

Of course, this should be done without using temporary files and without holding the entire file data in memory.

In this article, you'll find the complete code required to implement this functionality, accompanied by brief explanations.

Axum vs Actix vs Rocket

Логотип Rust

As Rust's prominence in web development continues to surge, this article embarks on an in-depth exploration, conducting a comprehensive performance evaluation of the three most coveted web frameworks - Axum, Actix and Rocket. We will not only compare their performance but also delve into their key features, assess documentation quality, and conduct rigorous performance testing. Through this analysis, we will build a simple REST service with three distinct endpoints, each using one of these frameworks. One endpoint delivers a formatted string, the second introduces a 20-millisecond delay to simulate light database work or an external service call, and the third performs resource-intensive work by calculating a bcrypt hash, simulating complex business logic. Whether you're a seasoned Rust developer or new to the language, this article equips you with invaluable insights to make well-informed decisions for your upcoming web projects.