Skip to main content

Gitnix

Turn any GitHub repository into a fast, encrypted, zero-knowledge database.

PyPI Python License: MIT

Gitnix is a Python SDK that uses GitHub repos as a database backend. All data is end-to-end encrypted client-side — GitHub never sees your plaintext data.

Install

pip install gitnix

Quick Start

import os
from gitnix import Gitnix
from gitnix.types import GitnixConfig

db = Gitnix(GitnixConfig(
    repo="your-username/my-database",
    token=os.environ["GITHUB_TOKEN"],
    password="my-secret-encryption-key",
))

async with db:
    users = db.collection("users")

    # Insert
    await users.insert({"name": "Alice", "age": 30, "email": "alice@example.com"})

    # Query (MongoDB-style)
    adults = await users.find({"age": {"$gte": 18}})

    # Update
    await users.update({"name": "Alice"}, {"$set": {"age": 31}})

    # Delete
    await users.delete({"name": "Alice"})

    # Sync encrypted data to GitHub
    await db.sync()

Features

  • Zero-Knowledge Encryption — XSalsa20-Poly1305 + Argon2id key derivation
  • MongoDB-Style Queries$eq, $gt, $in, $or, $regex, $contains, and more
  • Sub-millisecond Operations — Local-first with encrypted disk cache
  • GitHub Sync — On-demand push/pull to GitHub (encrypted blobs only)
  • Binary/Image Storage — Chunked upload/download with MIME detection
  • Transactions — Optimistic locking with conflict detection
  • Async-Native — Built on asyncio with full async/await support
  • Fully Typed — Complete type annotations, strict mypy compatible
  • Rate Limit Aware — Built-in rate limiter with queue and backpressure

Performance

Operation Avg Latency Throughput
Create record 1.2ms 813 req/s
Read single 0.98ms 1,021 req/s
List all (50 docs) 1.0ms 995 req/s
Filtered query 0.65ms 1,531 req/s
Update record 1.0ms 1,000 req/s
Delete (+ cascade) 0.66ms 1,526 req/s
Push to GitHub ~3.0s 6 API calls
Pull from GitHub ~1.2s 3 API calls

Security

Property Implementation
Algorithm XSalsa20-Poly1305 (256-bit key)
Key derivation Argon2id (memory-hard, GPU-resistant)
Per-record nonces Random 24-byte nonce per encryption
Filename obfuscation SHA-256 hashed names
Zero plaintext GitHub only receives encrypted blobs

Security audit: A+ (49/49 tests passed across 11 categories)

Who Should Use This?

✅ Solo developers, side projects, MVPs, hackathons, privacy-focused apps, students, note-taking apps, config management, small teams (< 10), IoT/edge devices.

❌ Not for: high-traffic production (1000+ concurrent users), real-time apps, complex SQL joins, high-frequency writes (100+/sec), or data > 100GB.

Query Operators

# Comparison
await users.find({"age": {"$gt": 18}})
await users.find({"status": {"$in": ["active", "pending"]}})

# Logical
await users.find({"$or": [{"city": "NYC"}, {"city": "LA"}]})

# String
await users.find({"name": {"$contains": "alice"}})
await users.find({"email": {"$regex": "^admin@"}})

# Options
await users.find(query, sort={"age": -1}, skip=0, limit=20)

Also Available

  • JavaScript/TypeScript SDK: npm install gitnixnpm
  • Full Example App: Event registration platform with admin panel, auth, and 45 E2E tests

Documentation

License

MIT — Quilonix

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitnix-1.1.0.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitnix-1.1.0-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file gitnix-1.1.0.tar.gz.

File metadata

  • Download URL: gitnix-1.1.0.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for gitnix-1.1.0.tar.gz
Algorithm Hash digest
SHA256 cb5584521f1b9af7f4e2656ac70fa4f50e7763cd34248c0fa8f4f5d239730d8a
MD5 8db0c2fc97292c2d913cd91952196a3b
BLAKE2b-256 03b2f20c4182cdf418016377569481f797e7869f5e3fea80764df038ebf6b1ea

See more details on using hashes here.

File details

Details for the file gitnix-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: gitnix-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for gitnix-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8c8621065daf78c30ea50dbcdad6e0ba66b4068c43a4d486990b7ec13782d96
MD5 7d9e1c6d7ed043a1453f2e5332f60e17
BLAKE2b-256 0a106a4f38e4ed8e342627f5d0ccc9e82f4dd79c54b6db9692527673b8f0d575

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page