📄 NDS (Notação de Dados Sol)
Biblioteca para serialização e deserialização de dados no formato Sol nativo.
O que é NDS? NDS é uma alternativa ao JSON que usa sintaxe Sol/Lua, tornando-o mais natural para desenvolvedores Sol.
É ideal para arquivos de configuração, persistência de dados e comunicação entre processos Sol.
📝 Formato NDS
O formato NDS é similar a tabelas Sol, sem necessidade de retorne {}:
-- config.nds
servidor = "localhost"
porta = 8080
debug = verdadeiro
banco_dados = {
host = "127.0.0.1",
usuario = "admin",
senha = "secreto"
}
usuarios = {
{nome = "João", nivel = 10},
{nome = "Maria", nivel = 5}
}
📚 Funções
nds.carregue (texto)
Converte uma string no formato NDS para uma tabela Sol.
Parâmetros
texto: Texto - Conteúdo NDS a ser parseado.
Retorno
Tabela ou (nulo, mensagem de erro).
Exemplo
local dados = nds.carregue([[
nome = "Maria",
ativo = verdadeiro
]])
exiba(dados.nome) -- "Maria"
nds.carregue_arquivo (caminho)
Lê um arquivo NDS e retorna seu conteúdo como tabela.
Parâmetros
caminho: Texto - Caminho para o arquivo .nds.
Retorno
Tabela ou (nulo, mensagem de erro).
Exemplo
local config = nds.carregue_arquivo("config.nds")
exiba(config.servidor)
nds.converta (tabela)
Converte uma tabela Sol para string no formato NDS.
Parâmetros
tabela: Tabela - A tabela a serializar.
Retorno
Texto no formato NDS.
Exemplo
local dados = {nome = "João", idade = 25}
local texto = nds.converta(dados)
exiba(texto)
-- {
-- nome = "João",
-- idade = 25
-- }
nds.salve (caminho, tabela)
Salva uma tabela em um arquivo no formato NDS.
Parâmetros
caminho: Texto - Caminho do arquivo de destino.tabela: Tabela - Dados a salvar.
Retorno
verdadeiro ou (falso, mensagem de erro).
Exemplo
local dados = {usuario = "admin", nivel = 10}
nds.salve("usuario.nds", dados)
nds.converta_arquivo (tabela)
Converte uma tabela para string no formato de arquivo NDS (sem o wrapper de tabela).
Parâmetros
tabela: Tabela - A tabela a serializar.
Retorno
Texto pronto para salvar em arquivo .nds.
Exemplo
local dados = {nome = "João", idade = 25}
local conteudo = nds.converta_arquivo(dados)
-- nome = "João"
--
-- idade = 25
🔄 NDS vs JSON
NDS
nome = "João"
idade = 30
ativo = verdadeiro
endereco = {
cidade = "São Paulo",
cep = "01234-567"
}
JSON
{
"nome": "João",
"idade": 30,
"ativo": true,
"endereco": {
"cidade": "São Paulo",
"cep": "01234-567"
}
}
Vantagens do NDS:
- Sintaxe familiar para desenvolvedores Sol/Lua
- Suporta comentários (
-- comentário) - Chaves sem aspas quando são identificadores válidos
- Usa
verdadeiro/falso/nuloem vez detrue/false/null