1 year ago
Tues Feb 6, 2024 7:58am PST
Show HN: Franz – A desktop client for Apache Kafka
This is the source code to Franz, a native desktop client for Apache Kafka I've been working on for the past ~three years or so. Around 2021, I started using Kafka at a startup and I didn't like any of the clients that were available at the time, so I decided to build my own in my spare time[1]. I wanted a solid native experience on the Mac that wasn't web based and didn't require any Docker containers to run.

A few months ago, I decided to make the code source-available[2] in part because I like the idea of my users being able to see the code they're running and in part because I want to showcase that one can build serious applications with Racket. The app also has a somewhat unusual architecture: the "backend" (the "core" folder) is written in Racket, the Mac "frontend" (the "FranzCocoa" folder) is Swift + Cocoa/SwiftUI[3, 4], and the two sides communicate over pipes. The Windows and Linux versions (the "FranzCross" folder) reuse the Racket core and implement the frontend using a wrapper around Racket's cross-platform GUI toolkit[5, 6]. My goal is to eventually port the frontend for the latter two platforms to use their native toolkits directly as well (see [3] for some more details re. Windows).

Happy to answer any questions!

[1]: https://defn.io/2022/11/20/ann-franz/

[2]: https://defn.io/2023/08/10/ann-franz-source-available/

[3]: https://defn.io/2023/03/19/racketfest-talk-2023/

[4]: https://defn.io/2022/08/21/swiftui-plus-racket-screencast/

[5]: https://defn.io/2021/11/07/racketcon-talk-2021/

[6]: https://arxiv.org/abs/2308.16024v1

read article
comments:
add comment
loading comments...