URL: <https://savannah.nongnu.org/task/?16050>
Summary: Submission of the Quirk browser Project: Savannah Administration Submitted by: zamfofex Submitted on: Wed 29 Sep 2021 04:14:06 AM UTC Should Start On: Wed 29 Sep 2021 12:00:00 AM UTC Should be Finished on: Sat 09 Oct 2021 12:00:00 AM UTC Category: Project Approval Priority: 5 - Normal Status: None Privacy: Public Percent Complete: 0% Assigned to: None Open/Closed: Open Discussion Lock: Any Effort: 0.00 _______________________________________________________ Details: A new project has been registered at Savannah This project account will remain inactive until a site admin approves or discards the registration. = Registration Administration = While this item will be useful to track the registration process, *approving or discarding the registration must be done using the specific Group Administration <https://savannah.nongnu.org/siteadmin/groupedit.php?group_id=12196> page*, accessible only to site administrators, effectively *logged as site administrators* (superuser): * Group Administration <https://savannah.nongnu.org/siteadmin/groupedit.php?group_id=12196> = Registration Details = * Name: *the Quirk browser* * System Name: *quirk* * Type: non-GNU software and documentation * License: GNU General Public License v3 or later (The ‘layout.txt’ file is meant to be available under the FAL/LAL (“Free Art License”) rather than the GPL. See: https://artlibre.org It has been under this license since I first wrote it, and I’m unsure about whether it would make sense to change it. Thoughts about what to do would be appreciated! - - - JSDOM and other dependencies from NPM are not released under a GPL-compatible license, most are released under MIT and other similar permissive licenses. The build process for the project discourages people from distributing those dependencies alongside the project binaries by creating a shared library for them, rather than linking them statically with the executable.) ---- == Description: == Quirk is a browser based on JSDOM. The hope is to be able to leverage existent work put into JSDOM to create a full working browser. The biggest missing part being rendering. JSDOM is an implementation of the DOM (which are the APIs provided to JavaScript by browsers), itself written in JavaScript. JSDOM was created with Node in mind, but Quirk uses QuickJS as its JavaScript engine. Thus, Quirk also needs to provide the API of Node libraries for JSDOM to work. The Node APIs are provided using a mixture of: (1) existent NPM libraries, and (2) code written specifically for Quirk, to interface with QuickJS and cURL. Quirk is written in a mixture of C and JavaScript. The parts written in JavaScript are reduced to interfacing JavaScript with C. I believe it makes sense to write APIs targetting JavaScript usage in JavaScript itself, rather than in C. Currently, Quirk only has a simple TUI display, but the hope is to also provide a GUI using Cairo at some point. Some brief discussion about the current status of Quirk can be found in its readme in the attached tarball. == Other Software Required: == - cURL (uses its own license, derived from MIT) https://curl.se - QuickJS (MIT license) https://bellard.org/quickjs/ - Node.js (MIT license) https://nodejs.org - NPM (Artistic License 2.0) https://npmjs.com - JSPM generator (MIT license) https://jspm.org https://github.com/jspm/generator Node.js, NPM, and the JSPM generator are build-only dependencies, used to fetch NPM dependencies through JSPM. At runtime, Quirk uses QuickJS to run those JavaScript dependencies. There are other dependencies too. Those include indirect dependencies of JSDOM, and also other NPM libraries used to allow JSDOM to work with QuickJS. == Other Comments: == The license header in each files was shortened for terseness. I believe that they are sufficient, but if this is unacceptable, I wouldn’t mind including the longer versions. I prefer to avoid using my real name online, so the copyright notices use my pseudonym instead (“zamfofex”). I don’t mind mentioning my full real name in the readme if it is deemed necessary, but I’d rather avoid including it in each source file if possible. The default URL used when no URL is passed to the command is https://cricket.piapiac.org/software/ which is my friend’s webpage. == Tarball URL: == https://zamfofex.neocities.org/quirk.tar.gz _______________________________________________________ Reply to this item at: <https://savannah.nongnu.org/task/?16050> _______________________________________________ Message sent via Savannah https://savannah.nongnu.org/