HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
picoe
Eto
C#2012–2024
picoe / Eto

Eto

Cross platform GUI framework for desktop and mobile applications in .NET

25Distinct people
31Mentions
0Explicit recommenders
4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Cross platform GUI framework for desktop and mobile applications in .NET

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year31 dated mentions

Observed mentions: 2012-12-12 19:19:52 UTC to 2024-10-31 21:57:20 UTC.

024682012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC211
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC413
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC000
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC404
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC808
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC413
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC312
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Eto.Forms A cross platform desktop and mobile user interface framework Description This framework can be used to build applications that run across multiple platforms using their native toolkit, with an easy to use API. This will make your applications look and work as a native application on all platforms, using a single UI codebase. For advanced scenarios, you can take advantage of each platform's capabilities by wrapping your common UI in a larger application, or even create your own high-level controls with a custom implementations per platform. This framework currently supports creating Desktop applications that work across Windows Forms, WPF, MonoMac, and GTK#. There is a Mobile/iOS port in the works, but is considered incomplete. This framework was built so that using it in .NET is natural. For example, a simple hello-world application might look like: using Eto.Forms; using Eto.Drawing; public class MyForm : Form { public MyForm () { Title = "My Cross-Platform App"; ClientSize = new Size(200, 200); Content = new Label { Text = "Hello World!" }; } [STAThread] static void Main() { new Application().Run(new MyForm()); } } or in a F# script: #load ".paket/load/eto.platform.windows.fsx" // see https://fsprojects.github.io/Paket/paket-generate-load-scripts.html open Eto.Drawing open Eto.Forms type MyForm() as this = inherit Form() do this.Title <- "My Cross-Platform App" this.ClientSize <- Size (200, 200) this.Content <- new Label(Text = "Hello F# World!") Eto.Platform.Initialize(Eto.Platforms.WinForms) let app = new Application() let form = new MyForm() form.Show() Getting Started To begin creating apps using Eto.Forms, follow the Quick Start Guide. To compile or contribute to Eto.Forms, read the Contributing Guide. Screenshots Windows via WPF: Mac via MonoMac: Linux via GTK#3: Applications MonoGame Pipeline Tool - Content manager for MonoGame Manager - Accounting Software PabloDraw - Character based drawing application Notedown - Note taking application Eto.Test - Application to test the functionality of each widget DWSIM - Chemical Process Simulator Termission - Cross-platform Serial/TCP Terminal with Scriptable Auto-Response Visual SEO Studio - Technical SEO Auditing Tool RegexFileSearcher - Cross-platform regex file searching tool in .NET 5 RegexTestBench - Cross-platform regex testing tool in .NET 5 GEDKeeper (v3) - Cross-platform application for working with personal genealogical databases Rhinoceros 3D - 3D computer graphics and computer-aided design (CAD) application Third party libraries Pure Eto.Forms SkiaSharp edition ScottPlot Plotting library that makes it easy to interactively display large datasets. LiveCharts Simple, flexible, powerful and open source data visualization for .Net. Microcharts Create elegant Cross-Platform simple charts. OxyPlot Cross-platform plotting library for .NET. Mapsui A C# map component for apps. LibVLCSharp Display a video in an Eto app. Eto.OpenTK OpenGL viewport control for Eto.Forms using OpenTK. Eto.Veldrid A control to embed the Veldrid graphics library in Eto.Forms. Eto.CodeEditor A package that gives you a code editor control in Eto.Forms. Eto.HtmlRenderer Provides an Eto control to display HTML content. Eto.RainbowLoading A control showing the Android loading indicator. Eto.GifImageView A control for displaying GIF's. Eto.SkiaDraw A control enabling use of SkiaSharp in Eto. Eto.Containers Some extra Eto.Forms container controls. 👉 Note : Some packages are in the pipeline but will not appear until next release is created. Assemblies Your project only needs to reference Eto.dll, and include the corresponding platform assembly that you wish to target. To run on a Mac platform, you need to bundle your app. Eto.dll - Eto.Forms (UI), Eto.Drawing (Graphics), and platform loading Eto.Mac64.dll - Lightweight Mac platform using .NET 6+ or mono Eto.macOS.dll - .NET 6+ platform for Mac (for use with the net6.0-macos target) Eto.WinForms.dll - Windows Forms platform using GDI+ for graphics Eto.Direct2D.dll - Windows Forms platform using Direct2D for graphics Eto.Wpf.dll - Windows Presentation Foundation platform Eto.Gtk.dll - Gtk+3 platform for Mac, Windows, and Linux. Eto.iOS.dll - Xamarin.iOS platform Eto.Android.dll - Xamarin.Android platform Currently supported targets OS X: MonoMac or net6.0-macos Linux: GTK+ 3 Windows: Windows Forms (using GDI or Direct2D) or WPF Under development These platforms are currently incomplete or in development. Any eager bodies willing to help feel free to do so! iOS using Xamarin.iOS Android using Xamarin.Android (Eto.Android)
Read the full README on GitHub

