Do you remember www?
Project description
McRoss is a minimal and usable gemini:// browser written in python and tkinter, meaning it Just Works (tm) on any self-respecting desktop OS: Linux, Windows, Mac OS, and maybe the BSDs? Never tried one of those.
It currently looks like this:
Or check out the demo video: https://junk.imnhan.com/mcross.mp4
Surfing plaintext and gemini content is already working well. See feature checklist below for more details.
Installation
pip install mcross
mcross
Better distribution methods to be explored later. Maybe it's finally time to try nuitka?
Development
Deps:
- python3.7+
- idlelib (it's supposed to be in the standard lib but Ubuntu for example splits it into a separate package)
- curio - for async I/O so that it doesn't block the UI.
To get started:
pyenv install 3.7.7
pyenv virtualenv 3.7.7 mcross
pyenv activate
poetry install
mcross
# to publish, first bump version in pyproject.toml then
poetry publish --build
Feature checklist
- back-forward buttons
- handle redirects
- non-blocking I/O using curio
- more visual indicators: waiting cursor, status bar
- parse gemini's advanced line types
- properly handle mime types (gemini/plaintext/binary)
- configurable document styling
- configurable TLS to accomodate self-signed sites?
- human-friendly distribution
Long term high-level goals:
Easy for end users to install
If the words cargo build
exists in the installation guide for your G U I
application then I'm sorry it's not software made for people to use.
What-you-see-is-what-you-write
A rendered text/gemini viewport should preserve its original text content. This way once you've read a gemini page on the browser, you already know how to write one. No "View Source" necessary.
Responsive & pleasant to use
The Castor browser doesn't have visual indicators at all, for example, when clicking on a link it just appears to do nothing until the new page is completely loaded. That is A Bad Thing (tm).
Lightweight
In terms of both disk space & memory/cpu usage. The python/tkinter combo already puts us at a pretty good starting point.
Server bugs/surprises
Forces gemini:// in request
Spec says protocol part is optional, but if I omit that one the server will
respond with 53 No proxying to other hosts!
.
Newline
Spec says a newline should be \r\n but the server running gemini.circumlunar.space just uses \n every time.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file mcross-0.5.7.tar.gz
.
File metadata
- Download URL: mcross-0.5.7.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/5.6.14-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbf9e07a53d1333aa6e4a1f3ec334fbd58d4f081e1579bfc982de0c938343b56 |
|
MD5 | b59830efc2b215e2277716a6c955d94d |
|
BLAKE2b-256 | 40f7fa046be50039de4742d045e81061f7a6958a106098a635ed28138a405ff8 |
File details
Details for the file mcross-0.5.7-py3-none-any.whl
.
File metadata
- Download URL: mcross-0.5.7-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/5.6.14-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e963441690b6298adc15d5d1dff66f3b2866e841d49d6b18627fe64b3be1e80b |
|
MD5 | 55e42e27dc537e7f658fe8a6469b35e8 |
|
BLAKE2b-256 | c287c3269800e83cc09faffd9011d9f2fe05dcdbc514aeaf7bdf23bc1c5bb03f |