Skip to content

Commit d58bd10

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 fb96181 commit d58bd10

File tree

5 files changed

+231
-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

+231
-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: "Terminal emulator example using Matrix and SDL2"
3+
description:
4+
"Matrix-term is an example terminal emulator application demonstrating Matrix's virtual terminal emulator (VTE) capabilities. It uses SDL2 for rendering and showcases how to build a fully functional terminal emulator with Matrix's infrastructure."
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=f7445c12f07bdacb2a67b21a7d3b17fe5ed81d753dde0a9044e991f55a019914"
40+
"sha512=5a6d131251a097518cb249d11baaa15af4227e5dfef10e1c00859431443dfeb997404140b0073ab29305c97bac7db0a6d73872559fbdcc405071ddb31b275951"
41+
]
42+
}
43+
x-commit-hash: "da4542cc969b51d76604e25cac2e756f951768bc"
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: "High-performance terminal infrastructure for OCaml"
3+
description:
4+
"Matrix is a highly optimized terminal programming toolkit providing efficient grid representation with damage tracking, double-buffered rendering, and comprehensive Unicode support. It includes an incremental input parser supporting Kitty keyboard protocol, complete ANSI escape sequence generation, terminal control (TTY), pseudo-terminal operations (PTY), and a virtual terminal emulator (VTE). Features mouse support with X10/SGR/URXVT protocols."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["terminal" "ansi" "input" "grid" "rendering" "unicode" "pty" "vte"]
9+
homepage: "https://github.com/tmattio/mosaic"
10+
bug-reports: "https://github.com/tmattio/mosaic/issues"
11+
depends: [
12+
"ocaml" {>= "5.1"}
13+
"dune" {>= "3.19"}
14+
"uutf"
15+
"uucp"
16+
"uuseg" {>= "16.0.0"}
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=f7445c12f07bdacb2a67b21a7d3b17fe5ed81d753dde0a9044e991f55a019914"
42+
"sha512=5a6d131251a097518cb249d11baaa15af4227e5dfef10e1c00859431443dfeb997404140b0073ab29305c97bac7db0a6d73872559fbdcc405071ddb31b275951"
43+
]
44+
}
45+
x-commit-hash: "da4542cc969b51d76604e25cac2e756f951768bc"
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
opam-version: "2.0"
2+
synopsis:
3+
"A modern terminal UI framework for OCaml with React-inspired hooks"
4+
description:
5+
"Mosaic is a high-performance terminal UI framework that brings React's component model and hooks to terminal applications through OCaml 5's algebraic effects. It provides a direct-style API with hooks like use_state and use_effect, a rich component library, and supports both React-style and Elm Architecture patterns. Built on Matrix for terminal I/O and Toffee for CSS layouts."
6+
maintainer: ["Thibaut Mattio <[email protected]>"]
7+
authors: ["Thibaut Mattio <[email protected]>"]
8+
license: "ISC"
9+
tags: ["tui" "terminal" "react" "hooks" "algebraic-effects" "user-interface"]
10+
homepage: "https://github.com/tmattio/mosaic"
11+
bug-reports: "https://github.com/tmattio/mosaic/issues"
12+
depends: [
13+
"ocaml" {>= "5.1"}
14+
"dune" {>= "3.19"}
15+
"matrix"
16+
"toffee"
17+
"uutf"
18+
"uucp"
19+
"uuseg" {>= "16.0.0"}
20+
"eio"
21+
"eio_main"
22+
"logs"
23+
"fmt"
24+
"cmarkit"
25+
"textmate-language"
26+
"yojson"
27+
"alcotest" {with-test}
28+
"ppx_expect" {with-test}
29+
"odoc" {with-doc}
30+
]
31+
build: [
32+
["dune" "subst"] {dev}
33+
[
34+
"dune"
35+
"build"
36+
"-p"
37+
name
38+
"-j"
39+
jobs
40+
"@install"
41+
"@runtest" {with-test}
42+
"@doc" {with-doc}
43+
]
44+
]
45+
dev-repo: "git+https://github.com/tmattio/mosaic.git"
46+
x-maintenance-intent: ["(latest)"]
47+
url {
48+
src:
49+
"https://github.com/tmattio/mosaic/releases/download/1.0.0_alpha0/mosaic-1.0.0.alpha0.tbz"
50+
checksum: [
51+
"sha256=f7445c12f07bdacb2a67b21a7d3b17fe5ed81d753dde0a9044e991f55a019914"
52+
"sha512=5a6d131251a097518cb249d11baaa15af4227e5dfef10e1c00859431443dfeb997404140b0073ab29305c97bac7db0a6d73872559fbdcc405071ddb31b275951"
53+
]
54+
}
55+
x-commit-hash: "da4542cc969b51d76604e25cac2e756f951768bc"
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: "Pure OCaml port of the Taffy CSS layout engine"
3+
description:
4+
"Toffee is a high-performance CSS layout engine providing full CSS Grid Level 1, complete Flexbox algorithm, and traditional block layout with margin collapsing. It's a pure OCaml port of Taffy, enabling responsive terminal layouts with percentage-based sizing, calc() expressions, and the full CSS box model including padding, margin, and borders."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["css" "layout" "flexbox" "grid" "css-grid" "taffy" "layout-engine"]
9+
homepage: "https://github.com/tmattio/mosaic"
10+
bug-reports: "https://github.com/tmattio/mosaic/issues"
11+
depends: [
12+
"ocaml" {>= "5.1"}
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=f7445c12f07bdacb2a67b21a7d3b17fe5ed81d753dde0a9044e991f55a019914"
38+
"sha512=5a6d131251a097518cb249d11baaa15af4227e5dfef10e1c00859431443dfeb997404140b0073ab29305c97bac7db0a6d73872559fbdcc405071ddb31b275951"
39+
]
40+
}
41+
x-commit-hash: "da4542cc969b51d76604e25cac2e756f951768bc"

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 session recording and playback tool"
3+
description:
4+
"VCR is a comprehensive tool for recording, replaying, and converting terminal sessions. It captures terminal output and input events with accurate timing to create reproducible terminal animations, demos, and documentation. Supports various export formats for sharing terminal sessions."
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=f7445c12f07bdacb2a67b21a7d3b17fe5ed81d753dde0a9044e991f55a019914"
44+
"sha512=5a6d131251a097518cb249d11baaa15af4227e5dfef10e1c00859431443dfeb997404140b0073ab29305c97bac7db0a6d73872559fbdcc405071ddb31b275951"
45+
]
46+
}
47+
x-commit-hash: "da4542cc969b51d76604e25cac2e756f951768bc"

0 commit comments

Comments
 (0)