[Rust Daily] 2023-09-02 Biblioteca Freya GUI

GUI Freya

Lancei a primeira versão do Freya, uma biblioteca GUI nativa experimental para Rust desenvolvida por Dioxus e Skia. Atualmente é executado em Windows, macOS e Linux.

Espero que esta primeira versão seja uma coleção de sugestões, ideias, comentários e contribuições.

Link do artigo, https://www.reddit.com/r/rust/comments/167zdd8/announcing_freya_gui_library/

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

Servidor HTTP Graniano

Servidor HTTP Rust para aplicativos Python.

As principais razões por trás do Granian são:

  • Tenha uma implementação única e correta de HTTP, com suporte às versões 1, 2 (e eventualmente 3)

  • Fornece um único pacote para múltiplas plataformas

  • Evite a combinação de dependência comum de Gunicorn + uvicorn + http-tools em sistemas unix

  • Fornece desempenho estável em comparação com alternativas existentes

Link do artigo, https://www.reddit.com/r/rust/comments/167yf41/granian_http_server_open_call_for_core/

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

Pavex DevLog #6: Projetando middleware seguro e ergonômico

Chegou a hora de mais um relatório de progresso da Pavex, cobrindo o trabalho realizado em julho e agosto!

Tenho trabalhado muito em um objetivo: adicionar suporte de middleware ao Pavex. Ainda está longe de ser perfeito, mas (finalmente) funciona

Usarei este relatório como uma oportunidade para me aprofundar em vários tópicos:

  • Por que o suporte de middleware é um requisito crítico para a prontidão para produção

  • Os desafios de projetar um sistema de middleware para o framework web Rust

  • Design de middleware Pavex

  • Limitações da nossa implementação atual

Mas se você tiver tempo limitado, aqui está um middleware de tempo limite simples para demonstrar o middleware no Pavex:

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
}

Link do artigo, https://www.lpalmieri.com/posts/pavex-progress-report-06/


Do grupo diário TOM

Assinatura da plataforma de intercâmbio de aprendizagem comunitária:

  • Fórum Rustcc: suporte rss

  • Conta pública WeChat: comunidade chinesa em idioma Rust

Acho que você gosta

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