Skip to main content

an ideal backend

Project description

xu60

an ideal backend

xu60 is a

  • Content-Addressable
  • Hyper Text Transport Protocol
  • Application Programmatic Interface

where hashes and character indexes

define immutable URLs

for re-usable content, (mostly) guaranteed not to rot as a website grows, changes, is edited, or is otherwised enhanced (or regressed)

scope

  1. xu60 should provide an HTTP server that is simultaneously capable of serving traditional web pages, scripts, and styles alongside whatever content-addressable data an application developer sees fit
  2. xu60 should contain additional functionality for querying document version histories and displaying document metadata such as original paths, edit dates, etc.
  3. besides documents, content-addressable document histories, and document/history metadata, xu60 should remain agnostic to use-case and ship as few features as is plausible
  4. xu60 should virtually never re-code the core algorithms that make its features possible. high-performance versions of virtually every element already exist--xu60 is a thin application layer built around known technologies. plus I'm dumb
  5. the "known technologies" that xu60 relies on should (wherever possible) already be infrastructurally important to the web and unlikely to disappear or be deprecated with any rapidity
  6. xu60 should be easy to run in a number of configurations to serve a number of applications--hypermedia-ing, mirroring, addressing, serving, distributing, archiving, auditing, etc.

demo and installation

xu60 comes with an SPA (built with htmx!! [under construction]) that serves as both a technical demonstration of the server's capabilities, proof-of-concept object browser, and tour of the server's own code.

xu60 is currently not packaged for distribution, and every aspect (including the project name) is subject to change as the project grows and changes

# to run xu60 in its current state:
git clone https://github.com/rfinz/xu60.git #clone the repository
cd xu60 #navigate into the project
python -m venv env #create a virtual environment
source env/bin/activate #activate the virtual environment
pip install -e . #install required dependencies and the xu60 application
uvicorn xu60:app #run the asgi application -- you may need to install uvicorn separately
# -> the demo should now be available at 127.0.0.1:8000

to do

  • finish demo SPA
  • package python application for distribution
  • re-write README to reflect the installation differences between a git based development install and using the package as a requirement for your own application
  • think of more to do

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

xu60-0.1.0.tar.gz (285.0 kB view details)

Uploaded Source

Built Distribution

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

xu60-0.1.0-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file xu60-0.1.0.tar.gz.

File metadata

  • Download URL: xu60-0.1.0.tar.gz
  • Upload date:
  • Size: 285.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for xu60-0.1.0.tar.gz
Algorithm Hash digest
SHA256 83942fc7e5408a12243518ae896d7f3e2c3836e9273bdd84b47d2b7d3efe6e16
MD5 e74c95e6840e0ccac521b4df718462f8
BLAKE2b-256 182b5618385445bcea2821709b54f434c3db995a7fa2c9e0aa6e8da5d0f4a949

See more details on using hashes here.

File details

Details for the file xu60-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: xu60-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for xu60-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9938b5d71ee6559609fee28465b61fdcfe2da8fe905ff5d0e72b4275221a5df7
MD5 d03667fc01e34e9f8e9d54210d1a258b
BLAKE2b-256 8768041af0c6b4d3e88dfb21a3de4ad733e31cce8af8d2f37cfb597e3cf84f49

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