What’s Cooking With IBM i On GitHub?
May 14, 2018 Alex Woodie
The IBM i community’s relationship with open source started off as a slow embrace, but it’s turning into something more serious. A central player in this love affair is GitHub, which is not only the world’s largest repository for open source code, but increasingly a vehicle for delivering open innovation on the IBM i platform.
GitHub is a privately held company that was founded 10 years ago in San Francisco as Logical Awesome LLC with a simple goal: provide a hosting service and collaboration framework for software development projects managed with the Git open source version control system.
The company caught on quickly, attracting 100,000 users in 2009, 3 million users in 2013, and 27 million users today. It currently houses tens of millions of repositories and was reportedly valued at $2 billion in 2015, when it took $250 million in funding from Sequoia Capital.
Considering how popular GitHub is for developing software projects in open systems arena, it’s no surprise that it would become a place where IBM i’s burgeoning open source community would set up shop, too. That appears to be what’s happening if recent IBM i projects started on GitHub are any indication.
On GitHub, users can rate the value of projects by giving them stars. Here are the most popular open source IBM i-related projects currently hosted on GitHub, as rated by the number of stars given by users:
tn5250j – 40 stars
The tn5250j project (https://github.com/tn5250j/tn5250j) manages development of the Java-based 5250 terminal emulator of the same name. The project was added nine years ago and since then has undergone more than 1,200 commits by eight contributors spanning 11 releases, 21 forks, and five branches. The project has garnered 40 GitHub stars and has 10 watchers, making it arguably the most active and popular IBM i-related projects on the site.
ILEditor – 24 stars
Liam Allan’s ILEditor (github.com/WorksOfBarry/ILEditor) provides a lightweight, Windows-based development environment for IBM i ILE languages. The software, which was originally named Idle, has over 1,000 users, according to Allan’s Works of Barry webpage. The Windows-based code editor is free, which would be its main selling point if it actually had a price tag.
ILEditor is an active project, with 459 commits, 24 releases, five releases, and four contributors. It has garnered 24 stars on GitHub. Allan, whose day job is working at Profound Logic, hopes to keep an open line with users. “We would like to maintain active communication between the developers and the users so we know what makes ILEditor great and how we can improve on it in the future,” he says on his website.
Cobol – 18 stars
Marinfx’s Cobol (github.com/Martinfx/Cobol) project provides examples for several COBOL dialects, including OpenCobol (i.e. GnuCobol), AS/400 COBOL, and others. For AS/400 COBOL, the project provides samples for ILE COBOL, ILE CL, physical files, logical files, and display files. It was added eight months ago and already has 18 stars on GitHub.
Check-as400 – 11 stars
ShaoPin Cheng’s Check-as400 project (github.com/cjt74392/check_as400) project provides a plugin to monitor the IBM i server from Nagios, a popular open source IT, network, server, and application monitoring system. The project was first added more than four years ago and has garnered 11 stars on GitHub since then.
Write-to-IFS-with-SQL – 9 stars
Birgitta Hauser’s Write-to-IFS-with-SQL (github.com/BirgittaHauser/Write-to-IFS-with-SQL) is a utility that, as its name suggests, lets users create RPG programs that generate XML and JSON files, which are written directly to the IFS via SQL. The project was posted to GitHub about three months ago, and has since attracted nine stars and six watchers.
Hauser, whose day job is developing software at Toolmaker Advanced Efficiency GmbH, has two other GitHub projects. That includes Generate-XML-and-JSON, which helps developers create RPG programs that generate JSON and XML data for the Db2 for i database, and OSSILE, a collection of utilities for IBM i. The Generate-XML-and-JSON project has attracted six stars.
Ibmi – 9 stars
Scott Guilbeaux’s ibm i project (github.com/smokerbag/ibmi) is a client library for exposing IBM i applications to Node.js. “It is intended for those of you who have the unfortunate requirement to interface with the IBM i,” Guilbeaux writes. Despite its author’s unbridled enthusiasm for the platform, ibm i has garnered nine stars.
iRPGEditor – 8 stars
egomezal’s iRPGEditor (github.com/egomezal/irpgeditor). “This library is an IBM i is a development tool for creating IBM i applications using RPG, SQL, DDS, and CL. The Java-based software is a fork of a SourceForge project and since it was launched nearly a year ago, has garnered eight stars.
Activerecord-jdbcas400-adapter – 7 stars
Pierrick Rouxel’s Activerecord-jdbcas400-adapter project (github.com/pierrickrouxel/activerecord-jdbcas400-adapter) provides an IBM i JDBC adapter for ActiveRecord, a Ruby library for working with relational databases. The project was added four years ago, and since then three contributors have made 71 commits, 14 releases, and two branches. It has garnered seven stars on GitHub.
SQL-for-IBM-i-examples – 6 stars
Alan Seiden’s SQL-for-IBM-i-examples (github.com/Club-Seiden/SQL-for-IBM-i-examples) provides examples that demonstrate Db2 for i’s capabilities. The software was just launched two months ago, but it’s already attracting some attention on GitHub, where it has six stars, four contributors, and one branch.
Seiden has several other GitHub projects going through his Club Seiden group (club.seidengroup.com), including PyKit, a Python toolkit for IBM i; zf3-ibmiToolkit, a Zend Framework 3 module for the IBM i toolkit; RPG-Watson-SDK, a development kit that links RPG and IBM’s Watson; giti, a 5250 green screen repository browser; ibmisearch, which contains “a ton” of IBM i-specific links, and several others.
Loopback-connector-db2iseries – 6 stars
Strongloop’s loopback-connector-db2iseries (github.com/strongloop/loopback-connector-db2iseries/) brings Db2 for i support to LoopBack, an open source framework built in Node.js for rapidly building APIs.
Strongloop, which is now owned by IBM, developed the connector to bring the Db2 for i database (aka DB2 for i, DB2iSeries, DB2/400) to allow customers to build modern API-based applications that utilize that particular database. The connector project on GitHub currently has 10 contributors, six stars, four releases, and 31 people are watching.
RPGUnit – 6 stars
Cyril Clemenceau’s RPGUnit (github.com/takshil/RPGUnit) is a regression testing framework similar to Junit that’s used to implement unit tests in RPG. The software was added 10 years ago, at the dawn of the GitHub age, and has undergone seven releases. It has earned six stars over the years.
iSeriesPDF – 5 stars
Tom White’s iSeriesPDF (github.com/jenkstom/iSeriesPDF) is a C#-based LPD server that translates print jobs from an IBM i host into PDF and emails to the originating user. The software was added about a year ago and has earned 5 stars since then.
System_i_audit – 5 stars
Github user s1th created System_i_audit (github.com/s1th/system_i_audit) five years ago to assist users in performing an audit of system values, user/group profiles and privileges, and object authorities on the IBM i server.
The software, which can also track changes made to these areas over time, is older and “may require tweaking,” the contributor admits. Nevertheless, it has attracted five stars over the years.
FTPCLNT – 4 stars
Chris Hird developed FTPCLNT (github.com/ChrisHird/FTPCLNT) to function as a simple FTP Client for the IBM i. Hird says the software uses panel groups to display the local and remote content. FTPCLNT was added about a year ago. So far, there have been eight releases and 32 commits. There are seven people watching it, and it has received four stars.
Hird has several other projects on GitHub, including FTP-Guard, OSSILE, MD5CRC, and CF_API. He also created OSTools (https://github.com/ChrisHird/OSTOOLS) about two months ago to provide a range of tools for developing IBM i programs in C.
As Hird explains in his blog for his IBM i software company, Shield Advanced Solutions, the goal of OSTools is to create a technological foundation for the development of apps in the C language that other IBM i shops can build upon. Considering how outspoken Hird has been about developing open source software for IBM i that runs natively, as opposed to the PASE environment, it will be worth watching how OSTools evolves.
Liquibase-db2i – 4 stars
Nathan Voxland’s Liquibase-db2i (https://github.com/liquibase/liquibase-db2i/) adds support for the Db2 for i database to Liquibase, an open source library for tracking, managing, and applying database schema changes.
With the release of Liquibase version 3.1 about five years ago, the main Liquibase product ceased supporting Db2 for i (or DB2 for i, as the product was then called) and support was moved to extensions. Voxland, who holds the title of Liquibase Benevolent Dictator for Life, released the Db2 for i extension on GitHub, where it has four stars.
RPG – 4 stars
Edoardo Luppi’s RPG project (github.com/lppedd/RPG) provides several utility functions and collection implementations for IBM I, candling ArrayList and LinkedList functions and a HashMap. It was started almost a year ago and has four stars.
There are multiple IBM i-related GitHub projects with three stars, including:
- Vladimír Župka’s IBM i Programming Tool (github.com/vzupka/IBMiProgTool)
- Kevin Schroeder’s iSeries-PHP-toolkit (github.com/kschroeder/iSeries-PHP-toolkit)
- Uptimesoftware’s Ibm-as400-monitor (github.com/uptimesoftware/ibm-as400-monitor)
- Linq2DB’s Linq2DB4iSeries project (github.com/LinqToDB4iSeries/linq2db)
- Geoffrey Wiseman’s AS-400-Shell (github.com/geoffreywiseman/AS-400-Shell)
- Alexandru Giurovici’s AS400-automation (github.com/betaphreak/AS400-automation)
- Rainer Ross’s Chatserver (github.com/RainerRoss/Chatserver)