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 gitnix — npm
  • Full Example App: Event registration platform with admin panel, auth, and 45 E2E tests

Documentation

License

MIT — Quilonix

Metadata

Release files for gitnix 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gitnix 1.1.0
File Size Uploaded
gitnix-1.1.0.tar.gz 21.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gitnix 1.1.0
File Interpreter ABI Platform
gitnix-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 45.9 kB

Release files / gitnix-1.1.0.tar.gz

Download URL gitnix-1.1.0.tar.gz
Size 21.1 kB
Tags Source
SHA-256 checksum
How to use checksums
cb5584521f1b9af7f4e2656ac70fa4f50e7763cd34248c0fa8f4f5d239730d8a
BLAKE2b-256 checksum
How to use checksums
03b2f20c4182cdf418016377569481f797e7869f5e3fea80764df038ebf6b1ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13

Release files / gitnix-1.1.0-py3-none-any.whl

Download URL gitnix-1.1.0-py3-none-any.whl
Size 24.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8c8621065daf78c30ea50dbcdad6e0ba66b4068c43a4d486990b7ec13782d96
BLAKE2b-256 checksum
How to use checksums
0a106a4f38e4ed8e342627f5d0ccc9e82f4dd79c54b6db9692527673b8f0d575
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page