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

Run cgi / interpreted script files that supports command line execution, or connect to cgi / other server proxies : npm install cgijs --save

License

NotificationsYou must be signed in to change notification settings

cgi-js/cgi-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CGIJS is a all featured library to run anyCGI mode /Interpreted language script files, or connect to any web application server proxies, or manage processes in the system.

CGIJS library:

  • Supports running anyCGI /Interpreted Language scripts using the nodejs process module inany OS that runsnode.js. Needs the language interpretor to be installed in the system
  • [TODO] Supports running anyCGI /Interpreted Language scripts using interpreters library module inany OS that runsnode.js. Do not need the language interpretor to be installed in the system
  • Supports bothCGI executables as well asproxy tolocalhost/remote /embedded servers using proxying of multiple protocols (http,websockets,tcp,udp,socks,ssh,ftp).
  • Supports managing processes likeembeddedserver executables, embeddeddatabase executables, orany other embedded/ non-embedded executables
  • Supports working withshell,json,ini,csv,yaml, andxml internally

[Funding Invited]

General Note: The library is production ready. However, please be cautious of processes/executables permissions/security in your project using CGIJS

History

CGIJS was created with a motivation to allow creation of aDesktop executable/ application usingElectron that can run anyCGI /Interpreted language scripted files/ applications under the hood.

Desktop CGI

Installation

npm install cgijs --save

If you wish to run interpreted languages likephp,perl,python,micropython,cpython,ruby,julia,cpp,golang,ocaml,lua,napi,wasm-run,r-lang,openssl withwasm files without having the language's binary present/ installed in your system then use the following package.

npm install bridge-wasm --save

Features

Light weight, Flexible, Generic implementation. CGIJS is NodejsFramework Independent / agnostic for application development.

There are three main modules inside CGIJS -file for CGI file execution,proxy for running proxies, andprocess for managing processes.

SECURITY NOTE:

  • The process shell module is security agnostic and is dependant on your code.
    • The package accesses the shell to run script executables using the node.js process module. Please consider yoursecurity risks based on your executable's/ script's security risks.
  • The proxy module is security agnostic and is dependant on your code and proxy's security.
    • Thepackage has a LAN or WAN network proxy module AND does not create any proxies by its own - unless specified by you. Please consider your custom created proxy's security risks.
  • Thepackage does not use Telemetry, nor Collect data Remotely, nor has Telemetry/Remote based Error collection on its own.
    • The package propogates errors for you to handle or collect errors/ data.

Library Features

Node CGI Embedded - run interpreted scripts that support cgi using nodejs
  • CGI file execution
    • Run any scripts that support CGI based serving/execution
    • Run multiple CGI executables/ Interpreters in one or multiple applications
    • Embed your own CGI/ Interpreted Language executables
    • Runs scripts with language interpretor binary (like php, python, ruby, etc) in your system
    • Runs scripts without language interpretor binary (like php, python, ruby, etc) in your system using their wasm packages
Node Web Proxy - run web proxies
  • Running Proxies
    • Run any host that serves a web app, using proxy
    • Run proxies for Application (Local / Remote)
    • Supports websocket implementation in web proxies
    • Run multiple protocol proxies (HTTP, UDP, TCP, Websockets, Socks) and multiple instances in one or multiple applications
Node Processes - Manage web servers, database processes, or other system processes or services
  • Manage Processes or Services
    • Allows running and closing process Executables
    • Allows managing Embedding Web Servers, which can run web applications through proxies[Todo] Testing for some embeddable servers
    • Allows managing Embedded Database servers[Todo] Testing for some embeddable servers
    • Should run smoothly with Unsupported proxy servers/ processes/ services (not widely tested)
  • Embedding
    • Multiple web servers in one or multiple applications
    • Multiple databases in one or multiple applications

Functionality Details

