百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
T

thrust

> 编程语言
开源

基于 Chromium 的跨平台/跨语言应用程序框架

2.8K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

基于 Chromium 的跨平台/跨语言应用程序框架

DEPRECATED - This package is no longer supporter or maintained.

Chromium-based cross-platform / cross-language application framework

Thrust is require/import-able, it lets you distribute NodeJS, Go or Python GUI apps directly through their native package managers.

Thrust is based on Chromium's Content Module and is supported on Linux, MacOSX and Windows:

Screenshot of Thrust Getting Started example running on each major platform.

To better understand what Thrust can do, check out JankyBrowser by @morganrallen, the cross-platform browser that fits in a gist:

npm install -g \
  https://gist.github.com/morganrallen/f07f59802884bcdcad4a/download

Table of Contents

  • Language bindings
    • NodeJS
    • Go
    • Python
    • Scala
    • Clojure
    • Perl
  • API Reference
  • Architecture
  • Community
    • Request for API
    • List of Thrust Users
    • Thrust 7.5k Contest
    • Getting Involved
  • Features & Roadmap
  • Building Thrust from Sources

Language bindings

Thrust's binary distribution exposes its API on the standard IO and language specific library packages automatically download the binary distribution at installation. Thrust is based on Chromium's content module and uses web-pages as its GUI.

All these Getting Started example work as is on each major platform (MacOSX, Windows, Linux)

NodeJS

Getting Started

First install with npm install node-thrust

require('node-thrust')(function(err, api) { 
  api.window({ root_url: 'https://google.com' }).show();
});
Library
  • node-thrust breach/node-thrust

Go

Getting Started

First download with go get -u github.com/miketheprogrammer/go-thrust/

package main

import ( "github.com/miketheprogrammer/go-thrust/lib/dispatcher" "github.com/miketheprogrammer/go-thrust/lib/spawn" "github.com/miketheprogrammer/go-thrust/lib/bindings/window" "github.com/miketheprogrammer/go-thrust/lib/commands" )

func main() { spawn.Run() size := commands.SizeHW{} opts := window.Options{ RootUrl: "http://google.com", Size: size, Title: "Demo window", HasFrame: true, } thrustWindow := window.NewWindow(opts) thrustWindow.Show() thrustWindow.Maximize() thrustWindow.Focus() dispatcher.RunLoop() }

Library
  • go-thrust: miketheprogrammer/go-thrust

Python

Getting Started

First install with pip3 install pythrust [--user] (requires Python3)

import asyncio, pythrust

loop = asyncio.get_event_loop()
api = pythrust.API(loop)

asyncio.async(api.spawn())
asyncio.async(api.window({ 'root_url': 'http://google.com' }).show())

loop.run_forever()
Library
  • pythrust breach/pythrust

Scala

Getting Started

Include scala-thrust jar on your classpath. (Add to lib in your project.)

import scala.concurrent.ExecutionContext.Implicits.global
import com.github.eklavya.thrust._

object Main extends App {
  Window.create("http://google.com").foreach { w =>
    w.show
    w.maximize
    w.openDevtools
    w.focus(true)
    w.onBlur(() => println("we were blurred"))
    w.onFocus(() => println("we were focused"))
    Menu.create("MyMenu").foreach { m =>
      val i = MenuItem("Item1", _ => println("Item1 was clicked"))
      m.addItem(i)
      m.popup(w)
    }
  }
}
Library
  • scala-thrust eklavya/scala-thrust

Clojure

Getting Started
  • Installation
  • Sample Project
(ns my-app.core
  (:require [clj-thrust.core :refer [create-process destroy-process]]
            [clj-thrust.window :as w]))

(let [process (create-process) ; `create-process` also takes path to Thrust directory
      window (w/create-window process
               :root-url "http://localhost:8080" ; URL to your web app
               :size {:width 400 :height 300})]
  (w/listen-closed window
    (fn [e]
      (destroy-process process))) ; Optionally call `(System/exit 0)` here.
  (w/show window)
  (w/focus window true))
Library
  • clj-thrust solicode/clj-thrust

Perl

Getting Started

Install with cpanm Thrust [--sudo]

Simple command line test:

perl -MThrust -e 'Thrust->window->show->maximize->open_devtools->run'

Basic program

use Thrust;

my $t = Thrust->new;

my $w = $t->window(
          root_url => 'data:text/html,Hello World!',
          title => 'My App',
          size => { width => 800, height => 600 },
        );

$w->on(closed => sub { exit });

$w->show;

$t->run; ## enter event loop
Library
  • metacpan
  • github

API Reference

The API reference as well as links to specific language bindings documentations are availble in the docs/ directory.


Architecture

…

Community

Request for API
  • List of API needed by various projects on Thrust: Request for API
List of Thrust Users
  • List of people relying on Thrust: List of Thrust Users
Getting Involved

No longer maintained actively.


Features & Roadmap

  • window creation create, show, close resize, minimize, maximize, ...
  • node.js, go node.js and go bindings libraries
  • window events close, blur, focus, unresponsive, crashed
  • cross-platform equivalent support on MacOSX, Windows and Linux
  • sessions off the record, custom storage path, custom cookie store
  • kiosk kiosk mode
  • application menu global application menu (MacOSX, X11/Unity)
  • webview webview tag (secure navigation, tabs management)
  • frameless frameless window and draggable regions
  • python python bindings library
  • remote thrust specific IPC mechanism for client/server communication
  • proxy enable traffic proxying (Tor, header injection, ...)
  • tray icon tray icon native integration
  • protocol specific protocol registration (file://, ...)

Building Thrust from Sources

You will generally don't need to build thrust yourself. A binary version of thrust should be automatically fetched by the library you're reyling on at installation.

To build thrust, you'll need to have python 2.7.x and git installed. You can then boostrap the project with:

./scripts/boostrap.py                                

Build both the Release and Debug targets with the following commands:

./scripts/update.py
./scripts/build.py

Note that bootstrap.py may take some time as it checks out brightray and downloads libchromiumcontent for your platform.

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C++

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言