دليل Rust مع AllStak

أضف تتبّع الأخطاء والتتبّع إلى خدمة Rust عبر صندوق AllStak. (سطر التثبيت في README لا يزال يعرض 0.1؛ والصندوق المنشور هو 0.2.0.)

المستودع المصدر:
AllStak/allstak-rust
مسار README:
README.md
إصدار الـ SDK:
0.2.0
مصدر التثبيت:
crates.io
آخر تحقّق:
2026-05-31

التثبيت

أضف الاعتمادية إلى Cargo.toml (مع رايات ميزات اختيارية).

[dependencies]
allstak = { version = "0.2", features = ["tracing", "axum"] }

الإعداد

هيّئ مرّة واحدة واحتفظ بالـ guard المُعاد طوال عمر البرنامج.

let _guard = allstak::init(allstak::ClientOptions {
    api_key: std::env::var("ALLSTAK_API_KEY").unwrap_or_default(),
    host: "https://api.allstak.sa".into(),
    release: Some("[email protected]".into()),
    environment: Some("production".into()),
    ..Default::default()
});

مثال أساسي

أو هيّئ من البيئة عبر allstak::init_from_env().

let _guard = allstak::init_from_env();

التقاط الأخطاء

التقط الأخطاء والرسائل.

allstak::capture_message("cache warmed", Level::Info);

let err = std::io::Error::new(std::io::ErrorKind::Other, "disk full");
allstak::capture_error(&err);

تتبّع الطلبات

استخدم طبقة/وسيط إطار العمل (محكوم بالميزات): axum AllstakLayer، و actix Allstak wrap، و reqwest-middleware للصادر. تسجّل الطلبات الواردة/الصادرة وتواصل التتبّع الموزّع.

let app: Router = Router::new()
    .route("/users/:id", get(|| async { "ok" }))
    .layer(AllstakLayer::new());

أفضل الممارسات

  • أبقِ الـ _guard حيًّا طوال عمر البرنامج.
  • فعّل فقط ميزات الأطر التي تستخدمها (axum/actix/tracing/…).
  • وفّر مفتاح API عبر ALLSTAK_API_KEY.