Skip to content

RandomSoup/terra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terra Toolbox

Yet Another Piper Toolbox

What is this?

This project contains a few tools for working with Piper, a new document-oriented and binary-based network protocol. Due to the "strict" rules imposed by working with raw binary data with defined characteristics it's a simpler alternative to other protocols like Gopher, Gemini, or HTTP.

What is included?

Currently the package includes four tools:

  • Rover: A graphical Piper client with Gemtext support.
  • Ares: A simple proof-of-concept server with PCGI support.
  • PCGI: A simple protocol and library to build CGI-like applications on top of Piper.
  • libterra: A (dynamic and static) library to access the self-contained components of the other tools. This currently includes a Piper client with both a low-level and higher-level interface, Piper path resolution, a Gemtext parser, dynamic strings and arrays, and an epoll-based event loop.

Dependencies

To build the package you'll need a GNU-compatible make and a C11/17 compiler. Additionally, to build Rover, you'll have to install the libX11 development files from your distribution.

Building

Simply clone the project and execute make in its root directory:

git clone https://github.com/RandomSoup/terra.git && cd terra
make -j$(nproc)

That will place build files under the build/ directory.

Limitations

All programs and libraries are prepared to work under Linux systems, but won't work on other systems like MacOS or Windows, since they make use of Linux-specific systems call like epoll.

Rover doesn't implement raw file downloads yet.

License and credits

Terra is licensed under a permissive ISC-like license. See LICENSE for more info.

Rover's design was inspired by Castor9, a Plan 9 Gemini browser, and uses the Spleen font, that is licensed under a Simplified BSD License. The original relative URL resolution code was adapted from libpiper's, with permission.

About

Piper Toolbox - Browser, server, and CGI protocol.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published