The script should support piping all files of below interpreted languages:
  • Python (2.x, 3.x) -py (for Python .py extension files. Needed for *nix systems)
  • Perl (Version Independent) -plc,pld,pl (for Perl .pl, .plc, .pld extension files)
  • PHP (Version Independent) -php (for .php extension files)
  • Ruby (Version Independent) -rb (for Ruby .rb extension files)
  • Node.js (Version Independent) -js (for Node.js .js extension files)
  • CGI -cgi (for CGI .cgi extension files) [Todo Testing]
The script should support piping all proxies of above languages and following:
  • Jsp (With Tomcat, or any webserver as proxy)
  • Aspx (With IIS, Apache, or any webserver as proxy)
  • [] Jsp (With Tomcat embedded)[Todo]
  • [] Aspx (With Nginx and Apache embedded)[Todo]
The script currently allows working with (starting, stopping, restarting using bash, bat scripts) following web servers:
  • IIS[Done]
  • Nginx[Done]
  • Apache HTTPD[Done]
  • Apache TomCat[Done]
  • Nginx (Allows Embed)[Done]
  • Apache HTTPD (Allows Embed)[Done]
  • Apache TomCat (Allows Embed) [Todo - Testing],should work based on current testing of other proxies
  • Mongoose [Todo - Testing],should work based on current testing of other proxies
  • Jetty [Todo - Testing],should work based on current testing of other proxies
  • Putty [Todo - Testing],should work based on current testing of other proxies
  • [] Mongoose (Allows Embed) [Todo - Testing]
  • [] Jetty (Allows Embed) [Todo - Testing]
  • Putty (Allows Embed) [Todo - Testing]
  • PHP development server usingphp -S
  • Ruby development server usingrails server [Todo - Testing]
  • Python development server usingpy -m http.server
  • [] Other Proxy-able local/remote servers [InProgress]
The script currently allows working with (starting, stopping, restarting proxies) following web servers:
  • IIS[Done]
  • Nginx[Done]
  • Apache HTTPD[Done]
  • Apache TomCat[Done]
  • Nginx (Allows Embed)[Done]
  • Apache HTTPD (Allows Embed)[Done]
  • Apache TomCat (Allows Embed) [Todo - Testing],should work based on current testing of other proxies
  • Mongoose [Todo - Testing],should work based on current testing of other proxies
  • Jetty [Todo - Testing],should work based on current testing of other proxies
  • Putty [Todo - Testing],should work based on current testing of other proxies
  • [] Mongoose (Allows Embed) [Todo - Testing]
  • [] Jetty (Allows Embed) [Todo - Testing]
  • Putty (Allows Embed) [Todo - Testing]
  • PHP development server usingphp -S
  • Ruby development server usingrails server [Todo - Testing]
  • Python development server usingpy -m http.server
  • [] Other Proxy-able local/remote servers [InProgress]
The script currently allows working with (starting, stopping, restarting) following web servers:
  • IIS[Done]
  • Nginx[Done]
  • Apache HTTPD[Done]
  • Apache TomCat[Done]
  • Nginx[Done]
  • Apache HTTPD[Done]
  • Apache TomCat [Todo - Testing],should work based on current testing of other proxies
  • Mongoose [Todo - Testing],should work based on current testing of other proxies
  • Jetty [Todo - Testing],should work based on current testing of other proxies
  • Putty [Todo - Testing],should work based on current testing of other proxies
  • [] Mongoose (Allows Embed) [Todo - Testing]
  • [] Jetty (Allows Embed) [Todo - Testing]
  • Putty (Allows Embed) [Todo - Testing]
  • PHP development server usingphp -S
  • Ruby development server usingrails server [Todo - Testing]
  • Python development server usingpy -m http.server
  • [] Other Proxy-able local/remote servers [InProgress]
The script currently allows working with (starting, stopping, restarting) following databases and processes:
  • Mysql[Done]
  • MongoDB[Done]
  • [] PgSQL[Todo]
  • [] Redis[Todo]
  • bash, bat, ps scripts[Done]
  • Other Processes for your application support
