Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/LukeEmmet/SmolNetSharp

.NET C# client library for the small net - gemini and gopher
https://github.com/LukeEmmet/SmolNetSharp

Last synced: 2 months ago
JSON representation

.NET C# client library for the small net - gemini and gopher

Awesome Lists containing this project

README

        

# SmolNetSharp

.NET C# client library for the small net - Gemini and Gopher

Smolnet - the small net where life is calmer and smoother.

Gemini and Gopher are small net protocols for sharing content on the Internet.

SmolNetSharp is a .NET C# client library you can use to build your own Gemini or Gopher clients in .NET.

Projects exist for .NET core and .NET framework.

# Usage

Include the SmolNet project or compiled library in your .NET solution.

There are two classes Gemini.cs and Gopher.cs which let you fetch the content. They return the content as a byte array together with the MIME type.

# Features

* Client code for Gemini and Gopher, using a common interface
* Ability to set a timeout to abandon long downloads
* Ability to set a max size to abandon large downloads
* Converts Gopher item types to mime types
* Support for Gemini proxies
* Support for the Nimigem protocol - a complementary content submission protocol to work with Gemini (experimental)
* Support client certificates - e.g. loaded from PFX files
* Compiles on Windows and Linux too (since .NET Core)

Gophermaps are returned with type application/gopher-menu.

# Demo app

There is a very simplistic test console app in the GeminiConsole folder

# Acknowledgements

The Gemini client class was initially extracted from TwinPeaks by InvisibleUp, but has been improved since. Also some ideas from BoringCactus Gemini client

* https://github.com/InvisibleUp/twinpeaks
* https://git.sr.ht/~boringcactus/dotnet-gemini