What Hacker News says

31 sources
Maybe Eto.Forms on .NET if you want to go native controls and simple for Windows, Linux, macOS: https://github.com/picoe/Eto It's not from Microsoft but who cares. They don't have a reputation of holding onto new UI frameworks anyway.
In .NET 8
C# in its many forms has many challenges, when it comes to desktop software. Mostly that if you want your software to work on any other OS apart from Windows, there still aren't that many good options. For example, there is Mono with Gtk#, but it's not really widely used, supported and overall seems to be dying, much like MonoDevelop is: https://www.mono-project.com/docs/faq/gtk/ After that, there was Xamarin Forms, but they're facing similar problems because in the new .NET there will be a new officially supported framework for GUI apps (they got bought out essentially and there has been little development on their project since): https://docs.microsoft.com/en-us/xamarin/xamarin-forms/ The new .NET cross platform UI still hasn't been released either (well, you can check it out if you have the preview builds) and it might be a while until
Read the rest
we can actually judge how well the "official" approach works in its stable form: https://docs.microsoft.com/en-us/dotnet/maui/get-started/ins... There are third party attempts to fill that vacuum of strong options, like Avalonia, but that's also just work in progress, like every other mentioned approach: http://avaloniaui.net/ Of course, there are also others like Eto: https://github.com/picoe/Eto The point i'm making is that due to the history of .NET, cross platform wasn't a priority and therefore there is a really large amount of fragmentation, as well as the developer efforts are spread thin. Contrast to Java, where you basically had AWT, then eventually Swing, and now there's JavaFX/OpenJFX, all of which are cross platform. Similarly, in Lazarus (a FreePascal IDE) there's the Lazarus Component Library which is where most if not all of the development effort is focused. It's probably also easier to just have to learn one framework and set of tooling around it and be able to work on most projects out there that use that language, as opposed to there being so many different ones.
In RAD Studio 11 Alexandria
It's a hard question, because on one hand nothing beats the next-next-finish install and setup experience of Visual Studio with C# on Windows, but it gets you exactly nowhere. (Okay you can make pretty programs that have a lot of buttons, input boxes, dropdown lists, and so on.) But that's a very good place to be, because then you can start branching out depending on what you find interesting. Do you want to make cross-platform things? Sure, try this https://github.com/picoe/Eto (or these http://www.mono-project.com/docs/gui/ ) Do you want to be closer to the metal? More OpenGL? Go C++ or Rust ( https://github.com/rust-unofficial/awesome-rust#gui and https://github.com/rust-unofficial/awesome-rust#graphics ) Do you want less setup for your users? Go the Electron way, and/or eventually just build Web Apps!
In Qt 5.10 released
Xamarin makes this separation work pretty well. Not Xamarin.Forms but a core business logic project with custom UI projects for each platform. I'm hoping this will turn into a good solution. Xamarin already supports Mac (in addition to iOS and Android) and when it aligns more with UWP (XAML Standard etc.) that could cover a large slice of the platforms you'd want to target. React native could be another option. I hear Android support has gotten better and you can supposedly also target UWP: https://github.com/Microsoft/react-native-windows I wrote this a while ago but it's still fairly relevant: https://unop.uk/cross-platform-native-mobile-app-development... You could also look at https://github.com/AvaloniaUI/Avalonia or https://github.com/picoe/Eto.
In Announcing .NET Core 2.0

Showing the 15 most recent of 31 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.