Bunkum.Protocols.Gemini
4.9.0
dotnet add package Bunkum.Protocols.Gemini --version 4.9.0
NuGet\Install-Package Bunkum.Protocols.Gemini -Version 4.9.0
<PackageReference Include="Bunkum.Protocols.Gemini" Version="4.9.0" />
<PackageVersion Include="Bunkum.Protocols.Gemini" Version="4.9.0" />
<PackageReference Include="Bunkum.Protocols.Gemini" />
paket add Bunkum.Protocols.Gemini --version 4.9.0
#r "nuget: Bunkum.Protocols.Gemini, 4.9.0"
#:package Bunkum.Protocols.Gemini@4.9.0
#addin nuget:?package=Bunkum.Protocols.Gemini&version=4.9.0
#tool nuget:?package=Bunkum.Protocols.Gemini&version=4.9.0
Bunkum.Protocols.Gemini
Gemini protocol support for Bunkum
Usage
using Bunkum.Core;
using Bunkum.Protocols.Gemini;
BunkumServer server = new BunkumGeminiServer(null, new LoggerConfiguration
{
Behaviour = new QueueLoggingBehaviour(),
#if DEBUG
MaxLevel = LogLevel.Trace,
#else
MaxLevel = LogLevel.Info,
#endif
});
server.Initialize = s =>
{
s.DiscoverEndpointsFromAssembly(Assembly.GetExecutingAssembly());
};
server.Start();
await Task.Delay(-1);
Generating an SSL/TLS certificate
Gemini does not support unencrypted transport by design. To test locally, you must create a certificate. Bunkum cannot create one for you, but common tools like OpenSSL can do this for you.
Linux
First, create a private key/certificate pair. Change "localhost" to your FQDN if you'd like to use a self-signed certificate externally.
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=localhost"
Then, convert your pair to a .pfx file that Bunkum can use:
openssl pkcs12 -export -out cert.pfx -inkey key.pem -in cert.pem
Hopefully, you should now have a file named cert.pfx that Bunkum can use.
Windows
TODO
Configuration
The BunkumGeminiServer allows a SSL configuration in the constructor.
If one is not provided, it will default to creating a json config named geminissl.json instead:
{
"Version": 1,
"SslCertificate": "cert.pfx",
"CertificatePassword": "password here or null"
}
Version refers to the configuration schema version, do not modify this.
SslCertificate points to the path of your certificate.
CertificatePassword can either be the password as a string or simply null in the case of no password.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Bunkum (>= 4.9.0)
- Bunkum.Listener (>= 4.9.0)
- Bunkum.Protocols.TlsSupport (>= 4.9.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Bunkum.Protocols.Gemini:
| Package | Downloads |
|---|---|
|
Bunkum.Serialization.GopherToGemini
Allows serialization of Gophermaps in Gemini for Bunkum servers |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.9.0 | 276 | 6/25/2025 |
| 4.8.1 | 203 | 7/30/2024 |
| 4.8.0 | 198 | 7/30/2024 |
| 4.7.1 | 222 | 7/28/2024 |
| 4.7.0 | 239 | 7/17/2024 |
| 4.6.0 | 220 | 7/11/2024 |
| 4.5.6 | 242 | 6/14/2024 |
| 4.5.5 | 256 | 5/23/2024 |
| 4.5.4 | 225 | 5/13/2024 |
| 4.5.3 | 216 | 5/13/2024 |
| 4.5.2 | 252 | 5/7/2024 |
| 4.5.1 | 234 | 4/30/2024 |
| 4.5.0 | 243 | 4/24/2024 |
| 4.4.5 | 269 | 2/19/2024 |
| 4.4.4 | 255 | 2/5/2024 |
| 4.4.3 | 337 | 12/4/2023 |
| 4.4.2 | 235 | 12/3/2023 |
| 4.4.1 | 245 | 11/26/2023 |
| 4.4.0 | 239 | 11/25/2023 |
| 4.3.3 | 287 | 10/28/2023 |