Plugin MySQL para SA:MP escrito em Rust — por NullSablex
[!WARNING] Este projeto está em fase inicial de desenvolvimento. A API pode sofrer alterações entre versões.
mysql_samp é um plugin MySQL moderno para SA:MP (San Andreas Multiplayer) e open.mp construído inteiramente em Rust. Fornece uma API completa para conectividade com banco de dados, queries non-blocking, sistema de cache e ORM, sem nenhuma dependência externa em runtime.
libmysqlclient, sem OpenSSL. O protocolo MySQL e o TLS (via rustls) são compilados diretamente no binário.mysql_query executa em threads separadas com ordenação FIFO. Nunca trava o servidor.mysql::Pool, com thread safety nativa.cache_save..so ou .dll e funciona. Sem bibliotecas extras para instalar.mysql_samp.so (Linux)mysql_samp.dll (Windows)plugins/ do seu servidor.mysql_samp.inc para a pasta de includes do compilador:
pawno/include/ ou qawno/include/include/ (na raiz do servidor)server.cfg (ou config.json no open.mp):
plugins mysql_samp.so
No Windows:
plugins mysql_samp.dll
[!IMPORTANT] Não é necessário instalar
libmysqlclientou qualquer outra biblioteca. O plugin é auto-contido.
#include <a_samp>
#include <mysql_samp>
new gMysql;
public OnGameModeInit() {
gMysql = mysql_connect("127.0.0.1", "root", "senha", "samp_db");
if (mysql_errno()) {
return 1;
}
// Query non-blocking com callback
mysql_query(gMysql, "SELECT * FROM players LIMIT 10", "OnPlayersLoaded");
return 1;
}
forward OnPlayersLoaded();
public OnPlayersLoaded() {
new rows = cache_get_row_count();
printf("Jogadores encontrados: %d", rows);
new name[MAX_PLAYER_NAME];
for (new i = 0; i < rows; i++) {
cache_get_value_name(i, "name", name);
printf(" - %s", name);
}
}
public OnGameModeExit() {
mysql_close(gMysql);
return 1;
}
A documentacao completa do plugin esta em docs/:
| Documento | Conteudo |
|---|---|
| Instalacao e configuracao | Setup, server.cfg, requisitos |
| Conexao | mysql_connect, mysql_close, options, charset, SSL |
| Queries | mysql_query, mysql_pquery, mysql_format, mysql_escape_string |
| Cache | Todas as funcoes cache_*, save/restore, ciclo de vida |
| ORM | Mapeamento objeto-relacional, CRUD, bindings |
| Tratamento de erros | mysql_errno, mysql_error, OnQueryError, codigos |
| Referencia da API | Tabela completa de todas as natives e forwards |
| Seguranca | Escape, UTF-8, limites, boas praticas |
| Migracao do R41-4 | Diferencas e como migrar do mysql R41-4 |
i686-unknown-linux-gnu, i686-pc-windows-gnucargo build
bash scripts/build.sh
Os arquivos sao gerados em dist/ com checksums SHA-256.
[!CAUTION] Este plugin e distribuido sob a GPL v3. Qualquer trabalho derivado deve manter o codigo-fonte aberto sob a mesma licenca.
Copyright (c) 2026 NullSablex
Este projeto esta licenciado sob a GNU General Public License v3.0.