• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Library] rust-samp 3.0.0 Released
#1
Information 
rust-samp 3.0.0 Released

Write once in Rust, run as a SA-MP plugin or as a native Open Multiplayer component using a single binary.

GitHub Repository
|
Documentation


rust-samp 3.0.0 is now available.

This release represents the biggest milestone since the fork from the original samp-rs project.

What started as a SA-MP SDK has evolved into a complete Rust development platform focused on safety, stability, maintainability and native support for both SA-MP and Open Multiplayer.

Highlights
  • Native Open Multiplayer component support
  • Universal binary support
  • Pure Rust implementation
  • No C or C++ dependencies
  • Unified tick handling
  • Automatic component metadata generation
  • Integrated logging support
  • Improved safety and reliability
  • Modern documentation and examples

Native Open Multiplayer Support

The Open Multiplayer component ABI was fully analyzed and implemented in pure Rust.

No Open Multiplayer C/C++ implementation is required.

No C/C++ bindings are required.

No runtime dependency on Open Multiplayer is required.

Plugins can run as native Open Multiplayer components while maintaining a completely Rust-based codebase.

Universal Binary Support

A single build can operate as:
  • A traditional SA-MP plugin
  • A native Open Multiplayer component

No separate builds are necessary.

Compile once and deploy wherever needed.

Unified Tick Handling

SA-MP and Open Multiplayer use different tick mechanisms.

rust-samp 3.0.0 introduces a significantly improved abstraction layer that handles these differences internally and provides a predictable development experience regardless of runtime environment.

Developers can focus on plugin logic instead of platform-specific behavior.

Automatic Component Metadata

Traditional Open Multiplayer development requires manually generating and maintaining component identifiers.

rust-samp automates this process and integrates naturally with Cargo metadata while still allowing manual customization when necessary.

Less boilerplate.

Less duplication.

Fewer mistakes.

Integrated Logging

The SDK provides built-in logging support.

Developers can immediately use logging without adding extra logging crates or implementing platform-specific integrations.

Safety and Stability

rust-samp includes extensive improvements focused on:
  • Memory safety
  • Pointer validation
  • Bounds checking
  • Panic handling
  • Safer runtime internals
  • Cross-platform consistency
  • Extensive testing

The SDK is designed to provide a reliable and predictable foundation for production-grade plugins.

Used by Real Projects

The SDK already powers multiple plugins:

These projects already benefit from native Open Multiplayer support and the universal binary architecture introduced in v3.0.0.

Example

Code:
use samp::prelude::*;
use samp::{initialize_plugin, SampPlugin};

#[derive(SampPlugin, Default)]
struct MyPlugin;

initialize_plugin!(
    type: MyPlugin,
    natives: [],
);

Documentation

https://rust-samp.nullsablex.com

Recommended reading:

Plugin Anatomy

Repository

https://github.com/NullSablex/rust-samp

Português (Brasil)

rust-samp 3.0.0 já está disponível.

Esta é a maior atualização desde o fork do projeto original samp-rs.

O que começou como um SDK para SA-MP evoluiu para uma plataforma completa de desenvolvimento em Rust, focada em segurança, estabilidade, manutenção de longo prazo e suporte nativo para SA-MP e Open Multiplayer.

Principais Destaques
  • Suporte nativo a componentes Open Multiplayer
  • Binário universal
  • Implementação 100% Rust
  • Sem dependências de C ou C++
  • Sistema de ticks unificado
  • Geração automática de metadados
  • Sistema de logs integrado
  • Maior segurança e confiabilidade
  • Documentação moderna e exemplos completos

Suporte Nativo ao Open Multiplayer

A ABI de componentes do Open Multiplayer foi totalmente analisada e implementada em Rust puro.

Não há dependência da implementação oficial em C/C++.

Não há dependência de bindings C/C++.

Não há dependência de runtime do Open Multiplayer.

Os plugins podem funcionar como componentes nativos do Open Multiplayer mantendo uma base de código totalmente em Rust.

Binário Universal

Um único build pode funcionar como:
  • Plugin tradicional do SA-MP
  • Componente nativo do Open Multiplayer

Sem necessidade de compilações separadas.

Sistema de Tick Unificado

SA-MP e Open Multiplayer utilizam mecanismos diferentes para execução de ticks.

A versão 3.0.0 introduz uma camada de abstração significativamente mais robusta que resolve essas diferenças internamente e fornece uma experiência muito mais previsível para o desenvolvedor.

Metadados Automáticos

No fluxo tradicional do Open Multiplayer é necessário gerar e manter identificadores manualmente.

O rust-samp automatiza esse processo e integra essas informações ao Cargo, reduzindo código repetitivo e eliminando erros comuns.

Sistema de Logs Integrado

O SDK fornece suporte nativo para logs.

Não é necessário adicionar bibliotecas extras ou implementar integrações específicas para cada plataforma.

Segurança e Estabilidade

O rust-samp inclui diversas melhorias focadas em:
  • Segurança de memória
  • Validação de ponteiros
  • Verificação de limites
  • Tratamento de panic
  • Internos mais seguros
  • Consistência entre plataformas
  • Ampla cobertura de testes

O objetivo é fornecer uma base muito mais confiável, previsível e estável para plugins em produção.

Projetos Utilizando o SDK

Documentação

Plugin Anatomy

GitHub Repository
  Reply


Forum Jump: