explaingit

splware/esproc

4,683JavaAudience · dataComplexity · 3/5Setup · moderate

TLDR

esProc SPL is a spreadsheet-style programming language and IDE for data processing that combines SQL querying with full programming logic, running interactively in a grid or embedded inside Java apps.

Mindmap

mindmap
  root((esProc SPL))
    What it does
      Data processing
      SQL alternative
      Grid-style IDE
      Distributed compute
    Tech stack
      Java
      SPL language
    Data sources
      Relational databases
      CSV and Excel
      REST APIs
      Multi-source joins
    Use cases
      Replace SQL scripts
      Embed in Java apps
      Stored procedure swap
    Audience
      Data analysts
      Java developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace complex SQL stored procedures with SPL scripts that support loops, branches, and step-by-step debugging in a spreadsheet interface.

USE CASE 2

Embed SPL as a data processing engine inside a Java web application to query databases, CSV files, and REST APIs in one script.

USE CASE 3

Process datasets too large for one machine using SPL built-in distributed computing without changing your existing code structure.

Tech stack

JavaSPL

Getting it running

Difficulty · moderate Time to first run · 30min

The SPL IDE must be downloaded from the project website, Java runtime is required for embedded use.

In plain English

esProc SPL is a programming language built for working with structured data, which is the kind of data organized in rows and columns that you would normally find in a spreadsheet or a database. Instead of writing code in a plain text editor, you write SPL in a grid that looks similar to Excel. As you write, the results of each step appear in real time in the cell next to your code, which makes it much easier to understand what is happening at each stage. SPL stands for Structured Process Language. Its main purpose is to do the kinds of data processing tasks that people currently split between SQL and Python. SQL is the language most databases use, and it is good at querying data but awkward for complex step-by-step logic. Python fills those gaps but adds complexity. SPL aims to handle both in a single language, keeping the conciseness of SQL for data operations while supporting full programming constructs like loops, branches, and recursion. The language can be used in two ways. As a standalone tool it includes a desktop IDE with a spreadsheet-style interface where you write and run scripts interactively. As an embedded engine it can be dropped into a Java application, where it processes data and returns results to the host program. It can also run inside databases as a stored procedure replacement, or sit alongside a web application to handle data queries. The README describes several integration patterns: connecting to relational databases, reading from files like CSV, JSON, or Excel, working with data from HTTP APIs, and even querying data spread across multiple sources in a single script. There is also built-in support for distributed computing when datasets are too large for one machine. The project has a community forum, a Discord server, a blog, and a Reddit community. Downloads are available from the project website. The README includes links to an online playground where you can try SPL without installing anything.

Copy-paste prompts

Prompt 1
Write an SPL script that reads a CSV file, filters rows where sales exceed 1000, groups by region, and outputs a totals table to a new Excel file.
Prompt 2
Show me how to embed esProc SPL in a Spring Boot application to run a parameterized data query and return results as JSON.
Prompt 3
Convert this SQL query with multiple CTEs and window functions into equivalent SPL code: [paste query here].
Prompt 4
I have data spread across a MySQL database and a REST API. Write an SPL script that joins them into a single result set.
Open on GitHub → Explain another repo

← splware on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.