Need help with astilectron?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

asticode
225 Stars 52 Forks MIT License 67 Commits 8 Opened issues

Description

Electron app that provides an API over a TCP socket that allows executing Electron's method as well as capturing Electron's events

Services available

!
?

Need anything else?

Contributors list

# 21,832
Go
golang
Electro...
linker
43 commits
# 118,869
Go
Electro...
golang
Shell
5 commits
# 183,030
ftp-cli...
meta-pr...
SQL
web-app...
2 commits
# 263,739
HTML
Electro...
golang
stripe-...
2 commits
# 448,340
JavaScr...
TypeScr...
stripe
2 commits
# 267,008
HTML
Electro...
golang
2 commits
# 211,634
HTML
Electro...
golang
1 commit
# 264,585
HTML
Electro...
golang
1 commit
# 223,232
HTML
golang
vuejs2
vue-com...
1 commit
# 129,387
CSS
hexo
hexo-th...
Electro...
1 commit
# 252,944
JavaScr...
HTML
1 commit
# 232,667
Webpack
preact
TypeScr...
CSS
1 commit

astilectron
is an Electron app that provides an API over a TCP socket that allows executing Electron's method as well as capturing Electron's events.

Architecture

+-----------------------+    TCP    +-------------+    IPC   +---------------------+
+ Client App (any Lang) |+ Astilectron ++ win1: (HTML/JS/CSS) +
+-----------------------+           +-------------+     |    +---------------------++
             |                             |            +---->+ win2: (HTML/JS/CSS) +
             |         +----------+        |               |  +---------------------++
             +---------+ Electron +--------+               +-->+ win3: (HTML/JS/CSS) +
                       +----------+                            +---------------------+

Language bindings

Language bindings play a major role with

astilectron
as they allow communicating with its TCP socket and therefore interacting with its API in any language.

I want to develop language bindings for a new language

Great! :)

Here's a few things you need to know:

  • it's the responsibility of the language bindings to provision
    astilectron
    which usually consists of downloading and unzipping
    astilectron
    as well as
    electron
  • the TCP addr is sent to
    astilectron
    through a command line argument therefore your command line when calling
    astilectron
    should look like
     /main.js 

Language bindings for GO

Check out go-astilectron for

astilectron
GO language bindings

Features and roadmap

  • [x] window basic methods (create, show, close, resize, minimize, maximize, ...)
  • [x] window basic events (close, blur, focus, unresponsive, crashed, ...)
  • [x] remote messaging (messages between GO and the JS in the webserver)
  • [x] multi screens/displays
  • [x] menu methods and events (create, insert, append, popup, clicked, ...)
  • [x] dialogs (open or save file, alerts, ...)
  • [ ] accelerators (shortcuts)
  • [ ] file methods (drag & drop, ...)
  • [ ] clipboard methods
  • [ ] power monitor events (suspend, resume, ...)
  • [ ] notifications (macosx)
  • [ ] desktop capturer (audio and video)
  • [ ] session methods
  • [ ] session events
  • [ ] window advanced options (add missing ones)
  • [ ] window advanced methods (add missing ones)
  • [ ] window advanced events (add missing ones)
  • [ ] child windows

Contribute

For now only GO has its official bindings with

astilectron
, but the more language has its bindings the better! Therefore if you feel like implementing bindings with
astilectron
in some other language feel free to reach out to me to get some more info and finally to get your repo listed here.

Also I'm far from being an expert in Node.JS therefore if you see anything that seems wrong in

astilectron
feel free to create an issue or even better contribute through a PR!

You know you want to! :D

Cheers to

thrust which is awesome but unfortunately not maintained anymore. It inspired this project.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.