Check this page for other language bindings (Delphi / D / Go / .NET / Python / Rust).
The ownership of project is transferred to this new organization.
Thus the import path
for golang should now be github.com/sciter-sdk/go-sciter
, but the package name is still sciter
.
This package provides a Golang bindings of Sciter using cgo.
Using go sciter you must have the platform specified sciter dynamic library
downloaded from sciter-sdk, the library itself is rather small
(under 5MB, less than 2MB when upxed) .
Most Sciter API are supported, including:
- Html string/file loading
- DOM manipulation/callback/event handling
- DOM state/attribute handling
- Custom resource loading
- Sciter Behavior
- Sciter Options
- Sciter Value support
- NativeFunctor (used in sciter scripting)
And the API are organized in more or less a gopher friendly way.
Things that are not supported:
- Sciter Node API
- TIScript Engine API
-
Download the sciter-sdk
-
Extract the sciter runtime library from sciter-sdk to system PATH
The runtime libraries lives in
bin
bin.lnx
bin.osx
with suffix likedll
so
ordylib
- Windows: simply copying
bin\64\sciter.dll
toc:\windows\system32
is just enough - Linux:
cd sciter-sdk/bin.lnx/x64
export LIBRARY_PATH=$PWD
echo $PWD >> libsciter.conf
sudo cp libsciter.conf /etc/ld.so.conf.d/
sudo ldconfig
ldconfig -p | grep sciter
should print libsciter-gtk.so location
- OSX:
cd sciter-sdk/bin.osx/
export DYLD_LIBRARY_PATH=$PWD
- Windows: simply copying
-
Set up GCC envrionmnet for CGO
mingw64-gcc (5.2.0 and 7.2.0 are tested) is recommended for Windows users.
Under Linux gcc(4.8 or above) and gtk+-3.0 are needed.
-
go get -x github.com/sciter-sdk/go-sciter
-
Run the example and enjoy :)
Currently supports Sciter version 4.0.0.0
and higher.
Sciter is an Embeddable HTML/CSS/script engine for modern UI development, Web designers, and developers, can reuse their experience and expertise in creating modern looking desktop applications.
In my opinion, Sciter , though not open sourced, is an great desktop UI development envrionment using the full stack of web technologies, which is rather small (under 5MB) especially compared to CEF,Node Webkit and Atom Electron. :)
Finally, according to Andrew Fedoniouk the author and the Sciter
END USER LICENSE AGREEMENT
, the binary form of the Sciter
dynamic libraries are totally free to use for commercial or
non-commercial applications.
This binding ueses a tailored version of the sciter C Headers, which lives in directory: include
. The included c headers are a modified version of the
sciter-sdk standard headers.
It seems Sciter is developed using C++, and the included headers in the Sciter SDK are a mixture of C and C++, which is not quite suitable for an easy golang binding.
I'm not much fond of C++ since I started to use Golang, so I made this modification and hope Andrew Fedoniouk the author would provide pure C header files for Sciter. :)