Project features

General

  • Native binary. As other GoLang programs, AGUI compiled to native binary. No runtime interpreters or virtual machines/runtime environments are required. Just download binary and run.
  • Cross-platform. GoLang can compile binary for different platforms. If target platform is supported by GoLang, then the only requirement is existence AGUI driver for this platform. Currently we support only Mac OS and have plans to make drivers for Microsoft Windows and (lately) for GNU Linux (both X and Wayland).
  • Single binary. GoLang usually performs static linking. On the other side we do everything to avoid external runtime dependencies (like importing images into source code at compile time). Expected size for simple application is about 10Mb.
  • Simple deploy. Binary is native and has no external runtime dependencies so deploy can be really simple — just download and run.
  • HiDPI support. It does not matter of which resolution is monitor — FullHD 1920x1080, 4K 3840x2160 or even 8K 7680 × 4320. In any case interface will be automatically scaled to appropriate size.

Drivers

  • Drivers are separated from other parts. You can use them in custom GUI toolkit. And you can implement your own driver for AGUI.
  • Native system APIs. All operations performed (if possible) via native system APIs. Because of this, drivers receives some advantages of those APIs — like graphics acceleration.

GUI

  • Flexible layout system. There are no restrictions for layout. It is possible to implement fixed, fluid or responsive layout, just implement required layout as control.
  • No CSS, no JavaScript, no other styling/scripting languages. Apps look and behave as developer decide. And of course there is no related runtime overhead.
  • Full control of window. Developer may control all regions of window, even status bar. And Controls help to make window looks and behaves like native.

Controls

  • Compact. Default controls do not contain large spaces/paddings/margins. No waste of space.