A schema-driven, file-based database with encryption
Project description
Pybase
Pybase é um banco de dados baseado em arquivos JSON com schema opcional, criptografia nativa e zero dependências externas — apenas Python puro.
✅ Sem servidor · ✅ Sem SQL · ✅ Sem dependências · ✅ Fácil
Instalação
pip install python-pybase
Python 3.10+ apenas. Nenhuma dependência externa é necessária.
Instalação para desenvolvimento
git clone https://github.com/marcosgabrielgomes110-collab/Pybase2.git
cd Pybase2
pip install -e .
Exemplo rápido
from pybase import Pybase as pb
# Schema opcional
users = pb.schema(
nome=str,
idade=int,
senha=pb.cript(str), # campo criptografado
foto=pb.image, # campo imagem
email=pb.optional(str), # opcional
)
# Criar/abrir banco
db = pb.database("meudb", "123", schema=users)
# Inserir
id_ = db.insert(nome="João", idade=30, senha="joao123")
# Consultar
db.query.all() # todos registros
db.query.find(idade__gte=18) # filtro com operador
db.query.get(id=id_) # por UUID
Funcionalidades
| Funcionalidade | Descrição |
|---|---|
| 📦 Schema opcional | Define a estrutura dos dados com tipos Python (str, int, float, bool) |
| 🔒 Criptografia | Campos protegidos com PBKDF2-SHA256 + HMAC-CTR |
| 🖼️ Imagens | Armazenamento automático de arquivos de imagem |
| 🔍 Consultas | Filtros, ordenação, paginação, operadores (__gte, __contains, etc.) |
| 📋 Transações | begin / commit / rollback |
| 💾 Backup | Exportação zip completa do banco |
| 📤 Export | JSON e CSV com filtros |
| 🧹 Zero dependências | Apenas stdlib do Python 3.10+ |
Documentação
- Guia Rápido — comece aqui
- Schema — tipos, campos opcionais, criptografia, imagem
- Database — CRUD, transações, backup, export
- Consultas — filtros, operadores, ordenação, paginação
- Segurança — criptografia, escrita atômica, validação
- API — referência completa
Testes
python -m pytest tests/ -v
Licença
MIT — veja LICENSE.
Contribuindo
Contribuições são bem-vindas! Veja CONTRIBUTING.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_pybase-0.1.0.tar.gz.
File metadata
- Download URL: python_pybase-0.1.0.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Freedesktop SDK","version":"25.08","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0423700937da6274ca3773de51df1267fa5bf9846645f2ec473742c5c548973
|
|
| MD5 |
59abb0718543d941e497906f01f5ba78
|
|
| BLAKE2b-256 |
43c852605882862a0df05b93c2a45d127cf270ec374fd2d3635a40457a9816e7
|
File details
Details for the file python_pybase-0.1.0-py3-none-any.whl.
File metadata
- Download URL: python_pybase-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Freedesktop SDK","version":"25.08","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfde1805571512aac8350094e7236c9f3cd183aa8361788ab000f78d60bb28ee
|
|
| MD5 |
cd762036546e771ef982ac57b99dcb05
|
|
| BLAKE2b-256 |
65ce91917b8f16d74d2b3eca88c72f085fe041bf2afd9b3e06e2172558159b21
|