Yuki 28df600466 | ||
---|---|---|
Media | ||
Protocols | ||
Resources | ||
.gitignore | ||
Gui.cs | ||
LICENSE | ||
MainUI.cs | ||
Program.cs | ||
README.md | ||
Tab.cs | ||
Telemetry.cs | ||
shoko.csproj |
README.md
Shōko
Shōko (硝子) is a browser and file viewer written in C#, supporting many protocols, schemes, and media types. It is designed to be simple and very extensible.
Shōko, at first, is aimed primarily at the small and experimental web. It probably won't support the entire HTML5 spec anytime soon, yet it aims to support protocols and formats your average web browser won't even dare to support natively. Gemini, Gopher, Markdown, JPEG XL, name it.
Features
- Supports protocols and schemes such as: file, http(s), ftp(s), data, gemini, gopher, finger
- Supports media types such as: plain text, images, Gemtext markup
How it works
Step 1: Parse the URL Step 2: Find a suitable protocol handler based on the URL scheme Step 3: Protocol handler returns a Stream and a media type Step 4: Find a suitable media handler based on the media type Step 5: Render!
C#'s class inheritance, together with annotations and reflections, makes it easy to add and register new protocol and media handlers.