Utilities for the Gemini protocol
Go to file
2024-04-23 00:32:31 -04:00
docs allow sphinx to link to barkshark-lib docs 2024-04-23 00:22:24 -04:00
gemi add extra module attrs 2024-04-23 00:32:31 -04:00
.gitignore Initial commit 2024-03-17 21:51:03 -04:00
dev.py fix NameError in server 2024-04-23 00:11:22 -04:00
LICENSE.md Initial commit 2024-03-17 21:51:03 -04:00
pyproject.toml add barkshark-lib 2024-04-22 23:38:33 -04:00
README.md add examples to readme 2024-03-20 11:56:00 -04:00
tox.ini add barkshark-lib 2024-04-22 23:38:33 -04:00

Gemi

Utilities for the Gemini protocol

Client Example

import asyncio
import gemi

async def main():
	client = gemi.AsyncClient()
	response = await client.request("geminiprotocol.net")

	for element in (await response.document()):
		print(repr(element))

asyncio.run(main())

Server Example

import gemi

@gemi.route("Default", "/")
async def home(request: gemi.Request) -> gemi.Response:
	return gemi.Response(20, "UvU", "text/plain")

server = gemi.AsyncServer("Default")
server.run()

Document Example

import gemi

doc = gemi.Document([
	gemi.Header("Hewwo!", 1),
	gemi.Text(""),
	gemi.Text("im gay"),
	gemi.Text(""),
	gemi.Link("https://git.barkshark.xyz/barkshark/gemi", "Gemi")
])

doc.dump("/var/lib/gemi-server/static/text.gmi", gemi.OutputFormat.GEMTEXT)

Documentation

Gemini Protocol