cgijs
CGIJS est une bibliothèque en vedette pour exécuter n'importe quel mode CGI / fichiers Interpreted language script , ou se connecter à des proxys de serveur d'applications Web, ou gérer les processus dans le système.
Bibliothèque CGIJS :
- Prend en charge l'exécution de tous les scripts de langue
CGI / Interpreted Language scripts à l'aide du module de processus NodeJS dans any OS qui exécute node.js A besoin d'interpréteur de langue à installer dans le système - [TODO] prend en charge l'exécution de tous les scripts de langue
CGI / Interpreted Language scripts à l'aide du module de bibliothèque d'interprètes dans any OS qui exécute node.js Je n'ai pas besoin de l'interpréteur de langue pour être installé dans le système - Prend en charge les deux exécutables
CGI ainsi que proxy aux embedded servers localhost / remote / intégrés en utilisant le proxyage de plusieurs protocoles ( http , websockets , tcp , udp , socks , ssh , ftp ). - Prend en charge la gestion de processus tels que les exécutables
server embedded , les exécutables database embarqués ou any other exécutables intégrés / non placés - Prend en charge le travail avec
shell , json , ini , csv , yaml et xml en interne
[Funding Invited]
Remarque générale: La bibliothèque est prête à la production. Cependant, veuillez être prudent des processus / autorisations / sécurité des exécutables dans votre projet en utilisant CGIJS
Histoire
CGIJS a été créé avec une motivation pour permettre la création d'un Desktop executable/ application à l'aide Electron qui peut exécuter n'importe quel CGI / Interpreted language scripted files/ applications sous le capot.

