roxane 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +61 -12
  4. data/lib/roxane/version.rb +1 -1
  5. metadata +6 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 949821f1324cd761b172fc4b4f7519459b3d70c3a53db0bc9ba3ad694ffe3e80
4
- data.tar.gz: dd6ea3c05680732a4c6d8cb08702626735675b2035d6cdc1c7822a08e43fac93
3
+ metadata.gz: df80c83574d8bd26f0cf1f386bf9c0985810c65cf45775d92e9b4c4ebb1d637b
4
+ data.tar.gz: 33b09ef89cbc7e63ebc07bf3e1989d9d87082818097f28ef6445147449542090
5
5
  SHA512:
6
- metadata.gz: edbfde719e7560dcd6f2e68c8509be66d44118035fe02009f6d285482583abf14c5f6bcdfc8bb577c62f60db7cd615c720b9ca18f13c7259269fb8bb52b341bf
7
- data.tar.gz: c70573dc5ad95b1d59ab06ed5714dd88a420410857e5c3fcad2c974834429f19a8679a85b2933408a40f821374064ea675d6f3980e3f7f93a9d720797fdaf243
6
+ metadata.gz: '0482a26303a715cab2289aba9df732ce54bded5bcaf6424ed25e81b1012a7b98d25dcdd2fd61e0f004da719fecd80e33e87d5926f810e21798d43d88e3e1c6f6'
7
+ data.tar.gz: 8dd38d38fc168b5f4449c06de731b9912d70c376b5fbecf9a9a6587f836154b3f569f4db815bd9fc3267f6e171834a8eb14b3b5e6a18d6662792f155805dd90e
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 BKK Riese
3
+ Copyright (c) 2026 Pacific Robots, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Roxane
2
2
 
