[Rust Daily] 02.09.2023 Freya GUI-Bibliothek

Freya-GUI

Ich habe die erste Version von Freya veröffentlicht, einer experimentellen nativen GUI-Bibliothek für Rust, unterstützt von Dioxus und Skia. Es läuft derzeit auf Windows, macOS und Linux.

Ich hoffe, dass diese erste Version eine Sammlung von Vorschlägen, Ideen, Rückmeldungen und Beiträgen sein wird.

Artikellink, https://www.reddit.com/r/rust/comments/167zdd8/anncreasing_freya_gui_library/

Github-Link, https://github.com/marc2332/freya

Granian HTTP-Server

Rust HTTP-Server für Python-Anwendungen.

Die Hauptgründe für Granian sind:

  • Verfügen Sie über eine einzige, korrekte Implementierung von HTTP, die die Versionen 1, 2 (und schließlich 3) unterstützt.

  • Bietet ein einziges Paket für mehrere Plattformen

  • Vermeiden Sie die übliche Abhängigkeitskombination von Gunicorn + uvicorn + http-tools auf Unix-Systemen

  • Bietet stabile Leistung im Vergleich zu bestehenden Alternativen

Artikellink, https://www.reddit.com/r/rust/comments/167yf41/granian_http_server_open_call_for_core/

Github-Link, https://github.com/emmett-framework/granian

Pavex DevLog #6: Sichere und ergonomische Middleware entwerfen

Es ist Zeit für einen weiteren Fortschrittsbericht von Pavex, der die im Juli und August geleistete Arbeit abdeckt!

Ich habe hart an einem Ziel gearbeitet: das Hinzufügen von Middleware-Unterstützung zu Pavex. Es ist noch lange nicht perfekt, aber es funktioniert (endlich).

Ich werde diesen Bericht zum Anlass nehmen, mich mit mehreren Themen zu befassen:

  • Warum Middleware-Unterstützung eine entscheidende Voraussetzung für die Produktionsbereitschaft ist

  • Die Herausforderungen beim Entwurf eines Middleware-Systems für das Rust-Webframework

  • Pavex-Middleware-Design

  • Einschränkungen unserer aktuellen Implementierung

Wenn Sie jedoch wenig Zeit haben, finden Sie hier eine einfache Timeout-Middleware, um die Middleware in Pavex zu demonstrieren:

use pavex::{middleware::Next, response::Response};
use std::future::IntoFuture;
use tokio::time::{timeout, error::Elapsed};

pub async fn timeout_middleware<C>(
    // A handle on the rest of the processing pipeline for the incoming
    // request. 
    //
    // Middlewares can choose to short-circuit the execution (i.e. 
    // return an error and abort the processing) or perform some 
    // computation and then delegate to `next` by awaiting it.
    //
    // All middlewares in Pavex *must* take `Next<_>` as an input.
    next: Next<C>,
    // Middlewares can take advantage of dependency injection! 
    // You just list what inputs you need and the framework will provide them
    // (if possible, or return a nice error at *compile-time* if not).
    //
    // `TimeoutConfig` could be defined at start-up time, sharing the same 
    // value for all routes, or it could be customised at runtime on a 
    // per-request basis (e.g. to provide a configurable quality of service
    // depending on the pricing plan of the client issueing the request).
    // `timeout_middleware` doesn't care how or when `TimeoutConfig`
    // gets computed. 
    // Happy decoupling!
    config: TimeoutConfig
) -> Result<Response, Elapsed>
where
    C: IntoFuture<Output = Response>
{
    timeout(config.request_timeout, next.into_future()).await
}

Artikellink, https://www.lpalmieri.com/posts/pavex-progress-report-06/


Von der Tagesgruppe TOM

Abonnement der Community-Learning-Exchange-Plattform:

  • Rustcc-Forum: RSS unterstützen

  • Öffentliches WeChat-Konto: Chinesische Community in Rust-Sprache

Supongo que te gusta

Origin blog.csdn.net/u012067469/article/details/132658350
Recomendado
Clasificación