Banco de dados local com JSON — schemas, decorator API, server REST, criptografia, zero dependencias
Project description
Pybase v0.4
Base para criacao de bancos de dados locais com JSON. Zero dependencias, 100% stdlib. Operacoes de escrita atomicas, thread-safe.
Filosofia Lego: cada modulo e independente — voce monta o que precisa.
Instalacao
pip install pybasedb-json
Para o servidor REST (opcional):
pip install Flask
Uso rapido
from pybase import pybase as pb
# Banco de dados (sem senha ou com senha)
db = pb.Database("./data/mydb")
# db = pb.Database("./data/mydb", password="senha").open("senha")
# Schema com decorator (v0.4+)
@db.schema.users
class User:
name: str
email: str
age: int = 0
active: bool = True
# Ou com T() explicito
# from pybase.validation import T
# db.schema.users = pb.Schema({"name": pb.T(str), "age": pb.T(int, default=0)})
# Colecao com validacao automatica
users = db["users"]
users.add({"name": "marcos", "email": "m@m.com"}) # auto-ID
# SDK client
doc = users["1"].get()
users.find(age=0)
# Consultas direto na colecao (v0.4+)
users.sort("name").limit(10).find(active=True)
users.find_one(name="ana")
users.exists(name="joao")
# Servidor REST (requer Flask)
pb.Server(db).run(port=4560) # auto-detecta colecoes
# Swagger UI: http://localhost:4560/mydb/docs/
Modulos
| Modulo | Arquivo | Descricao | Deps |
|---|---|---|---|
| Database | pybase/database.py |
Gerencia diretorio de tabelas JSON | 0 |
| Collection | pybase/collections.py |
CRUD atomico thread-safe + query integrado | 0 |
| Query | pybase/query.py |
Thin wrapper sobre Collection | 0 |
| Schema | pybase/validation.py |
Validacao com T(), decorator, from_example | 0 |
| Server | pybase/server.py |
REST API automatica + Swagger UI | Flask |
| Media | pybase/media.py |
Upload/download de imagens | 0 |
| Backup | pybase/backup.py |
Snapshot e restore (seletivo) | 0 |
| Crypto | pybase/crypto.py |
Criptografia stdlib (scrypt + XOR) | 0 |
Novidades da v0.4
- API simplificada —
Database("./data/mydb")sem senha obrigatoria update/delete— nomes em ingles, sem aliases pt-br- Auto-ID —
users.add({"name": "x"})gera UUID automatico db["colecao"]— acesso direto via__getitem__- Query integrado —
collection.sort().limit().find()direto @db.schema.nome— schema via decorator de classeT()— nova API de tipos com kwargs (T(int, default=0))Schema.from_example()— schema inferido de dados reaisimport global—from pybase import pybase- PBKDF2 — hashing de senha com salt (600k iteracoes)
- Criptografia —
encrypt()/decrypt()stdlib puro - Server auto-detect —
Server(db).run()descobre colecoes - Erros descritivos — com path + valor + sugestao
Estrutura
Pybase/
pybase/
__init__.py # Database, Collection, Query, Server, Schema, T
pybase.py # from pybase import pybase
database.py # Database, SchemaRegistrar
collections.py # Collection, DocRef, QueryBuilder, SchemaCollection
query.py # Query wrapper
exceptions.py # PybaseError > DatabaseError, CollectionError, ...
validation.py # Schema, T, ValidationError
server.py # Server REST (Flask)
media.py # MediaManager
index.py # Index (hash O(1))
hooks.py # HooksCollection
backup.py # take, restore
crypto.py # encrypt, decrypt (stdlib)
utils.py # PBKDF2 encode/verify
docs/ # Documentacao completa
pyproject.toml
Documentacao
Veja docs/ com referencia completa de cada classe e metodo.
Licenca
MIT
Project details
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 pybasedb_json-0.4.0.tar.gz.
File metadata
- Download URL: pybasedb_json-0.4.0.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
554ce3ec1d2a95976b8b7a27b8becfb9a19242ba05a110b1f7bd5b4fcd0ab039
|
|
| MD5 |
42a11d8549a7af7b4711b2f81c9ca300
|
|
| BLAKE2b-256 |
0d6f7f797d91850c3d7af38d0275ec3fd54c572305b45f4aada9f524072373e5
|
File details
Details for the file pybasedb_json-0.4.0-py3-none-any.whl.
File metadata
- Download URL: pybasedb_json-0.4.0-py3-none-any.whl
- Upload date:
- Size: 21.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60289d5f089b51fe9453fc2f87d18e32b69ab8dcf3fe45348b2e5271a8efbf3c
|
|
| MD5 |
620ddeafe8d1feb07e9a027273ed994e
|
|
| BLAKE2b-256 |
c5b947fd8c334a9279a553216b7f63f791eb756286d83aa99f80c412fd629476
|