Fiz um DB?
Faz um tempo que fiz uma pergunta aqui, meu primeiro post na Tabnews, perguntei sobre um banco de dados que usa JSON e a estrutura do firebease pra guardar as informações.
Sei que ainda tem muito a melhora e que JSON local não é a melhor forma de fazer isso, mas é um começo e está sendo divertido fazer o pacote.
Fiz porque sentia a necessidade de persistir as informações em algum lugar, mas nao queria me restringir ao localStorage no navegador ou ter que usar um DB pra algo do node ou bun, como uma CLI por exemplo.
Toda vez tinha que ir no Firebase, fazer um novo app pra poder usar o Firestore ou ir na AWS pra usar o DynamoDB. Com o Jason eu só adicono o pacote, crio as coleções e pronto.
Então acho que isso vai me ajudar bastante e resolvi compartilhar no npm para poderem usar também. Ainda tenho algumas coisas para ajeitar no Github e melhorias, mas para o basico está funcionando até que muito bem 🙂.
Entendo a ideia e os desafios de criar um novo BD.
Mas com isso me surgem alguns questionamentos:
1 - De forma prática e objetiva, não seria mais simples usar alternativas como o SQLite, por exemplo? Amplamente testado, performático e mantido há anos. Essa sugestão se dá por parecer estar criando algo muito similar.
2 - Um container docker com MongoDB não seria uma outra boa opção para esses casos de usos citados?
No mais, parabéns pelo trampo. Não é nada fácil fazer algo desse tipo do zero.
Gostei demais! Usava um parecido em .NET, mas não lembro o nome...
Quando penso em "banco local", me vem SQLite logo de primeira. Mas criar tabela e ter que escrever sql é chatão, e as vezes nem compensa um ORM pro tamanho da aplicação.
Teria como usar em projetos node sem bun? Afinal, é JS.
PS.: Faz um benchmark dele com SQLite, se der :D
Esse seria um DB simples para ser usado em ambiente local para pequenos testes, certo? Não cheguei a ver o código fonte, mas você já chegou a fazer testes de estresse/benchmark para ter métricas de desempenho? E quanto a execução de queries complexas, seria possível fazer um de/para de consultas usando join, union.. ?