Skip to content

Commit 6621adc

Browse files
committed
[new release] mosaic (5 packages) (1.0.0~alpha0)
CHANGES: ### Initial Release We're thrilled to announce the first release of Mosaic, a high-performance terminal UI framework for OCaml that brings React's component model to the terminal. ### Added #### Core Libraries - **Mosaic** - React-inspired terminal UI framework - Direct-style hooks API powered by OCaml 5 algebraic effects - Comprehensive hooks: `use_state`, `use_effect`, `use_memo`, `use_context`, `use_ref` - Animation hooks: `use_tick`, `use_timer`, `use_scroll`. - Rich component library: buttons, inputs, tables, trees, progress bars, spinners - Event routing with focus management and tab navigation - Alternative Elm Architecture module for functional reactive programming - **Matrix** - High-performance terminal infrastructure - Efficient grid representation with Unicode and grapheme cluster support - Damage tracking for minimal screen updates - Double-buffered rendering for flicker-free display - Incremental input parser supporting Kitty keyboard protocol - Complete ANSI escape sequence generation (ECMA-48/ANSI X3.64) - Terminal control (TTY), pseudo-terminal (PTY), and virtual terminal emulator (VTE) - Mouse support: X10, SGR, URXVT protocols with motion tracking - **Toffee** - Pure OCaml port of the Taffy CSS layout engine - Full CSS Grid Level 1 implementation - Complete Flexbox algorithm with all properties - Traditional block layout with margin collapsing - High-performance layout computation [1.0.0~alpha0]: https://github.com/tmattio/mosaic/releases/tag/v1.0.0~alpha0
1 parent 854fc71 commit 6621adc

File tree

5 files changed

+229
-0
lines changed
  • packages
    • matrix-term/matrix-term.1.0.0~alpha0
    • matrix/matrix.1.0.0~alpha0
    • mosaic/mosaic.1.0.0~alpha0
    • toffee/toffee.1.0.0~alpha0
    • vcr/vcr.1.0.0~alpha0

5 files changed

