Alexandre FIOTTI
Développeur Backend Rust
- Spécialiste AXUM
Votre backend Rust, robuste et maintenable, développé avec efficacité grâce à Axum.
Whoami ?
Développeur freelance spécialisé en Rust, ingénieur des Arts et Métiers, je conçois des backends robustes, performants et maintenables avec Axum.
J'exerce mon activité au sein du collectif Bashroom et j'interviens pour des clients exigeants tels que Blanche Capital ou Hachette Livre. Pour le premier, j’ai développé un backend en Rust pour automatiser des processus internes critiques. Pour le second, j’ai conçu, toujours avec Axum, l’orchestrateur backend de la refonte du système APIM/IAM de leur nouvelle plateforme de manuels scolaires.
Ma philosophie de développement s'articule autour de la qualité, l'efficacité et la satisfaction client.
Je travaille à distance, collaborant avec des clients internationaux pour apporter des solutions techniques d'excellence.
Services proposés
Audit Technique
Revue de code, accompagnement ciblé et optimisation de performances.
Architectures Backend
Création d'infrastructures backend sécurisées et scalables.
APIs Performantes
Conception et développement d'APIs performantes et robustes basées sur Axum.
Migration Legacy
Transition de systèmes legacy vers Rust/Axum pour des gains de performance significatifs.

Engagement
Communication transparente tout au long du projet, en contact fréquent avec vos équipes.

Objectif
Consolider votre équipe avec mon expertise Axum et devenir un partenaire technique fiable de référence.
Approche du Code
Programmation fonctionnelle
Approche fonctionnelle pour un code clair et prévisible. Les fonctions pures minimisent les effets de bord et renforcent la fiabilité.
Typage strict
Exploitation du système de types de Rust pour prévenir les erreurs dès la compilation, garantissant sécurité et stabilité.
Management des erreurs
Gestion d'erreurs explicite grâce au Result<> de Rust. Chaque erreur est catégorisée et traitée pour maximiser la résilience.
Testing
Tests unitaires et d'intégration sur chaque composant pour assurer robustesse et fiabilité à long terme.
Documentation
Documentation précise avec exemples concrets pour faciliter compréhension, maintenance et intégration rapide des APIs.
Mindset
Open Source
Je valorise l'open source comme moteur d'innovation durable et de qualité.
Relations humaines
Je bâtis des collaborations authentiques fondées sur la confiance et la transparence.
Innovations technologiques
Ma curiosité pour les technologies émergentes alimente mon enthousiasme professionnel.
Soif d'apprendre
Chaque défi représente une opportunité d'apprentissage et de perfectionnement.
Axum
Axum est un framework web asynchrone en Rust, conçu pour créer des APIs sûres, performantes et maintenables grâce à une architecture fonctionnelle, typée et modulaire.
Porté par Tokio et Tower, il se distingue par des performances nettement supérieures aux solutions mainstream, une sécurité mémoire intrinsèque, et une expressivité qui en fait un choix de premier plan pour des backends robustes et durables.
Ce benchmark, diponible sur Sharkbench, met en évidence l’avantage net d’Axum en termes de performance, stabilité et empreinte mémoire, face aux frameworks web les plus utilisés du marché:
https://sharkbench.dev/web/rust-axum
Exemple technique : Axum en action
Découvrez ce serveur minimal qui vous plonge dans la syntaxe du langage Rust et la mise en place d'Axum.
Il expose une API HTTP avec un endpoint POST /users, accepte un JSON contenant un nom d’utilisateur et renvoie une réponse simulée avec un identifiant calculé (longueur du nom) et un message de bienvenue.

use std ::{ io , net :: SocketAddr };

use axum::{extract::Json, http::StatusCode, routing::post, Router}; use serde::{Deserialize, Serialize}; /// Structure representing the expected input JSON payload #[derive(Deserialize)] struct UserInput { username: String, } /// Structure representing the output JSON response #[derive(Serialize)] struct ApiResponse { user_id: u64, welcome: String, } /// Enum to represent possible top-level errors in main() #[derive(Debug)] enum MainError { TcpBind { source: io::Error }, // Binding to the TCP socket failed Serve { source: io::Error }, // Server run failed } #[tokio::main] async fn main() -> Result<(), MainError> { // Define the HTTP API routes let routes = Router::new().route("/users", post(handle_user)); // Bind a TCP socket on all interfaces at port 8000 let addr = SocketAddr::from(([0, 0, 0, 0], 8000)); let listener = tokio::net::TcpListener::bind(addr) .await .map_err(|source| MainError::TcpBind { source })?; // Start the HTTP server using the defined routes axum::serve(listener, routes.into_make_service()) .await .map_err(|source| MainError::Serve { source })} /// Handler for POST /users that processes JSON input and returns JSON output async fn handle_user(Json(input): Json<UserInput>) -> (StatusCode, Json<ApiResponse>) { // Simulate user creation: user_id based on username length let reply = ApiResponse { user_id: input.username.len() as u64, welcome: format!("Hello, {}!", input.username), }; // Return 201 Created with a JSON body (StatusCode::CREATED, Json(reply)) }

Contact
Disponible pour des missions courtes ou longues, développement complet ou renfort d'équipe
Email
Réponse garantie en moins de 24 heures
Social
Ou prenez rendez-vous directement avec Calendly:
Loading...