Note:

This library is in active development. Issues, and feedbacks as github ticket are welcome.

Package Dependencies:
  • Environment and Library dependencies:

  • Extra needed dependencies to use language interpretors and libraries forphp,perl,python,micropython,cpython,ruby,julia,cpp,golang,ocaml,lua,napi,wasm-run,r-lang,openssl withwasm files without having to install (or have) binaries in your system

    • bridge-wasm for running interpreted languages with wasm without having the binary in your system (installed/ present).
  • Application Dependencies:

    • Your app, you decide
    • Example/Demo has "express": "^4.17.1"
    • Alternatively, Use any other Nodejs framework you want to use for your app
Usage Demo:

This project contains example that demonstrates working with ExpressJS.

  • The demos for runing CGI/Interpreted scripts with node.js and express applications can be found in the folderdemo app.
  • The demos for individual implementation of file, process, proxy, and utils modules can be found in the folderdemo usage [todo]
Use case:

cgijs library has been created to address following use cases:

  • working with CGI / interpreted languages fromany Node.js app framework
  • using any CGI / interpreted languages apps with electron as demonstrated in functioningdesktop-cgi app

Technical Specifications

... * Wiki links to be added

Wiki

  • Getting started
    • Quick demo - CGI mode executable files
    • Quick demo - proxying to proxies/servers
    • Quick demo - proxying to proxy's websocket
    • Quick demo - proxying to udp, socks, http to socks proxy's websocket
  • Run CGI files using process module and binaries in the system
    • PHP (.php)
    • Perl (Perl any versions - .plc, .pld, .pl)
    • Python (Python2, Python3 - .py)
    • Ruby (.rb)
    • Node.js (.js)
  • Run CGI files using cgi-jswasm` module
    • PHP (.php)
    • Perl (Perl any versions - .plc, .pld, .pl)
    • Python (Python2, Python3 - .py)
    • Ruby (.rb)
    • Lua (.)
    • Rust (.)
    • GoLang (.go)
    • CPython (.py)
    • Julia (.)
    • R-Lang (.)
  • Run Proxy servers to connect to:
    • Any Local http/https/websocket Servers
    • Any Remote http/https/websocket Servers
    • Embedded Apache httpd, Apache tomcat, Nginx (http/https/websocket)
    • Embedded Mongoose http server (http/https)
  • Manage Embedded Servers (for desktop-cgi use case):
    • Embedded Apache httpd (http/https/websocket)
    • Embedded Apache tomcat (http/https/websocket)
    • Embedded Mongoose http server (http/https)
    • Embedded Nginx (http/https/websocket)
    • PHP inbuilt web development servers
    • Ruby inbuilt web development servers
    • Python inbuilt web development servers
  • Manage Embedded Database Servers (for desktop-cgi use case):
    • Embedded Mysql
    • Embedded MongoDB
    • Embedded PgSQL
    • Working with SQLite
  • Manage Processes (for desktop-cgi use case):
    • Other Processes or executable workings
  • Run and Manage embedded or non-embedded executables / processes on need for application
  • Working with config.json file for simpler implementation in apps

Current Status

  • In development [Testing for Desktop-CGI use case]
  • In development [Testing for language based development server]

Todo

Check.todo file for latest TODO list

License

The MIT License (MIT) - SeeLICENSE for further details

Copyright © 2019 - till library works:Ganesh Bdesktopcgi@gmail.com

Please support the development in github repository through

- feature needs reporting,- testing,- issue reporting,- contribution

Please use thesestyles for contributions

About

Run cgi / interpreted script files that supports command line execution, or connect to cgi / other server proxies : npm install cgijs --save

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

    Packages

    No packages published

    Contributors2

    •  
    •  

    [8]ページ先頭

    ©2009-2025 Movatter.jp