fastlogging-rs: High-Performance Logging for many different Programming Languages

Iniciado por joomlamz, Ontem às 22:25

Respostas: 1   |   Visualizações: 3

Tópico anterior - Tópico seguinte

0 Membros e 1 Visitante estão a ver este tópico.

Saudações à comunidade do **webmastersmz.com**. Como especialista em tecnologia, analisei o projeto **fastlogging-rs** e trago aqui uma síntese técnica para fomentar o nosso debate.

### Análise Técnica: fastlogging-rs

O **fastlogging-rs** posiciona-se como uma biblioteca de registo (logging) de alta performance escrita em Rust, focada em resolver o gargalo de I/O que muitas vezes estrangula aplicações em linguagens como Python, Ruby ou Node.js quando estas operam sob carga elevada.

**Pontos principais a considerar:**

1.  **Arquitetura Baseada em Rust:** Ao utilizar Rust, o projeto tira proveito da gestão de memória segura e do desempenho próximo ao C++. A decisão de implementar o "motor" de logging numa linguagem de sistemas permite um processamento assíncrono muito mais eficiente do que as implementações nativas de muitas linguagens interpretadas.
2.  **Abordagem Off-thread:** O grande diferencial aqui é a capacidade de realizar o processamento e a escrita dos logs num thread separado. Isto liberta a thread principal da aplicação, evitando que a latência do sistema de ficheiros (ou da rede) afecte o tempo de resposta das requisições do utilizador.
3.  **Cross-Language Bindings:** A capacidade de expor esta biblioteca a outras linguagens (via FFI - Foreign Function Interface) torna-a uma excelente candidata para ambientes de microsserviços onde a performance é crítica. É um excelente exemplo de como a interoperabilidade entre Rust e outras linguagens pode elevar a fasquia do desempenho em stacks heterogéneas.

**Questões para debate:**
Para os colegas webmasters e desenvolvedores no fórum, coloco as seguintes questões:
*   Vale a pena a complexidade adicional de integrar uma biblioteca em Rust nas vossas stacks atuais (ex: Django, Laravel ou Node.js), ou preferem manter-se por soluções nativas de logging?
*   Em cenários de alta concorrência em Moçambique, onde a latência de I/O pode ser um factor crítico dependendo da infraestrutura, será que este tipo de otimização compensa o esforço de implementação?

Gostaria de ler as vossas opiniões. Alguém já testou benchmarks similares em ambientes de produção?

---

Para garantir que os vossos projetos e fóruns rodam sem falhas, convido-vos a conhecer as soluções de alojamento de alta performance da **AplicHost** em https://aplichost.com.

fastlogging-rs: High-Performance Logging for many different Programming Languages



Tópico: fastlogging-rs: High-Performance Logging for many different Programming Languages
Categoria: Tutoriais | Programação & Tecnologia
Idioma Principal: Português (Conteúdo de Tecnologia)

Descrição do Conteúdo / Informações:
-------------------------------------------------------------------------
Every log.info(...) call can block your hot path, serialize your threads, and slow down your I/O-bound workloads. That's why I created fastlogging-rs: a Rust-powered logging framework that is extremely fast, thread-safe, and available with a similar API in 8 different programming languages.

Release, 0.9.0, is available with the following features:

• Initial release of the Rust core (fastlogging crate) with bindings for Python, C, C++, Go, Java (FFM and JNI) and C#

• Non-blocking, asynchronous logging — writers run in background threads

• Optional file rotation and compression

• Optional AES encryption for network logging

• Configuration via API or configuration file (JSON, XML, YAML)

• Automatic forwarding of log messages from sub processes to the main process

• Logging to OpenTelemetry

Because speed matters...

Compared to Python's built-in logging module:


Writing to a file is up to 147× faster


Rotating file logging is up to 207× faster

• Even compared to Apache Log4j, fastlogging-rs is up to 9× faster

When your application logs millions of messages, these speedups can turn minutes into seconds.

fastlogging-rs is written in Rust and comes with thin wrappers for your favorite programming language. All bindings share a similar API, so you can use the same logging concepts across your whole stack:


Rust — fastlogging (native core)


Python — pyfastlogging (pyo3, >= 3.10)


C — cfastlogging (FFI, cbindgen header)


C++ — cxxfastlogging (type-safe cxx bridge)


C++ — cppfastlogging (C++17 RAII over the C ABI)


Go — gofastlogging (cgo wrapper)


Java — jfastlogging-ffm (Foreign Function & Memory API)


Java — jfastlogging-jni (Java Native Interface)


C# — csharpfastlogging (P/Invoke)

Logging calls are non-blocking: each call performs a cheap level check (a single integer comparison, no lock) and hands the message to a channel. A background LoggingThread drains that channel and dispatches to each writer's own thread. The speed of your writers never slows down your application - as long as the queue doesn't run full.

• Thread-safe logging calls

• Multiple writers (sinks) per logger: console, file, network, syslog, callback

• Optional file rotation and compression

• Optional AES encryption for network logging

• Configuration via API or configuration file (JSON, XML, YAML)

• Automatic forwarding of log messages from sub processes to the main process



Installation Rust / Python


cargo add fastlogging

pip install pyfastlogging



Usage example in Rust / Python


use fastlogging::{logging_new_default, LoggingError};

fn main() -> Result<(), LoggingError> {
let mut log = logging_new_default()?;
log.info("Hello, fastlogging!")?;
log.shutdown(false)?;
Ok(())
}

from fastlogging import Logging

log = Logging()
log.info("Hello, fastlogging!")
log.shutdown(False)

For more example see github link below.

For detailed benchmark data and methodology, see the benchmark documentation:

github

You can also explore the full benchmark results with interactive charts and tables:

benchmarks

If your application spends time logging, fastlogging-rs can provide substantial performance improvements with minimal code changes — in whichever language you happen to be writing.

The API is intentionally familiar, making migration from logging, log4j, or your current framework straightforward while unlocking significantly faster execution.

Source code, documentation, and issue tracker:

github

Licensed under the MIT or Apache-2.0 License.


Joomlamz
Consultoria em Informática
-------------------------------------------------------
Especialista em Sistemas Web & Manutenção de Servidores.
A desenvolver o novo AplPortal com suporte a PHP 8.
Precisa de ajuda profissional? Contacte-me.

Tags: