haki
Version, currently master branch1 version
- master branchlatestMar 17, 2026
github.com/grkek/haki
Build native apps using GTK4 and a dialect of HTML, declarative format allows you to create advanced structures with ease.
84 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
haki:
github: grkek/haki
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
1.0.0- License
- MIT
- Author
- Giorgi Kavrelishvili <giorgi.kavrelishvili@pm.me>
Dependencies
Runtime Dependencies
- gtk4*github: hugopl/gtk4.cr
- duktape*github: grkek/duktape.cr, branch: master
- idle-gc*github: compumike/idle-gc
- baked_file_system*github: schovi/baked_file_system
- non-blocking-spawn*github: GeopJr/non-blocking-spawn
Development Dependencies
- ameba*github: crystal-ameba/amebadev
README
# Haki
**The project moved over to [Sunflower](https://github.com/grkek/sunflower) which is a lot better at everything.**
[](https://github.com/grkek/haki)
### GUI framework with GTK4 component generation using HTML, CSS and JavaScript
- None of the components generated by Layout contain anything remotely related to a Web-Browser.
- Compiled binary reads the custom HTML and builds the GTK components. Since it is already a pre-built release version, it is pretty fast at generating the UI components.
- The compiler supports CSS and JavaScript compilation, which glues the components and makes the UI interactive.
- The JavaScript engine is Duktape, it supports Babel 6.26.0 and CoreJS 2.6.11.
- The CSS is limited to GTK4 specification.
## Installation
Before you clone the shard and build it, install the GTK libraries.
Add this to your application's `shard.yml`:
```yaml
dependencies:
haki:
github: grkek/haki
```
And run this command in your terminal:
```bash
shards install
./bin/gi-crystal
```
# Code example
Add this to your `application.cr`:
```crystal
require "haki"
# Disable GC for now.
GC.disable
html = <<-HTML
<Application applicationId="com.haki.application">
<Window title="Untitled Window">
<Label>Hello, World!</Label>
</Window>
</Application>
HTML
builder = Haki::Builder.new
# Make sure you point the path the correct way.
builder.build_from_string(html)
```
Compile the `application.cr` file.
```bash
crystal run application.cr -Dpreview_mt --error-trace
```
And you should have a GUI window with a "Hello, World!" text.
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- Mar 17, 2026
- Crystal
1.0.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/grkek/haki
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 1