تطوير وبرمجة

بناء API بالكامل باستخدام Rust و Axum: أداء خارق

1 دقيقة قراءة

Rust أصبحت الخيار الأول للمطورين الذين يبحثون عن الأداء والأمان معاً. في هذا المقال، نبني API مكتملاً باستخدام Axum framework ويتم قياس أدائه مقارنة بـ Go و Node.js.

لماذا Rust للـ APIs؟

  • الأداء: أسرع من Go و 10 أضعاف Node.js في اختبارات الـ throughput
  • الأمان: نظام Ownership يمنع memory leaks و data races في وقت الترجمة
  • التوازي: async/await أصلي وفعال مع Tokio runtime
  • التكلفة: استهلاك ذاكرة أقل يعني تكلفة سيرفر أقل

الكود الأساسي

main.rs

use axum::{Router, Json, extract::Path};
use serde::{Deserialize, Serialize};
use tower_http::cors::CorsLayer;

#[derive(Serialize, Deserialize)]
struct User {
  id: u64,
  name: String,
  email: String,
}

async fn get_user(Path(id): Path<u64>) -> Json<User> {
  Json(User {
    id,
    name: “أحمد”.into(),
    email: “ahmed@example.com”.into(),
  })
}

#[tokio::main]
async fn main() {
  let app = Router::new()
    .route(“/users/:id”, axum::routing::get(get_user))
    .layer(CorsLayer::permissive());

  let listener = tokio::net::TcpListener
    .bind(“0.0.0.0:3000”).await.unwrap();
  axum::serve(listener, app).await.unwrap();
}

نتائج Benchmark

Rust/Axum

142K rps

Go/Echo

112K rps

Node.js/Express

38K rps

Python/FastAPI

22K rps

0 تعليق

أضف تعليقاً