+229
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
opam-version: "2.0"
2+
synopsis: "A terminal emulator built with Matrix and tsdl"
3+
description:
4+
"A terminal emulator application using the Matrix terminal toolkit and SDL2 for rendering"
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
homepage: "https://github.com/tmattio/mosaic"
9+
bug-reports: "https://github.com/tmattio/mosaic/issues"
10+
depends: [
11+
"ocaml"
12+
"dune" {>= "3.19"}
13+
"matrix"
14+
"tsdl"
15+
"tsdl-ttf"
16+
"alcotest" {with-test}
17+
"odoc" {with-doc}
18+
]
19+
build: [
20+
["dune" "subst"] {dev}
21+
[
22+
"dune"
23+
"build"
24+
"-p"
25+
name
26+
"-j"
27+
jobs
28+
"@install"
29+
"@runtest" {with-test}
30+
"@doc" {with-doc}
31+
]
32+
]
33+
dev-repo: "git+https://github.com/tmattio/mosaic.git"
34+
x-maintenance-intent: ["(latest)"]
35+
url {
36+
src:
37+
"https://github.com/tmattio/mosaic/releases/download/1.0.0_alpha0/mosaic-1.0.0.alpha0.tbz"
38+
checksum: [
39+
"sha256=bb3315cf58d045504f78da0a6f1923bb5fb896d1235f5b9e04ab69a76af257ff"
40+
"sha512=466b06dc17017b2914cb78c42304514888750f8eccb4c816c347d8963257fbbeac991004a229617e1bae1a5387c539cb196081260a6e1eefe3531e5038bb9b2d"
41+
]
42+
}
43+
x-commit-hash: "f9c2aca7b1ab4d1b041a8adbce90b079fa8ccb29"
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
opam-version: "2.0"
2+
synopsis: "The infrastructure to build OCaml terminal applications"
3+
description:
4+
"Matrix is a foundational terminal programming toolkit that provides core terminal libraries. It includes input event parsing with support for modern keyboard protocols, complete ANSI escape sequence parser and generation, low-level terminal device control, pseudo-terminal (PTY) operations for terminal multiplexing, and a virtual terminal emulator (VTE) for terminal recording and testing."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["terminal" "input" "ansi" "pty" "vte"]
9+
homepage: "https://github.com/tmattio/mosaic"
10+
bug-reports: "https://github.com/tmattio/mosaic/issues"
11+
depends: [
12+
"ocaml" {>= "5.0.0"}
13+
"dune" {>= "3.19"}
14+
"uutf"
15+
"uucp"
16+
"uuseg"
17+
"fmt"
18+
"alcotest" {with-test}
19+
"odoc" {with-doc}
20+
]
21+
build: [
22+
["dune" "subst"] {dev}
23+
[
24+
"dune"
25+
"build"
26+
"-p"
27+
name
28+
"-j"
29+
jobs
30+
"@install"
31+
"@runtest" {with-test}
32+
"@doc" {with-doc}
33+
]
34+
]
35+
dev-repo: "git+https://github.com/tmattio/mosaic.git"
36+
x-maintenance-intent: ["(latest)"]
37+
url {
38+
src:
39+
"https://github.com/tmattio/mosaic/releases/download/1.0.0_alpha0/mosaic-1.0.0.alpha0.tbz"
40+
checksum: [
41+
"sha256=bb3315cf58d045504f78da0a6f1923bb5fb896d1235f5b9e04ab69a76af257ff"
42+
"sha512=466b06dc17017b2914cb78c42304514888750f8eccb4c816c347d8963257fbbeac991004a229617e1bae1a5387c539cb196081260a6e1eefe3531e5038bb9b2d"
43+
]
44+
}
45+
x-commit-hash: "f9c2aca7b1ab4d1b041a8adbce90b079fa8ccb29"
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
opam-version: "2.0"
2+
synopsis: "A delightful TUI framework for OCaml inspired by Bubbletea"
3+
description:
4+
"Mosaic is a functional and composable framework for building terminal user interfaces in OCaml, inspired by Go's Bubbletea and The Elm Architecture"
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["tui" "terminal" "user interface" "elm"]
9+
homepage: "https://github.com/tmattio/mosaic"
10+
bug-reports: "https://github.com/tmattio/mosaic/issues"
11+
depends: [
12+
"ocaml" {>= "5.0.0"}
13+
"dune" {>= "3.19"}
14+
"matrix"
15+
"toffee"
16+
"uutf"
17+
"uucp"
18+
"eio"
19+
"eio_main"
20+
"logs"
21+
"fmt"
22+
"cmarkit"
23+
"textmate-language"
24+
"yojson"
25+
"alcotest" {with-test}
26+
"ppx_expect" {with-test}
27+
"odoc" {with-doc}
28+
]
29+
build: [
30+
["dune" "subst"] {dev}
31+
[
32+
"dune"
33+
"build"
34+
"-p"
35+
name
36+
"-j"
37+
jobs
38+
"@install"
39+
"@runtest" {with-test}
40+
"@doc" {with-doc}
41+
]
42+
]
43+
dev-repo: "git+https://github.com/tmattio/mosaic.git"
44+
x-maintenance-intent: ["(latest)"]
45+
url {
46+
src:
47+
"https://github.com/tmattio/mosaic/releases/download/1.0.0_alpha0/mosaic-1.0.0.alpha0.tbz"
48+
checksum: [
49+
"sha256=bb3315cf58d045504f78da0a6f1923bb5fb896d1235f5b9e04ab69a76af257ff"
50+
"sha512=466b06dc17017b2914cb78c42304514888750f8eccb4c816c347d8963257fbbeac991004a229617e1bae1a5387c539cb196081260a6e1eefe3531e5038bb9b2d"
51+
]
52+
}
53+
x-commit-hash: "f9c2aca7b1ab4d1b041a8adbce90b079fa8ccb29"
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
opam-version: "2.0"
2+
synopsis: "A CSS layout engine written in OCaml"
3+
description:
4+
"Toffee is a flexible, high-performance CSS layout engine written in OCaml. It implements CSS Grid, Flexbox, and Block layout algorithms. Toffee is a port of Taffy (https://github.com/DioxusLabs/taffy) to OCaml."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["css" "layout" "flexbox" "grid" "css-grid" "layout-engine"]
9+
homepage: "https://github.com/tmattio/mosaic"
10+
bug-reports: "https://github.com/tmattio/mosaic/issues"
11+
depends: [
12+
"ocaml"
13+
"dune" {>= "3.19"}
14+
"alcotest" {with-test}
15+
"odoc" {with-doc}
16+
]
17+
build: [
18+
["dune" "subst"] {dev}
19+
[
20+
"dune"
21+
"build"
22+
"-p"
23+
name
24+
"-j"
25+
jobs
26+
"@install"
27+
"@runtest" {with-test}
28+
"@doc" {with-doc}
29+
]
30+
]
31+
dev-repo: "git+https://github.com/tmattio/mosaic.git"
32+
x-maintenance-intent: ["(latest)"]
33+
url {
34+
src:
35+
"https://github.com/tmattio/mosaic/releases/download/1.0.0_alpha0/mosaic-1.0.0.alpha0.tbz"
36+
checksum: [
37+
"sha256=bb3315cf58d045504f78da0a6f1923bb5fb896d1235f5b9e04ab69a76af257ff"
38+
"sha512=466b06dc17017b2914cb78c42304514888750f8eccb4c816c347d8963257fbbeac991004a229617e1bae1a5387c539cb196081260a6e1eefe3531e5038bb9b2d"
39+
]
40+
}
41+
x-commit-hash: "f9c2aca7b1ab4d1b041a8adbce90b079fa8ccb29"

