fsprojects/Interstellar
50.2
Weak · 3 October 2026
1.4k
lines of production code
F#
primary language
2
measurements over time
What this system is
Interstellar is a .NET library that enables desktop applications to host web content using platform-specific browser engines like Chromium and WebKit. It provides a unified abstraction for managing browser windows and executing JavaScript safely across Windows (via WPF and WinForms) and macOS. The system includes scaffolding templates and examples to demonstrate multi-window management and cross-window communication.
How it got here
2019 — Initial scaffolding and example expansion
7 changes.
The project established its foundational build infrastructure and cleaned up incomplete API stubs while upgrading to .NET 6 and CefSharp 86. This period focused on demonstrating core capabilities through new example applications for Windows (WinForms and WPF) and macOS (WebKit), covering features like script injection and cross-window communication.
2020 — Cross-platform browser engine integration
8 changes.
The project introduced a unified browser abstraction layer to support Chromium and WebKit engines across WPF, WinForms, and macOS platforms. This period focused on implementing core browser interfaces, safe JavaScript execution, and platform-specific integrations while updating templates to demonstrate multi-window capabilities and .NET 6 compatibility.
Features
Add Chromium-based browser engine support for WPF and WinForms
Introduces a new Chromium browser engine implementation for Interstellar, enabling applications to host web content using CefSharp. This change adds core browser logic in Interstellar.Chromium, including JavaScript injection capabilities via a custom request handler, and provides platform-specific integration layers for Windows Forms (Interstellar.WinForms.Chromium) and WPF (Interstellar.Wpf.Chromium). Users can now create desktop applications with embedded Chromium browsers, leveraging features like custom JS injection, page title tracking, and asynchronous lifecycle management within their respective UI frameworks.
src/Interstellar.Chromium, src/Interstellar.WinForms.Chromium, src/Interstellar.Wpf.Chromium · high confidence
Add Interstellar.Template nuspec for .NET template packaging
A new nuspec file (Interstellar.Template.nuspec) has been added to the templates directory to define the metadata for the Interstellar Template Pack. This file specifies the package ID, title, author, MIT license, and project/repository URLs, enabling the proper packaging and distribution of the template as a .NET template package.
templates · high confidence
Add macOS WebKit example application
A new example application demonstrating the Interstellar macOS WebKit integration has been added. This sample project, built with .NET 6 and targeting macOS 10.14, provides a complete entry point and application lifecycle management using \AppDelegate\ and \Main.fs\. It showcases how to initialize the browser engine, handle window creation via \IBrowserWindow\, and run the asynchronous browser loop within a native macOS Cocoa environment.
Examples/Examples.macOS.WebKit · high confidence
Add macOS application template
A new minimal template for macOS applications has been added to the project. This includes the necessary entry point (Main.fs), application delegate (AppDelegate.fs) to handle launch and window lifecycle, and standard macOS configuration files such as Info.plist, Entitlements.plist, and asset catalogs for app icons. This allows users to scaffold a native macOS desktop application using the Interstellar framework.
templates/minimal/src/InterstellarApp.macOS · high confidence
Initial project scaffolding and build infrastructure
This change introduces the foundational structure for the Interstellar library, including the FAKE build script (build.fsx) and its lock file, which automate building, packaging, and documentation generation. It adds solution files for Windows and macOS, centralizes assembly and package metadata in AssemblyAndPackageInfo.props, and establishes the initial CHANGELOG.md, README.md, CONTRIBUTING.md, and LICENSE files to define the project's scope, usage, and licensing.
(repo-wide) · high confidence
Introduce core browser abstraction and safe JavaScript execution
The library now exposes a core API defining \IBrowser\ and \IBrowserWindow\ interfaces, allowing applications to host web views across different platforms (WPF, WinForms, macOS) and engine types (Chromium, WebKit). A key addition is the \ExecuteJavascriptf\ method, which provides a printf-style, safe way to inject JavaScript into the browser, protecting against script injection vulnerabilities when handling untrusted input. The module also includes configuration helpers for managing window titles and initial page loads.
src/Interstellar.Core · high confidence
Introduce macOS WebKit browser engine implementation
Adds a new macOS-specific browser engine implementation using Apple's WebKit framework. This includes the core browser logic (Browser.fs), window management (BrowserWindow.fs), and application lifecycle handling (BrowserApp.fs) to provide a native Cocoa-based browsing experience on macOS, replacing or supplementing previous platform-specific implementations.
src/Interstellar.MacOS.WebKit · high confidence
New Chromium example applications for WinForms and WPF
Added new example projects for the Chromium integration, specifically \Examples.WinForms.Chromium\ and \Examples.Wpf.Chromium\. These samples demonstrate how to initialize the Interstellar Chromium platform and run a browser application within WinForms and WPF contexts, providing a callback for handling the native window creation event. The WinForms example targets .NET Core 3.0 and includes dependencies for CefSharp (version 75.1.143) and FSharp.Core (4.2.3).
Examples/Examples.WinForms.Chromium, Examples/Examples.Wpf.Chromium · high confidence
New shared example library with calculator, injected content, and inter-window communication demos
The Examples.SharedCode project now provides a reusable library of demonstration applications, including a real-time calculator, a window that injects runtime/platform details into a local HTML file, a detector page viewer, and an example of cross-window communication via JavaScript messages. These examples demonstrate key library capabilities such as HTML string loading, script injection with DOM-ready handling, title mapping, and safe message passing between browser windows.
Examples/Examples.SharedCode · high confidence
Removals
Removal of empty IBrowserWindow interface
The empty IBrowserWindow interface has been removed from Interstellar.Core. This interface previously served as a base contract for browser window management but contained no members, indicating it was likely a placeholder or part of an incomplete API surface.
Interstellar.Core · high confidence
Removed stub BrowserWindow type
The empty \BrowserWindow\ type definition in \Interstellar.Windows.Chromium.Wpf\ has been removed. This file previously contained only a namespace declaration and an empty class, indicating it was a placeholder or stub that is no longer needed.
Interstellar.Windows.Chromium.Wpf · high confidence
Behavioural changes
Fixes for WinForms release crashes and high-DPI rendering in Chromium integration
The Chromium platform initialization logic has been updated to address two specific stability and display issues. First, the shutdown method is now explicitly marked to prevent inlining, which resolves a crash occurring in WinForms applications when built in Release mode. Second, high-DPI support is explicitly enabled during initialization to ensure correct rendering on high-resolution displays.
src/Interstellar.WindowsCommon.Chromium · high confidence
Minimal template now demonstrates advanced multi-window and cross-window communication patterns
The minimal template has been replaced with a more complex example application that showcases advanced Interstellar capabilities. Users will now see a demo featuring multiple browser windows, including a calculator, a detector page, and a cross-window communication scenario where an input window sends data to an output window via JavaScript messages. The template also includes logic for injecting runtime information into a dynamically created HTML file and demonstrates safe handling of JavaScript message payloads to prevent injection vulnerabilities.
templates/minimal/src/InterstellarApp.Core · high confidence
Updated .NET 6 template structure and solution files
The minimal template now targets .NET 6 (SDK version 6.0.100) and includes a global.json to enforce this version. The Windows solution file has been renamed to InterstellarApp.Windows.sln, updated to Visual Studio 16.0.808.3, and simplified to reference only the Core and Windows projects, removing the previous Chromium.Wpf project and .paket configuration. A new InterstellarApp.macOS.sln solution file has been added to support macOS development.
templates/minimal/src · high confidence
Dependencies
Upgrade to .NET 6 and CefSharp 86 with multi-targeting support
The project has been upgraded to support .NET 6, with new multi-targeting configurations for Windows (net5.0-windows, net6.0-windows) and macOS (net6.0-macos) in both the library and example projects. CefSharp has been locked to version 86.0.241 to ensure compatibility with the new .NET versions. The templates have also been updated to use Interstellar version 0.4.0 and CefSharp.Wpf 86.0.241, ensuring that new projects generated from these templates will benefit from the latest framework and browser engine features.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 51 → 50 (-0.4)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 94 → 98 (+4.0)
- Architecture 91 → 93 (+2.1)
- Maturity 39 → 53 (+13.9)
- Readiness 43 → 35 (-7.3)
- Security 69 → 57 (-12.4)
Resolved (5)
- Critical CVE: CefSharp.Common 86.0.241
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (docs/index.md)
- High CVE: CefSharp.WinForms 86.0.241
- High CVE: CefSharp.Wpf 86.0.241
New (16)
- Duplicated block (16 lines × 2) (Examples/Examples.macOS.WebKit/AppDelegate.fs)
- Outdated: BlackFox.MasterOfFoo
- Outdated: CefSharp.Common
- Outdated: CefSharp.WinForms
- Outdated: CefSharp.Wpf
- Outdated: FSharp.Core
- Outdated: System.Buffers
- Outdated: System.Memory
- Outdated: System.Numerics.Vectors
- Outdated: System.Runtime.CompilerServices.Unsafe
- Outdated: System.Text.Encodings.Web
- Outdated: cef.redist.x64
- Outdated: cef.redist.x86
- Vulnerable: CefSharp.Common
- Vulnerable: CefSharp.WinForms
- Vulnerable: CefSharp.Wpf
Architecture
- Containers 0 added · 0 removed · contexts 2 added · 0 removed · edges 1 added · 0 removed
Added bounded contexts (2)
- Interstellar.Chromium
- Interstellar.Core
Added dependency edges (1)
- Interstellar.Chromium → Interstellar.Core
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
fsprojects/Interstellar was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit bdab730669f8fe30aead0e9ffa9f43d86e49df95 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.