All Projects → fsprojects → Interstellar

fsprojects / Interstellar

Licence: MIT License
Cross-platform desktop apps in F# using web tech - https://www.nuget.org/packages/Interstellar.Core/

Programming Languages

F#
602 projects

Projects that are alternatives of or similar to Interstellar

WebView4Delphi
WebView4Delphi is an open source project created by Salvador Díaz Fau to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC for Windows.
Stars: ✭ 157 (+390.63%)
Mutual labels:  chromium, webkit
mitm-play
Man in the middle using Playwright
Stars: ✭ 13 (-59.37%)
Mutual labels:  chromium, webkit
FoldingBrowser
FoldingCoin & CureCoin All-In-One Installer
Stars: ✭ 48 (+50%)
Mutual labels:  chromium, cefsharp
Playwright
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
Stars: ✭ 31,513 (+98378.13%)
Mutual labels:  chromium, webkit
Playwright Sharp
.NET version of the Playwright testing and automation library.
Stars: ✭ 459 (+1334.38%)
Mutual labels:  chromium, webkit
Playwright Go
Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API.
Stars: ✭ 272 (+750%)
Mutual labels:  chromium, webkit
Playwright Python
Python version of the Playwright testing and automation library.
Stars: ✭ 5,583 (+17346.88%)
Mutual labels:  chromium, webkit
Chromely
Build HTML Desktop Apps on .NET/.NET Core/.NET 5 using native GUI, HTML5, JavaScript, CSS
Stars: ✭ 2,728 (+8425%)
Mutual labels:  chromium, cefsharp
playwright-demos
playwright for scrapping and UI testing / automate testing workflows
Stars: ✭ 65 (+103.13%)
Mutual labels:  chromium, webkit
gcf-packs
Library packs for google cloud functions
Stars: ✭ 48 (+50%)
Mutual labels:  chromium
amp-browser
AMP Browser
Stars: ✭ 39 (+21.88%)
Mutual labels:  chromium
vdpau-va-driver-vp9
Experimental VP9 codec support for vdpau-va-driver (NVIDIA VDPAU-VAAPI wrapper) and chromium-vaapi
Stars: ✭ 68 (+112.5%)
Mutual labels:  chromium
flutter-webview-windows
A WebView2-powered Flutter WebView implementation for the Windows platform.
Stars: ✭ 83 (+159.38%)
Mutual labels:  chromium
setup-msbuild
A GitHub Action to facilitate configuring MSBuild in the workflow PATH for building .NET Framework applications.
Stars: ✭ 170 (+431.25%)
Mutual labels:  dotnet-framework
C-Sharp-Learning-Journey
Some of the projects i made when starting to learn c#, winfroms and wpf
Stars: ✭ 95 (+196.88%)
Mutual labels:  dotnet-framework
webviewhs
🌐 A Haskell binding to the webview library created by Serge Zaitsev.
Stars: ✭ 109 (+240.63%)
Mutual labels:  webkit
BlazorCefApp
Build windows desktop GUI app via CEF / WinForms / Blazor server-site
Stars: ✭ 28 (-12.5%)
Mutual labels:  chromium
homebrew-chromium
🌍 Chromium Snapshots Delivered Through Homebrew!
Stars: ✭ 35 (+9.38%)
Mutual labels:  chromium
retrokit
🕹️ Bring back the old Web(Kit) and make it secure
Stars: ✭ 39 (+21.88%)
Mutual labels:  webkit
chromium-legacy
Latest Chromium (≒Chrome Canary) for Mac OS X 10.7/10.8/10.9/10.10
Stars: ✭ 71 (+121.88%)
Mutual labels:  chromium

Interstellar

CI (macOS) CI (Windows)

NOTE: This API is not yet guarenteed to be stable or backward-compatible until v1.0, so breaking changes may occur at any time.

Interstellar is an F# library providing a standard, mixed-paradigm API for accessing browser controls on various platforms. Currently, there are 3 combinations platform and browser hosts available. See Examples for a simple sample application. See https://github.com/jwosty/InterstellarFableHelloWorld for an example of combining Interstellar with Fable, achieving a cross-platform desktop app built completely in F#.

Project breakdown

This project is composed of several NuGet packages. Let's break them down and describe their purposes:

  • Interstellar.Core
    • Core API definition. All Interstellar apps reference this. It contains everything you need to define the lifecycle for a browser-based application, agnostic to host platform and browser engine. Interstellar.Core is to Interstellar.macOS.WebKit and Interstellar.Wpf.Chromium as .Net Standard is to .Net Framework and .Net Core (though not a perfect analogy, it's helpful to think of it in that way).
  • Interstellar.macOS.WebKit
    • Implements Interstellar API on macOS using native Cocoa and WebKit. WebKit comes with the operating system, and therefore doesn't ship with a browser redistributable. The advantage is that your application bundle is lean. The downside is you have no control whatsoever over what version of WebKit your application will end up getting because its updates come with the OS. For end users with older versions of macOS, your application will run with an older version of WebKit.
  • Interstellar.Wpf.Chromium
    • Implements Interstellar on Windows for WPF + Chromium. Because it uses CEF (Chromium Embedded Framework), CEF will be included with your bundle application if you use this. The advantage is that you get to control the exact version of browser control that ships with your application. The downside is that your application bundle is large: a release build of Examples.Wpf.Chromium clocks in at nearly 350MB. This is the Electron way of doing things, if you will.
  • Interstellar.WinForms.Chromium
    • Just like Interstellar.Wpf.Chromium -- the only difference is that it uses the WinForms APIs. Most people should probably choose the WPF package, as it is more modern.
  • Interstellar.Chromium
    • Contains shared code between the Windows Chromium packages.

I intend to create a Windows package that uses the built-in Windows browser control (likely Edge with Chromium), as well as a macOS package that uses CEF (however this is a bigger undertaking as non of the CEF .NET bindings work on macOS yet). Contributions for either of these are welcome, as well as any other possible targets! Linux would be nice to support, but I don't have GTK experience (or whatever you'd use to wrap a browser control).

Building

dotnet tool restore
dotnet paket restore
dotnet fake build

Creating the NuGet package

After building, run:

dotnet fake build -t Pack

The resuling *.nupkg files will end up in ./artifacts/

Building docs

dotnet fake build -t BuildDocs
// to actually release docs, assuming you have push priveleges to the repo:
dotnet fake biuld -t ReleaseDocs

Maintainer(s)

The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].