https://github.com/IonicaBizau/node-cobol Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} IonicaBizau / node-cobol Public * Notifications * Fork 116 * Star 669 COBOL bridge for NodeJS which allows you to run COBOL code from NodeJS. License MIT license 669 stars 116 forks Activity Star Notifications * Code * Issues 1 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights IonicaBizau/node-cobol This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 2 branches 19 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/I] Use Git or checkout with SVN using the web URL. [gh repo clone Ionica] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @IonicaBizau IonicaBizau Updated docs ... 59a9b20 May 14, 2021 Updated docs 59a9b20 Git stats * 108 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time cobol-samples Moving cobol examples in cobol-samples August 30, 2015 21:47 examples [?] 1.6.2 February 28, 2018 17:56 lib added compile args, fixed a deprecation error in the unlink call February 26, 2018 16:37 .gitignore Updated docs August 9, 2020 16:56 CONTRIBUTING.md Updated docs April 26, 2016 08:52 DOCUMENTATION.md Updated docs February 28, 2018 17:24 LICENSE Updated docs May 14, 2021 10:15 README.md Updated docs May 14, 2021 10:15 package.json Updated docs May 14, 2021 10:15 View code [ ] cobol Can I use this on production? Installation Example Get Help Documentation Cobol(input, options, callback) Params Press Highlights How to contribute Support my projects Where is this library used? License README.md cobol cobol Support me on Patreon Buy me a book PayPal Ask me anything Version Downloads Get help on Codementor Buy Me A Coffee COBOL bridge for NodeJS which allows you to run COBOL code from NodeJS. Can I use this on production? Of course, you can! It's production ready! If you ever did such a thing, ping me (@IonicaBizau). Installation Currently GnuCOBOL is required. If you are using a debian-based distribution you can install it using: $ sudo apt-get install gnucobol # outdated systems: sudo apt-get install open-cobol It would be interesting to fallback into a COBOL compiler written in NodeJS. Contributions are welcome! Then, install the cobol package. $ npm i cobol Example // Dependencies var Cobol = require("cobol"); // Execute some COBOL snippets Cobol(function () {/* IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. PROGRAM-BEGIN. DISPLAY "Hello world". PROGRAM-DONE. STOP RUN. */}, { compileargs:{ free: true } }, function (err, data) { console.log(err || data); }); // => "Hello World" Cobol(__dirname + "/args.cbl", { args: ["Alice"] }, function (err, data) { console.log(err || data); }); // => "Your name is: Alice" // This will read data from stdin Cobol(function () {/* IDENTIFICATION DIVISION. PROGRAM-ID. APP. *> http://stackoverflow.com/q/938760/1420197 ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD SYSIN. 01 ln PIC X(64). 88 EOF VALUE HIGH-VALUES. WORKING-STORAGE SECTION. PROCEDURE DIVISION. DISPLAY "Write something and then press the key" OPEN INPUT SYSIN READ SYSIN AT END SET EOF TO TRUE END-READ PERFORM UNTIL EOF DISPLAY "You wrote: ", ln DISPLAY "------------" READ SYSIN AT END SET EOF TO TRUE END-READ END-PERFORM CLOSE SYSIN STOP RUN. */}, { stdin: process.stdin, stdout: process.stdout }, function (err) { if (err) { console.log(err); } }); // => Write something and then press the key // <= Hi there! // => You wrote: Hi there! // => ------------ Get Help There are few ways to get help: 1. Please post questions on Stack Overflow. You can open issues with questions, as long you add a link to your Stack Overflow question. 2. For bug reports and feature requests, open issues. 3. For direct and quick help, you can use Codementor. Documentation Cobol(input, options, callback) Runs COBOL code from Node.JS side. Params * Function|String|Path input: A function containing a comment with inline COBOL code, the cobol code itself or a path to a COBOL file. * Object options: An object containing the following fields: * cwd (String): Where the COBOL code will run (by default in the current working directory) * args (Array): An array of strings to pass to the COBOL process. * compileargs (Object): Use to specificy cobc compiler options * stdin (Stream): An optional stdin stream used to pipe data to the stdin stream of the COBOL process. * stderr (Stream): An optional stderr stream used to pipe data to the stdin stream of the COBOL process. * stdeout (Stream): An optional stdout stream used to pipe data to the stdin stream of the COBOL process. * remove (Boolean): Should the compiled executable be removed after running, default is true. * precompiled (Boolean): Run the precompiled executable instead of re-compiling, default is false. * Function callback: The callback function called with err, stdout and stderr. Press Highlights This project has become more popular than I expected. If you wrote or found an article about this project that is not in the list below, please add it. * Calling 1959 from your Web code: A COBOL bridge for Node.js ( ArsTechnica, by Sean Gallagher) * Cobol -- yes, Cobol -- gets a bridge to Node.js (InfoWorld, by Paul Krill) * Ein COBOL-Plug-in fur Node.js (Heise Online, by Alexander Neumann ) * Dit krijg je als je Node.js met COBOL kruist (Webwereld, by Chris Koenis) * COBOL for Node.js (I Programmer, by Kay Ewbank) * Nagyon durva: Mar COBOL-bol is lehet programozni a Node.js-t ( prog.hu, by Sting) * Micro Focus Updates COBOL for Visual Studio 2015 (eWeek, by Darryl K. Taft) * Sur GitHub, un projet relie Cobol et Node.js (LeMondeInformatique , by Maryse Gros avec IDG News Service) * 3 open source projects for modern COBOL development ( OpenSource.com, by Joshua Allen Holm) How to contribute Have an idea? Found a bug? See how to contribute. Support my projects I open-source almost everything I can, and I try to reply to everyone needing help using these projects. Obviously, this takes time. You can integrate and use these projects in your applications for free! You can even change the source code and redistribute (even resell it). However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it: * Starring and sharing the projects you like * Buy me a book--I love books! I will remember you after years if you buy me one. * PayPal--You can make one-time donations via PayPal. I'll probably buy a [DEL:coffee:DEL] tea. * Support me on Patreon--Set up a recurring monthly donation and you will get interesting news about what I'm doing (things that I don't share with everyone). * Bitcoin--You can send me bitcoins at this address (or scanning the code below): 1P9BRsmazNQcuyTxEqveUsnf5CERdq35V6 [6874747073] Thanks! [?] Where is this library used? If you are using this library in one of your projects, add it in this list. * cobol-promises License MIT (c) Ionica Bizau About COBOL bridge for NodeJS which allows you to run COBOL code from NodeJS. Topics mad-science hacktoberfest Resources Readme License MIT license Activity Stars 669 stars Watchers 31 watching Forks 116 forks Report repository Releases 19 2.0.3 Latest May 14, 2021 + 18 releases Packages 0 No packages published Contributors 9 * @IonicaBizau * @krzkaczor * @rbkrabbe * @dandv * @BernhardBehrendt * @aln787 * @andrewstucki * @GitMensch * @B14m3m3 Languages * COBOL 60.7% * JavaScript 39.3% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.