Installation
Si vous souhaitez exécuter des langues interprétées comme php , perl , python , micropython , cpython , ruby , julia , cpp , golang , ocaml , lua , napi , wasm-run , r-lang , openssl avec wasm files sans avoir le présent / installé binaire du langage dans votre système puis utilisez le package suivant.
npm install bridge-wasm --save
Caractéristiques
Implémentation légère, flexible et générique. CGIJS est NodeJS Framework Independent / agnostic pour le développement d'applications.
Il existe trois modules principaux dans CGIJS - file pour l'exécution du fichier CGI, proxy pour exécuter des proxys et process de gestion des processus.
Remarque de sécurité :
- Le module de shell de processus est agnostique de sécurité et dépend de votre code.
- Le package accède au shell pour exécuter des exécutables de script à l'aide du module de processus Node.js. Veuillez considérer vos
security risks based on your executable's/ script's security risks .
- Le module proxy est l'agnostique de sécurité et dépend de votre code et de la sécurité de votre proxy.
- Le
package has a LAN or WAN network proxy module AND does not create any proxies par lui-même - sauf si vous avez spécifié par vous. Veuillez considérer les risques de sécurité de votre proxy créés sur mesure.
- Le
package does not use Telemetry, nor Collect data Remotely, nor has Telemetry/Remote based Error collection en soi.- Le package propose des erreurs pour que vous puissiez gérer ou collecter des erreurs / données.
Caractéristiques de la bibliothèque
Node CGI Embedded - Exécuter les scripts interprétés qui prennent en charge CGI à l'aide de Nodejs
Node Web Proxy - Exécutez des proxies Web
Processus de nœud - Gérer les serveurs Web, les processus de base de données ou d'autres processus ou services système
Détails de la fonctionnalité
Le script doit prendre en charge la tuyauterie de tous les fichiers des langues interprétées ci-dessous:
Le script doit prendre en charge la tuyauterie de tous les indicateurs des langues ci-dessus et les suivants:
Le script permet actuellement de travailler avec (démarrage, arrêt, redémarrage à l'aide de bash, scripts de chauve-souris) suivant les serveurs Web:
Le script permet actuellement de travailler avec (démarrage, arrêt, redémarrage des proxys) suivant les serveurs Web:
Le script permet actuellement de travailler avec (démarrage, arrêt, redémarrage) suivant les serveurs Web:
Le script permet actuellement de travailler avec (démarrage, arrêt, redémarrage) suivant les bases de données et les processus:
Note:
Cette bibliothèque est en développement actif. Les problèmes et les commentaires en tant que billet GitHub sont les bienvenus.
Dépendances des packages:
Dépendances de l'environnement et de la bibliothèque:
- Nodejs: (> 8.x),
- http-proxy pour la prise en charge http-proxy,
- Chaussettes pour le soutien aux chaussettes,
- UDP-Proxy pour le support UDP,
- SSH2 pour le support SSH2, SSH, FTP, SFTP,
- socket-proxy pour proxy de socket,
- http-proxy-to-socks for http to socks proxy,
- CSV pour l'analyseur de fichiers,
- XML-JS pour l'analyseur de fichiers XML,
- YAML pour l'analyseur de fichiers YAML,
- INI pour l'analyseur de fichiers INI,
- Dotenv pour l'analyseur de fichiers Dotenv,
- shelljs pour le support avec shell
- concurrency.js pour le support de concurrence et de parallélisation pour les threads et les processus
Dépendances supplémentaires nécessaires pour utiliser les interprétateurs et les bibliothèques du langage pour php , perl , python , micropython , cpython , ruby , julia , cpp , golang , ocaml , lua , napi , wasm-run , r-lang , openssl avec wasm files sans avoir à installer (ou à avoir) des binaires dans votre système
- Bridge-WASM pour la course à l'exécution des langues interprétées avec WASM sans avoir le binaire dans votre système (installé / présent).
Dépendances des applications:
- Votre application, vous décidez
- Exemple / Demo a "Express": "^ 4.17.1"
- Alternativement, utilisez tout autre cadre NodeJS que vous souhaitez utiliser pour votre application
Demo d'utilisation:
Ce projet contient un exemple qui démontre le travail avec ExpressJS.
- Les démos de exécution des scripts CGI / interprétées avec Node.js et des applications Express peuvent être trouvées dans l'application de démonstration du dossier.
- Les démos pour l'implémentation individuelle des modules de fichier, de processus, de proxy et d'utilisation peuvent être trouvées dans l'utilisation de la démonstration du dossier [TODO]
Cas d'utilisation:
La bibliothèque CGIJS a été créée pour aborder les cas d'utilisation suivants:
- Travailler avec CGI / Langues interprétées à partir de
any cadre d'application Node.js - Utilisation de toutes les applications CGI / Languages interprétées avec électron comme démontré dans l'application de bureau de bureau-CGI
Spécifications techniques
... * liens wiki à ajouter
Wiki
- Commencer
- Demo rapide - Fichiers exécutables en mode CGI
- Demo rapide - proxing aux proxies / serveurs
- Démo rapide - proxing à proxy websocket
- Demo rapide - Proxing à UDP, chaussettes, HTTP à Socks Proxy's WebSocket
- Exécutez des fichiers CGI à l'aide du module de processus et des binaires dans le système
- Php (.php)
- Perl (perl toutes les versions - .plc, .pld, .pl)
- Python (python2, python3 - .py)
- Ruby (.rb)
- Node.js (.js)
- Exécutez des fichiers CGI à l'aide de CGI-JS
module wasm`- Php (.php)
- Perl (perl toutes les versions - .plc, .pld, .pl)
- Python (python2, python3 - .py)
- Ruby (.rb)
- Lua (.)
- Rouiller (.)
- Golang (.go)
- Cpython (.py)
- Julia (.)
- R-lang (.)
- Exécutez des serveurs proxy pour se connecter à:
- Tous les serveurs HTTP / HTTPS / WebSocket locaux
- Tous les serveurs HTTP / HTTPS / WebSocket distants
- Apache embarqué httpd, apache tomcat, nginx (http / https / WebSocket)
- Serveur HTTP Mongoose Embedded (HTTP / HTTPS)
- Gérer les serveurs intégrés (pour le cas d'utilisation de bureau-CGI):
- Apache embarqué httpd (http / https / WebSocket)
- Apache intégré Tomcat (HTTP / HTTPS / WebSocket)
- Serveur HTTP Mongoose Embedded (HTTP / HTTPS)
- Nginx intégré (http / https / WebSocket)
- Serveurs de développement Web intégrés PHP intégrés
- Serveurs de développement Web Ruby intégrés
- Serveurs de développement Web intégrés Python intégrés
- Gérer les serveurs de base de données intégrés (pour le cas d'utilisation de bureau-CGI):
- MySQL intégré
- MongoDB intégré
- Pgsql intégré
- Travailler avec SQLite
- Gérer les processus (pour le cas d'utilisation de bureau-CGI):
- Autres processus ou fonctionnement exécutable
- Exécuter et gérer des exécutables / processus intégrés ou non placés sur le besoin d'application
- Travailler avec le fichier config.json pour une implémentation plus simple dans les applications
État actuel
- En développement [test pour le cas d'utilisation de bureau-CGI]
- En développement [Testing for Language Basé Development Server]
Faire
Vérifiez le fichier .todo pour la dernière liste de TODO
Licence
La licence MIT (MIT) - Voir Licence pour plus de détails
Copyright © 2019 - Jusqu'à ce que la bibliothèque fonctionne: Ganesh B [email protected]
Veuillez soutenir le développement dans le référentiel GitHub via
- feature needs reporting,
- testing,
- issue reporting,
- contribution
Veuillez utiliser ces styles pour les contributions