Skip to main content

Library of Babel tools: encode any file to a deterministic coordinate, decode, and run scripts

Project description

Library of Babel Tools (libobsh)

[PyPI version] (https://badge.fury.io/py/libobsh) [License: GPL v3] (https://img.shields.io/badge/License-GPLv3-blue.svg)

Proof of Concept

This tool is primarily for learning and skill improvement. It is functional for small data but has limited practical application due to coordinate size overhead. See "Limitations" below.

Installation

pip install libobsh

Usage

  • Encode a file (any size): lob-encode myfile Creates myfile.coord

  • Decode a coordinate back to a file: lob-decode myfile.coord restored

  • Run a bash script directly from its coordinate: lob-run myfile.coord

How it works

  • Files <= 3200 bytes are stored in a single Library page; the .coord contains the page address.
  • Larger files are split into 3200‑byte pages; a manifest (JSON) is stored in the Library, and the .coord contains the manifest address.
  • The decoder automatically detects whether the coordinate points to a manifest or raw data.

Limitations

Proof of concept / educational project This tool is a personal exploration of the Library of Babel concept and deterministic encoding. It is fully functional for small files (e.g., shell scripts, configuration files, short text) but does not provide storage compression. On the contrary, a Library coordinate is always longer (about 1.55x) than the original data. For a 3200‑byte page, the coordinate is ≈4950 characters.

Practical use

  • Works well for tiny files (a few hundred bytes) where the coordinate length is still manageable.
  • Inefficient for large files (megabytes): the manifest (list of page coordinates) becomes larger than the original file.
  • Not suitable as a general‑purpose archiving or compression tool.

Educational value The primary purpose of this project is to learn about: - Base‑256 to base‑36 conversion and big‑integer arithmetic. - Deterministic addressing and recursion for splitting data. - Building a complete Python package from scratch (CLI, packaging, PyPI, documentation).

Use this tool to experiment, learn, or satisfy curiosity – not for production storage of large files.

Requirements

  • Python 3.6+ (no external libraries).

License

GNU General Public License v3.0

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

libobsh-0.1.2.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

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

libobsh-0.1.2-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file libobsh-0.1.2.tar.gz.

File metadata

  • Download URL: libobsh-0.1.2.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for libobsh-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8df479f76cf5d7349b486852cf5e4e58c9d3609a3077fc7fc4a24fda1a48cdd3
MD5 8b14ac71dfcc97650a721c82281aa477
BLAKE2b-256 23fb9f43d503fbc2a4ad8f55b200a42538f15bb5326f06acd90b68bcba171042

See more details on using hashes here.

File details

Details for the file libobsh-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: libobsh-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for libobsh-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4fdd0c8caa0a64d31fe9f30bea43555af45bff7b8c7f73a8deb8572fec270930
MD5 37121384671042e417fbc8e97fcff0f9
BLAKE2b-256 2b9f88655af217875830b4299068fe8969d3afc67e7974e1f6b36b7df73f1512

See more details on using hashes here.

Supported by

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