Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

NotificationsYou must be signed in to change notification settings

desktop-cgi/desktop-cgi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Highlights

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.

Setup Desktop-CGI [IN DEVELOPMENT]

  • Generate theexecutable using shell scripts
    • Download and Install Dependencies usingshell scripts
    • Run thesetup.bat orsetup.ps1 in Windows orsetup.sh in linux/ mac to download dependencies and set up the repository
      • Following steps are run when the setup shell command is run
    • Run thegenexe.bat (win) orgenexe.sh (linux/ mac) with its arguments as needed forwww,config folder andother arguments to generate the executable as needed
  • Generate theexecutable using docker command
    • Run thedocker run command with its arguments as needed forwww,config folder andother arguments to generate the executable as needed

Functionality Details

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.

Functionality Progress

  • [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 fromphp,aspx,jsp,nodejs,python,ruby,perl or other scripting languages of your choice using thecgifiles definition section of the config file.
  • You should also be able to run and manage other executable binaries likeweb server,message queues ordatabases for any of your requirements using theprocesses definition section of the config file.
  • It pipes web applications created fromphp,aspx,jsp,nodejs,python,ruby,perl or other scripting languages of your choice using a embedded web server of your choice using theprocesses definition 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 likegolang,c++/c, or ajava based executable the Desktop-CGI can manage this as an embedded binary using theprocesses and theproxies definition sections of the config file.
  • Creation of anelectron orwails based executable can be as simple as creating yourconfig.json file, specifying thewww,binaries resources folder, and running thegenexe script ordocker command.
Desktop-CGI application runs a CGIJS based CGI serving Server whether using aElecton,Wails,Tauri based base
  • Desktop-CGI uses any nodejs framework along withcgijs to serve anyCGI file,web apps,local/remoteproxies to create a native-like desktop executable.
  • cgijs is Nodejs package which is framework independent / agnostic for serving CGI or interpreted scripting apps via files, or server based web apps via proxies.
    • Express Recommended and used for demo.
    • Any other Nodejs framework likekoa,fastify, etc can be used to create similarcgijs based applications.cgijs is frameworkindependent andagnostic.
  • Allows runningany interpreted script files that supports CGI based file script serving - usingcgijs file module
  • Allows runningany host that serves aweb app - usingcgijs proxy module
    • In App / Local / Remote proxy support
  • Allowsembedding servers likehttpd,nginx, etc to serve web applications - usingcgijs process module
  • Allowsembedding database servers (in development) - usingcgijs process module
  • Allowsembedding executables (in development) - usingcgijs process module
  • Allows
    • running multiple language interpreters in one app
    • running multiple proxies (currentlyhttp,websockets. Other protocols liketcp,udp,grpc,sockets planned) in one app
    • managing multiple embedded (http) servers in one app
    • managing multiple embedded executables in one app
The script should pipe all interpreted language files below
  • Python (2.x, 3.x)
  • Perl (Version Independent)
  • PHP (Version Independent)
  • Ruby (Version Independent)
The script will pipe all proxies of above languages and following (to be tested)
  • 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)
The script should currently allow embedding following servers for proxy [TODO: In Development]
  • 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)

Note

Electron Base Package Dependencies

  • 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

... * Technical specifications to be added

Wiki

... * Wiki link to be added

Status

In active development

You can track development status heredesktop-cgi/projects

Open Unmoderated Communities

Facebook,Quora,Github Discussion

Issues and Contributions

Raise an Issue or Contribute. Active Contributors are invited.

Todo

Check file -.todo

References

Electron Application Distribution

Wails Application Distribution

Tauri Application Distribution

License

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

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp