- Notifications
You must be signed in to change notification settings - Fork0
Desktop-CGI Application Tooling/Framework for Hybrid Desktop Applications. Desktop-CGI is a desktop executable tool that is created using electron, nodejs based server that serves - CGI files, embedded webserver served CGI apps (PHP, Ruby, Python, Perl, CGI, JSP, ASPX, Other Interpreted Languages), or remote proxy webserver apps (any)
License
desktop-cgi/desktop-cgi
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Desktop-CGI is a desktop executable app that can be created from any CGI files or CGI web apps that can be served from an file, an embedded web server using proxy, or an remote proxy web server. It supports embedding and managing embeddable databases and executables. It supports all major Operating systems supported by electron like Windows, Linux, and MacOS supported by Electron.
[Funding Invited]
[Team and Community Managers Invited]
Desktop-CGI can serve any CGI files, OR CGI / Scripted / Interpreted languages likePHP,Ruby,Python,Perl,JSP,ASPX,Other Interpreted Languages throughembedded webservers (along withembedded databases orembedded executables), OR anyremote proxy (any protocol / webserver) apps using thecgifiles,processes, and theproxy modules respectively.
Desktop-CGI runs an Electron - Node - Express based application under the hood and supports major Operating systems like Windows, Linux, Mac or any operating systems supported by Electron.
- Generate the
executable using shell scripts- Download and Install Dependencies using
shellscripts - Run the
setup.batorsetup.ps1in Windows orsetup.shin linux/ mac to download dependencies and set up the repository- Following steps are run when the setup shell command is run
- Install
node.jsfromhttps://www.nodejs.org. - (A)
Golangforwailsbased, (B)Rustfortauribased, and (C)nodejsandelectronforelectronbased - Other dependencies
- Forbase-electron: Installdependencies
- Forbase-wails: Install GoLang anddependencies
- Forbase-tauri: Installdependencies
- Clone theGit repository (Alternatively, download the git repository)
- Change to the git repository directory / folder
cd path/to/desktop-cgifrom command line / shell / powershell - Setup the repository for creation of executables with all needed dependencies
- Install
- Following steps are run when the setup shell command is run
- Run the
genexe.bat(win) orgenexe.sh(linux/ mac) with its arguments as needed forwww,configfolder andother argumentsto generate the executable as needed
- Download and Install Dependencies using
- Generate the
executable using docker command- Run the
dockerrun command with its arguments as needed forwww,configfolder andother argumentsto generate the executable as needed
- Run the
The Desktop-CGI based executable can be created usingelectron,wails (todo), andtauri (todo) and your own web application made from any web scripting language of your choice.
- [P] Multiple Executable Build/ Generation formats
- [P] Electron
- [T] Wails
- [T] Tauri
- [P] Multiple Languages Support for Hybrid Apps
- [D] PHP
- [D] Nodejs
- [D] JSP
- [D] ASPX
- [D] Ruby
- [D] Perl
- [P] Binary Executable based web apps
- [P] Java
- [P] GoLang
- [P] Multiple Modes
- [D] File Access/ Execution
- [D] Proxy for Web App
- [P] Web Server
- [P] Direct Access
- [P] Proxy Access
- [P] Multiple Bases
- [P] Nodejs - Express
- [T] Nodejs - Extendible Other frameworks
- [P] Multiple (Embedded: E) Server Options
- [D] Remote Server (using proxy)
- [P] (E) Nginx
- [P] (E) Apache
- [P] (E) Mongoose
- [P] (E) Putty
- [P] (E) Tomcat
- [T] (E) Nodejs Server
- [T] (E) Loadbalanced Nodejs Server
- [P] Multiple (Embedded: E) Database Options
- [P] (E) SQLite
- [P] (E) MySQL
- [P] (E) Maria DB
- [P] (E) Postgres
- [P] (E) MongoDB
- [P] (E) Redis
- [P] (E) Others (Extendable)
- [P] Multiple Embedding Options
- [P] Any (E) executable
- [P] Binary Executable based web apps
- [P] Java
- [P] GoLang
The functionality details are as follows:
- You should be able to run all files created from
php,aspx,jsp,nodejs,python,ruby,perlor other scripting languages of your choice using thecgifilesdefinition section of the config file. - You should also be able to run and manage other executable binaries like
web server,message queuesordatabasesfor any of your requirements using theprocessesdefinition section of the config file. - It pipes web applications created from
php,aspx,jsp,nodejs,python,ruby,perlor other scripting languages of your choice using a embedded web server of your choice using theprocessesdefinition section of the config file. - If your web application is a binary executable that serves an entire web application and web server on its own like
golang,c++/c, or ajavabased executable the Desktop-CGI can manage this as an embedded binary using theprocessesand theproxiesdefinition sections of the config file. - Creation of an
electronorwailsbased executable can be as simple as creating yourconfig.jsonfile, specifying thewww,binariesresources folder, and running thegenexescript ordockercommand.
Desktop-CGI application runs a CGIJS based CGI serving Server whether using aElecton,Wails,Tauri based base
- Desktop-CGI uses any nodejs framework along with
cgijsto serve anyCGIfile,web apps,local/remoteproxiesto create a native-like desktop executable. cgijsis Nodejs package which is framework independent / agnostic for serving CGI or interpreted scripting apps via files, or server based web apps via proxies.ExpressRecommended and used for demo.- Any other Nodejs framework like
koa,fastify, etc can be used to create similarcgijsbased applications.cgijsis frameworkindependentandagnostic.
- Allows running
any interpreted script filesthat supports CGI based file script serving - usingcgijs filemodule - Allows running
any hostthat serves aweb app- usingcgijs proxymodule- In App / Local / Remote proxy support
- Allows
embedding serverslikehttpd,nginx, etc to serve web applications - usingcgijs processmodule - Allows
embedding database servers(in development) - usingcgijs processmodule - Allows
embedding executables(in development) - usingcgijs processmodule - Allows
- running multiple language interpreters in one app
- running multiple proxies (currently
http,websockets. Other protocols liketcp,udp,grpc,socketsplanned) in one app - managing multiple embedded (http) servers in one app
- managing multiple embedded executables in one app
- Python (2.x, 3.x)
- Perl (Version Independent)
- PHP (Version Independent)
- Ruby (Version Independent)
- Jsp (With Tomcat embedded)
- Aspx (Version Independent - With local IIS proxy, Apache embedded)
- Any app using local / remote proxy (currently http, websockets. tcp, udp, grpc, socket planned)
- Apache HTTPD (Allows Embed & Proxy)
- Apache TomCat (Allows Embed & Proxy)
- Nginx (Allows Embed & Proxy)
- Mongoose http server (Allows Embed & Proxy)
The script can proxy to any File, most embeddable web servers, and/ or Proxy-able local / remote servers; even IIS Server (Allows Proxy)
Library dependencies:
- Nodejs: (> 8.x)
Application Dependencies:
- cgi-js: (>=1.1.0)
- electron": (>=18.1.0)
- relevant compiling packages
Application Demo Dependencies:
- body-parser: (>=1.20.0)
- ejs: (>=3.1.7)
- express: (>=4.18.0)
- fsevents: (>=2.3.2)
- socket.io: (>=4.5.0)
- ws: (>=8.5.0)
... * Technical specifications to be added
... * Wiki link to be added
In active developmentYou can track development status heredesktop-cgi/projects
Facebook,Quora,Github Discussion
Raise an Issue or Contribute. Active Contributors are invited.
Check file -.todo
Electron Application Distribution
Wails Application Distribution
Tauri Application Distribution
The MIT License (MIT) - SeeLICENSE for further details
Copyright © 2019 - till library works:Ganesh Bdesktopcgi@gmail.com
The project is intended to be maintained seriously.
About
Desktop-CGI Application Tooling/Framework for Hybrid Desktop Applications. Desktop-CGI is a desktop executable tool that is created using electron, nodejs based server that serves - CGI files, embedded webserver served CGI apps (PHP, Ruby, Python, Perl, CGI, JSP, ASPX, Other Interpreted Languages), or remote proxy webserver apps (any)
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
