💾 Archived View for gemini.marmaladefoo.com › blog › 14-Dec-2020_SmolNetSharp_client_library.gmi captured on 2021-11-30 at 20:18:30. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

SmolNetSharp - a C# client library for Gemini and Gopher

date: 14-Dec-2020

Fighting the platform gatekeepers

I've been having some problems over the last few months fighting with various Windows anti-virus products who have for unbeknownst reasons taken a dim view of some client software I wrote.

Specifically I created a simple command line Gopher client gopher-get which retrieves a gopher resource, using the Go client library by Prologic. But when compiled on Windows, the application seems to trigger all kinds of warnings by a number of the anti-virus and malware utilities. I already lost some hair over this.

gopher-get Go app

The trials of appeasing the platform gatekeepers

Until recently, GemiNaut - my Windows Gemini GUI client in C# - was using this gopher command line client and gemget to do the actual network retrieval, but the time had come to implement a native C# client.

GemiNaut GUI client

Luckily, InvisibleUp wrote another C# Gemini client, TwinPeaks, which included some useful Gemini C# classes. BoringCactus also contributed some ideas as well. So I've shamelessly started from that client code, and worked it up a bit, generalising to support Gopher too. But its become its own thing now and is cross-platform written in .NET Core.

SmolNetSharp

SmolNetSharp is a C# client library for writing your own smolnet clients (Gemini and Gopher). It does the heavy lifting of retrieving the content and setting up all the TLS code etc, handling the responses and redirects etc.

SmolNetSharp git repo

Include it in your project so you can get on with the fun stuff of building the user interface.

Key features

There is a simple 100 line Gemini/Gopher simple demo interactive client in the repository, to illustrate usage.

Future goals

GemiNaut release

I've already migrated GemiNaut to use it, and so there will be a new release of GemiNaut in the not too distant future.

(update) GemiNaut 0.8.9 is now out.

One advantage is it is already faster, so the experience feels more fluid and instantaneous.

And hopefully there will be fewer complaints from the self-appointed platform gatekeepers 🙏

__________________ __________________ __________________

Gemlog index

Home