l'établi de la pavoiserie · libs publiées, maturités variables

Du Haxe,
vers du natif.
Sans VM, sans WebView.

L'Établi rassemble cinq bibliothèques Haxe : quatre cibles natives (sui Apple, aui Android, wui Windows, cui Terminal) et mui qui pose au-dessus une API « écris une fois, déploie partout ». La plus mature aujourd'hui est sui.

Apple · sui Android · aui Windows · wui Terminal · cui Abstraction · mui
Voir l'org lapavoiserie sur GitHub ★ lapavoiserie/sui

lapavoiserie/sui — la lib la plus mature

Ce qui marche aujourd'hui.

La lib lapavoiserie/sui compile du Haxe vers du Swift + SwiftUI natif via une macro de codegen. Elle est utilisée en interne pour le client macOS du calendrier de La Pavoiserie et pour un prototype de client mail.

Pas de VM. Pas de WebView. Le binaire qui sort est un .app Xcode standard.

Les autres libs natives (aui, wui, cui) suivent la même philosophie. La couche mui est là pour ceux qui veulent écrire une fois et déployer sur plusieurs cibles — au prix d'une API plus restreinte que celle d'une lib native.

Counter.hx · exemple sui extrait simplifié
import sui.View;
import sui.State;

class Counter extends View {
  var count = State.of(0);

  override function render() {
    return VStack([
      Text("Tu as cliqué " + count.value + " fois"),
      Button("Cliquer", () -> count.set(count.value + 1))
    ]);
  }
}

Les cibles natives

Quatre libs natives, une par grande plateforme.

Chaque lib parle directement le langage de l'OS cible : Swift pour Apple, Kotlin pour Android, WinRT/C++ pour Windows, séquences de contrôle pour le terminal. Pas de runtime intermédiaire.

★ lapavoiserie/sui

Apple — SwiftUI

macOS, iPadOS, iOS, visionOS. Haxe → Swift via macro de codegen. Utilisée en interne pour clients/calendar-mac.

github.com/lapavoiserie/sui
lapavoiserie/aui

Android — Jetpack Compose

Apps Android natives en Haxe via Jetpack Compose. Sortie : APK / AAB Gradle standard.

github.com/lapavoiserie/aui
lapavoiserie/wui

Windows — WinUI 3

Apps Windows natives en Haxe via WinUI 3 (le framework UI moderne de Microsoft).

github.com/lapavoiserie/wui
lapavoiserie/cui

Terminal — TUI déclarative

Framework TUI déclaratif, même philosophie que sui. Pour les outils CLI riches.

github.com/lapavoiserie/cui
lapavoiserie/mui · couche d'abstraction

Multi-UI — écris une fois, déploie partout

mui pose au-dessus des libs natives (sui, aui, wui, cui) une API commune. Cibles supportées : macOS, iOS, Windows, terminal. Le compromis : une API plus restreinte que celle des libs natives directes, pour gagner la portabilité.

github.com/lapavoiserie/mui

Pourquoi SailfishOS, à terme

Un chemin vers une porte de sortie souveraine pour le smartphone.

iOS et Android ne sont pas des plateformes neutres : elles tirent leur écosystème d'app stores américains qui décident qui publie quoi. SailfishOS, développé par Jolla en Finlande, est aujourd'hui l'une des options mobiles les plus indépendantes de Google et d'Apple.

Aucune lib de l'Établi ne cible SailfishOS aujourd'hui. C'est une cible visée à terme, pas une option disponible — voir la roadmap en bas.

UE
objectif souverain

Essayer lapavoiserie/sui aujourd'hui

La seule lib qui est utilisable maintenant.

haxelib ~/.haxe
# Installer Haxe et le runtime C++
$ brew install haxe
$ haxelib install hxcpp

# Récupérer lapavoiserie/sui
$ haxelib git sui https://github.com/lapavoiserie/sui

Avant de commencer

  • · Haxe 4.3+ (brew install haxe)
  • · hxcpp pour le bridge natif
  • · Xcode 15+ pour compiler vers SwiftUI
  • · xcodegen pour générer le projet Xcode

La doc autonome arrivera quand le package etabli unifié sortira. Pour l'instant, le meilleur exemple est le code source de clients/calendar-mac.

Statut
5 libs publiées
maturités variables
Licence
Voir chaque repo
sur GitHub
Mainteneur
1 personne
Hébergement repos
github.com/lapavoiserie

Sur la roadmap

Cibles visées à terme.

Pour ces cibles, aucune lib n'existe à ce jour. Si l'une d'elles te concerne particulièrement, le mieux est d'écrire — on peut faire bouger les priorités.

SailfishOS — la cible mobile souveraine, pas encore commencée
Web — navigateur via Custom Elements ou WebGL canvas, pas encore commencé
Documentation publique unifiée & site dédié
Espace communautaire (forum / chat)
L'Établi fait partie de
La Pavoiserie

Un atelier français de bibliothèques d'interface utilisateur en Haxe.