3
+ [![build-gems](https://github.com/pacificrobots/roxane/actions/workflows/build-gems.yml/badge.svg)](https://github.com/pacificrobots/roxane/actions/workflows/build-gems.yml)
4
+
3
5
  A pure-Ruby desktop shell: a native window over the operating system's webview
4
6
  (WebView2 / WKWebView / WebKitGTK, via the [webview](https://github.com/webview/webview)
5
7
  C library), with a Ruby⇄JS **operation bridge**. A lightweight, Tauri-shaped way
@@ -14,6 +16,37 @@ Roxane is the **host and data plane** — a window, the system webview, an
14
16
  you give it and is **agnostic to look-and-feel** (no CSS, no widgets, no layout
15
17
  opinions). The same frontend can run in the desktop shell and in a hosted browser.
16
18
 
19
+ ## When to use it
20
+
21
+ Reach for Roxane when you want a **real desktop window** around a web UI, and
22
+ **Ruby owns the logic**:
23
+
24
+ - **Ship a web frontend as a desktop app** without Electron’s bulk — your UI can
25
+ be plain HTML, or a Vite/React/Svelte/etc. build you already have
26
+ - **Ruby on the inside, JS on the glass** — long work (AI calls, imports, jobs)
27
+ runs in Ruby handlers off the UI thread; the page stays responsive via
28
+ `invoke` / `emit`
29
+ - **One frontend, two shells** — develop in the browser against a dev server
30
+ (`load`), ship the same assets in the native window (`serve`)
31
+ - **Local tools and studios** — editors, dashboards, creative apps, ops utilities
32
+ where Ruby is already home and you want a polished window, not a terminal-only UX
33
+
34
+ **Not a fit** if you need native OS widgets, deep App Store chrome, or a batteries-
35
+ included UI framework — Roxane deliberately does none of that. It’s the thin shell
36
+ under *your* frontend.
37
+
38
+ ## Install
39
+
40
+ ```sh
41
+ gem install roxane
42
+ # or in a Gemfile:
43
+ # gem "roxane", ">= 0.0.4"
44
+ ```
45
+
46
+ Bundler picks the matching **platform gem** when one exists (vendored `libwebview`).
47
+ You still need the OS webview runtime (WebKitGTK on Linux, WebView2 on Windows,
48
+ WKWebView on macOS).
49
+
17
50
  ## Example
18
51
 
19
52
  ```ruby
@@ -27,6 +60,9 @@ win.on("greet") { |name| "Hello, #{name}!" }
27
60
  # Ruby → JS: window.roxane.on("tick", ({ at }) => ...)
28
61
  win.emit("tick", { at: Time.now.to_i })
29
62
 
63
+ # Full-content zoom (WebKitGTK today; no-op where the engine binding is absent)
64
+ win.zoom = 1.2
65
+
30
66
  win.serve(File.expand_path("ui")) # serve a built frontend bundle, or:
31
67
  # win.load("http://localhost:5173") # point at a dev server, or:
32
68
  # win.html("<!doctype html>…") # inline HTML
@@ -39,15 +75,27 @@ thread — so long-running work (e.g. an AI call) never freezes the window.
39
75
 
40
76
  ## Requirements
41
77
 
42
- The `webview` C library (`libwebview`) must be available at runtime. The
43
- precompiled platform gem (e.g. `x86_64-linux`) **vendors it**, so you only need
44
- the system webview runtime (WebKitGTK on Linux). Otherwise set `ROXANE_LIBWEBVIEW`
45
- to a `libwebview` path, or have it on the loader path.
78
+ The `webview` C library (`libwebview`) must be available at runtime. Precompiled
79
+ platform gems **vendor it**, so you only need the system webview runtime.
80
+ Otherwise set `ROXANE_LIBWEBVIEW` to a `libwebview` path, or have it on the
81
+ loader path.
46
82
 
47
83
  ## Packaging (precompiled platform gems)
48
84
 
49
85
  Roxane ships a prebuilt `libwebview` per platform (the nokogiri model) so users
50
- need no toolchain. For x86_64-linux:
86
+ need no toolchain. CI builds and publishes to [RubyGems](https://rubygems.org/gems/roxane)
87
+ on each `v*` tag for:
88
+
89
+ | Platform gem | Runner |
90
+ |---------------------|---------------|
91
+ | `x86_64-linux` | Ubuntu |
92
+ | `aarch64-linux` | Ubuntu ARM |
93
+ | `arm64-darwin` | macOS Apple Silicon |
94
+ | `x86_64-darwin` | macOS Intel |
95
+ | `x64-mingw-ucrt` | Windows |
96
+ | ruby (no binary) | source gem |
97
+
98
+ Local Linux packaging (Docker):
51
99
 
52
100
  ```sh
53
101
  rake vendor:linux # build libwebview into vendor/x86_64-linux/
@@ -55,7 +103,8 @@ rake gem:linux # build roxane-<ver>-x86_64-linux.gem (vendoring the lib)
55
103
  rake verify:linux # install that gem in a clean container and smoke-test it
56
104
  ```
57
105
 
58
- macOS / Windows / aarch64 cross-builds are next.
106
+ Multi-platform gems are produced by GitHub Actions (`.github/workflows/build-gems.yml`),
107
+ not these rake tasks.
59
108
 
60
109
  ## Testing
61
110
 
@@ -76,12 +125,12 @@ first map (then releasing it so the window stays resizable).
76
125
 
77
126
  ## Status
78
127
 
79
- Early but working. The runtime (window + system webview + invoke/emit bridge +
80
- loopback asset server) is green headlessly, and **precompiled x86_64-linux
81
- packaging works** `rake verify:linux` builds the platform gem and proves it
82
- installs and runs on a clean machine (system WebKitGTK only, no toolchain). Next:
83
- macOS / Windows / aarch64 cross-builds + RubyGems publish, then richer window
84
- options (menus, frameless).
128
+ Early but working (**0.0.4**). The runtime (window + system webview + invoke/emit
129
+ bridge + loopback asset server), native zoom on WebKitGTK, and Wayland initial
130
+ sizing are in place. Platform gems publish to RubyGems on version tags.
131
+
132
+ Next: richer window options (menus, frameless), and zoom bindings for
133
+ macOS/Windows engines.
85
134
 
86
135
  ## License
87
136
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Roxane
4
- VERSION = "0.0.3"
4
+ VERSION = "0.0.4"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roxane
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - BKK Riese
@@ -44,10 +44,13 @@ files:
44
44
  - lib/roxane/version.rb
45
45
  - lib/roxane/webkit.rb
46
46
  - lib/roxane/window.rb
47
- homepage: https://github.com/quarterstack/roxane
47
+ homepage: https://github.com/pacificrobots/roxane
48
48
  licenses:
49
49
  - MIT
50
- metadata: {}
50
+ metadata:
51
+ homepage_uri: https://github.com/pacificrobots/roxane
52
+ source_code_uri: https://github.com/pacificrobots/roxane
53
+ bug_tracker_uri: https://github.com/pacificrobots/roxane/issues
51
54
  post_install_message:
52
55
  rdoc_options: []
53
56
  require_paths: