{"id":20964566,"url":"https://github.com/sciter-sdk/quark","last_synced_at":"2025-12-24T18:40:51.577Z","repository":{"id":75774014,"uuid":"267131949","full_name":"sciter-sdk/quark","owner":"sciter-sdk","description":"Sciter Application Packager","archived":false,"fork":false,"pushed_at":"2020-05-31T18:33:57.000Z","size":2686,"stargazers_count":13,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-20T01:44:22.648Z","etag":null,"topics":["sciter"],"latest_commit_sha":null,"homepage":"https://quark.sciter.com","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sciter-sdk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-26T19:21:10.000Z","updated_at":"2024-08-27T19:11:16.000Z","dependencies_parsed_at":"2023-06-07T16:27:32.387Z","dependency_job_id":null,"html_url":"https://github.com/sciter-sdk/quark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sciter-sdk%2Fquark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sciter-sdk%2Fquark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sciter-sdk%2Fquark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sciter-sdk%2Fquark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sciter-sdk","download_url":"https://codeload.github.com/sciter-sdk/quark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243360651,"owners_count":20278413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sciter"],"created_at":"2024-11-19T02:56:07.559Z","updated_at":"2025-12-24T18:40:51.549Z","avatar_url":"https://github.com/sciter-sdk.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# quark\n\nQuark takes a folder with HTML/CSS/script/image resources and produces monolithic executable ready to run “as it is”:\n\n![](http://quark.sciter.com/wp-content/uploads/2020/05/schema.png)\n\n[Quark is an application compiled by itself.](http://quark.sciter.com/wp-content/uploads/2020/05/quark-ui.png)\n\nApplication produced by the Quark is a bundle that contains Sciter Engine and custom resources that describe UI and logic of the application. Therefore minimal size of resulting binary is **5+ mb** (not compressed) that is comparable with minimal “hello world” applications using other popular UI libraries and frameworks:\n\n* Qt – 5+ mb, but if your application needs to render HTML (QtWebKit) then the size will be around 30mb;\n* Electron – 50+ mb folder with a lot of stuff inside, 200+ mb (at least) of RAM and 2 processes (at least);\n* wxWidgets (linked statically) 3+ mb at least.\n\n## Sciter Engine Runtime\n\nSo what is inside of those 5mb? What functionality is available out of the box?\n\n* \n  * **Graphics**:  GPU Accelerated Graphic backends (DirectX, OpenGL) on all platforms. Supports as retained as immediate (a la ImGUI) rendering  modes.\n  * **HTML**: parser and DOM that supports as all HTML5 constructs as extended set of input elements including:\n    * `\u003cinclude src=\"...\" media=\"...\"\u003e` – client side includes to allow assembling HTML from multiple files;\n    * `\u003chtmlarea\u003e` – native implementation of HTML WYSIWYG editor;\n    * `\u003cplaintext\u003e` – multiline plaintext editor with native support of syntax highlighting;\n    * `\u003cframeset\u003e` – can contain arbitrary content (not just \u003cframe\u003es) – essentially that is so called split-view available out of the box.\n    * `\u003cframe type=pager\u003e` – customizable print preview and print modules;\n    * `\u003cselect type=\"tree\"\u003e` and other practical variations of standard  HTML input elements;\n    * `\u003cpopup\u003e`, `\u003cmenu.context\u003e` and `\u003cmenu.popup\u003e` – elements – out-of-canvas DOM element rendering;\n    * extra HTML attributes to support desktop UI cases including decoration of windows, dialog and message boxes.\n  * **CSS** – supports full implementation of CSS 2.1 plus some useful CSS3 modules:\n    * transitions and animations;\n    * [flexes and grids](https://terrainformatica.com/w3/flex-layout/flex-vs-flexbox.htm), with different syntax more suitable for UI though, but, still, functionality is there;\n    * CSS syntax extended by SaSS alike constructs `@const`, `@mixin`, `@set` and CSS variables.\n    * [CSS resident vector images](https://sciter.com/lightweight-inline-vector-images-in-sciter/) – no need for separate FontAwesome and similar icon fonts.\n  * **Script** –  Sciter uses its own JS derived script engine with syntax extended to better suit UI needs:\n    * extended set of types on top of 4 basic JS value types: Integer, Float, Duration, Length, Tuple and so on;\n    * real `class`es and `namespace`s, symbols;\n    * `generator`, `await`, `async` and `event` syntax constructs and promises;\n    * built-in data persistence – **NoSQL database** (a la MongoDB) integrated into the language;\n    * Sciter contains and uses **libUV** for asynchronous I/O so pretty much all functionality of NodeJS is available: file I/O, file and directory monitors, Process execution objects with stdio/stderr/stdin hooks.\n    * [Reactor and SSX](https://sciter.com/developers/sciter-docs/reactor-and-ssx/) – Sciter contains native implementation of ReactJS and JSX built-in into script compiler.\n  * [Desktop UI and **windowing**](https://sciter.com/html-window/):\n    * `view.window(html)`, `view.dialog(html)` and `view.msgbox(html)` functions – creation of native desktop windows and real modal dialogs.\n    * `view.trayIcon()` – built-in support of tray icons;\n    * `view.windowBlurbehind` – support of acrylic and behind-window blending on Windows and Macs;\n    * `view.windowFrame` – standard and custom windows frames including layered/non-rectangular windows;\n\n## Addons and native extensions\n\nIf the above functionality is not enough then Quark (Sciter’s runtime in fact) supports loading of custom modules from custom DLL’s (.dll,.dylib,.so). You can design and use:\n\n* Native script classes  and namespaces, for example SQLite can be used from plug-in dll;\n* Native custom DOM elements and input elements (a.k.a. native behaviors): DLL-resident DOM element implementations can handle events and do native painting using  [sciter::graphics API](https://github.com/c-smile/sciter-sdk/blob/master/include/sciter-x-graphics.hpp#L332) ;\n* Native DOM elements wrapping of existing HWND, NSView, GtkWidget based components\n\n## More details\n\nGo to [quark.sciter.com](https://quark.sciter.com) for mor details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsciter-sdk%2Fquark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsciter-sdk%2Fquark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsciter-sdk%2Fquark/lists"}