go-flutter is a package that brings Flutter to the desktop by implementing Flutter's Embedding API for Windows, macOS, and Linux using Go and GLFW.
Flutter's engine exposes an abstraction layer for platforms to implement desktop-specific functionality like mouse and keyboard input handling. go-flutter implements this layer through a single codebase that works across all three desktop platforms. The project uses GLFW to provide the necessary abstractions over OpenGL, buffers, and input devices for each platform. Go was chosen as the implementation language because it offers consistent tooling across platforms and simplifies building cross-platform plugins while maintaining readable, straightforward code.
The tool suits developers who want to deploy Flutter applications to desktop platforms without maintaining separate native implementations. It works well for projects that already use Flutter for mobile and need desktop support from a shared codebase. The project provides hot-reload capability during development and supports a plugin system with multiple message codec options including MethodChannel. Developers should use the hover tool, the official companion for go-flutter, to handle setup, building, and running Flutter apps on desktop with hot-reload support. The project is importable as a Go library for custom integrations and supports standard distribution formats including Windows MSI, macOS DMG, and Linux AppImage, with cross-compilation via Docker.
Development activity shows consistent engagement with feature requests and issue resolution. The project maintains active documentation through its wiki and example applications in a separate repository. The maintainers actively encourage community contributions by explicitly inviting feature requests through the issue tracker.