packages/vcr/vcr.1.0.0~alpha0/opam

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
opam-version: "2.0"
2+
synopsis: "Terminal recording and playback tool"
3+
description:
4+
"VCR is a tool for recording, replaying, and converting terminal sessions. It captures terminal output and input events to create reproducible terminal animations and demos."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["terminal" "recording" "playback" "demo"]
9+
homepage: "https://github.com/tmattio/mosaic"
10+
bug-reports: "https://github.com/tmattio/mosaic/issues"
11+
depends: [
12+
"ocaml"
13+
"dune" {>= "3.19"}
14+
"matrix"
15+
"menhir"
16+
"vg"
17+
"cmdliner"
18+
"logs"
19+
"fmt"
20+
"alcotest" {with-test}
21+
"odoc" {with-doc}
22+
]
23+
build: [
24+
["dune" "subst"] {dev}
25+
[
26+
"dune"
27+
"build"
28+
"-p"
29+
name
30+
"-j"
31+
jobs
32+
"@install"
33+
"@runtest" {with-test}
34+
"@doc" {with-doc}
35+
]
36+
]
37+
dev-repo: "git+https://github.com/tmattio/mosaic.git"
38+
x-maintenance-intent: ["(latest)"]
39+
url {
40+
src:
41+
"https://github.com/tmattio/mosaic/releases/download/1.0.0_alpha0/mosaic-1.0.0.alpha0.tbz"
42+
checksum: [
43+
"sha256=bb3315cf58d045504f78da0a6f1923bb5fb896d1235f5b9e04ab69a76af257ff"
44+
"sha512=466b06dc17017b2914cb78c42304514888750f8eccb4c816c347d8963257fbbeac991004a229617e1bae1a5387c539cb196081260a6e1eefe3531e5038bb9b2d"
45+
]
46+
}
47+
x-commit-hash: "f9c2aca7b1ab4d1b041a8adbce90b079fa8ccb29"

0 commit comments

Comments
 (0)