git404hub

what is souther fr?

kawasima/souther — explained in plain English

Analysis updated 2026-05-18

22JavaAudience · developerComplexity · 4/5Setup · hard

tl;dr

A small JVM language for writing business data rules and behaviors that compile down into working Java code.

vibe map

mindmap
  root((souther))
    What it does
      Small JVM language for business rules
      Compiles specs into Java code
      Enforces data constraints
    Tech stack
      Java
      Maven
      JDK 25 toolchain
    Use cases
      Model approval or rejection outcomes
      Enforce value constraints on data
      Separate business rules from databases
    Audience
      Java developers
      Domain modeling teams

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

what do people make with this?

VIBE 1

Model business rules like approval or rejection of a request as explicit data types.

VIBE 2

Enforce value constraints, such as amounts that can never go negative, at the point data is created.

VIBE 3

Keep outside dependencies like databases or clocks separate from core business logic.

VIBE 4

Generate Java classes from a specification file for use in a Spring Boot or jOOQ project.

what's the stack?

JavaMavenJDK 25

how it stacks up fr

kawasima/southerautismdevelopment/autism-clientfal1winter/knowledge-rag-agent-platform
Stars222222
LanguageJavaJavaJava
Setup difficultyhardhardhard
Complexity4/53/55/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · hard time til it works · 1h+

Requires JDK 25 and Maven as the build toolchain, even though generated code runs on Java 21.

in plain english

Souther is a small programming language built to run on the Java platform. It is meant for describing the rules of a business, such as what a piece of data is allowed to look like and what states something can move through, and then turning those rules into working Java code. In Souther you write two main things: data and behavior. Data describes the shape of information, along with constraints on what values are valid, so an amount of money might be required to never go negative. Behavior describes an action, what it takes in and what outcomes it can produce, such as a travel request being either accepted or rejected. Souther checks these constraints every time a piece of data is created, so invalid data cannot slip through unnoticed. One idea the project emphasizes is that outcomes like rejection are treated as ordinary results, not as errors or exceptions. A behavior that can either approve or reject something simply returns one of two named outcomes, and the rest of the program handles both cases as normal data rather than as something going wrong. Souther deliberately keeps outside the world, such as databases, clocks, or web requests, out of its own code. Instead, a behavior can declare that it needs something from the outside world, and the surrounding Java program is responsible for supplying it. This keeps the core business rules separate from the technical details of how the system talks to a database or the internet. To use it, you need JDK 25 and Maven to build the project, though the code it generates can run on the older Java 21. It includes a command line tool that can compile these rule files into Java class files, or run a single business rule directly against some input data to see the result, without writing any Java yourself. The language is intentionally limited: it does not support exceptions, null values, or arbitrary calls into the wider Java ecosystem, keeping the model simple and predictable. Documentation exists mainly in Japanese, alongside English examples and design notes in the repository.

prompts (copy fr)

prompt 1
Help me write a Souther data and behavior definition for a simple approval workflow.
prompt 2
Explain how Souther's invariant checks differ from writing validation code by hand in Java.
prompt 3
Walk me through building this project with Maven and running the souther-cli tool on an example file.
prompt 4
Show me how a Java Spring Boot app would inject a database dependency into a Souther behavior.

Frequently asked questions

what is souther fr?

A small JVM language for writing business data rules and behaviors that compile down into working Java code.

What language is souther written in?

Mainly Java. The stack also includes Java, Maven, JDK 25.

How hard is souther to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is souther for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.