Skip to content
@liquid-java

LiquidJava

Refinement types and typestate verification for Java

LiquidJava - Extending Java with Liquid Types

Catch bugs before runtime with compile-time verification

LiquidJava Banner

Welcome to LiquidJava!

LiquidJava adds refinement types and typestates to Java through annotations, enabling static verification that catches errors traditional type systems miss.

Quick Example

@Refinement("a > 0")
int a = 3; // ✓ verified safe
a = -8; // ✗ compile error

Key Features

  • Refinement types - Express constraints beyond basic types
  • Typestate verification - Track object state transitions
  • SMT-backed - Powered by Z3 solver
  • IDE integration - Real-time feedback in VS Code
  • Lightweight - Annotation-based, works with existing Java code

Resources

📦 VS Code Extension
📚 Tutorial
💡 Examples
📖 Research Paper (ICSE 2023)

Learn more in the LiquidJava website.

Pinned Loading

  1. liquidjava liquidjava Public

    Refinement type checker for Java with liquid types and typestates - catch bugs at compile time

    Java 52 33

  2. vscode-liquidjava vscode-liquidjava Public

    VS Code extension for LiquidJava - real-time refinement type checking with LSP integration

    TypeScript 6 1

  3. liquidjava-tutorial liquidjava-tutorial Public

    Tutorial Guide for LiquidJava

    Java 2

Repositories

Showing 10 of 10 repositories
  • liquidjava-examples Public

    Code examples demonstrating LiquidJava refinement types and typestate verification

    liquid-java/liquidjava-examples’s past year of commit activity
    Java 5 2 0 0 Updated Jan 27, 2026
  • vscode-liquidjava Public

    VS Code extension for LiquidJava - real-time refinement type checking with LSP integration

    liquid-java/vscode-liquidjava’s past year of commit activity
    TypeScript 6 MIT 1 10 (1 issue needs help) 0 Updated Jan 24, 2026
  • liquidjava Public

    Refinement type checker for Java with liquid types and typestates - catch bugs at compile time

    liquid-java/liquidjava’s past year of commit activity
    Java 52 33 19 (4 issues need help) 3 Updated Jan 23, 2026
  • .github Public

    Contains the README for the organization

    liquid-java/.github’s past year of commit activity
    0 0 0 0 Updated Jan 23, 2026
  • liquidjava-tutorial Public

    Tutorial Guide for LiquidJava

    liquid-java/liquidjava-tutorial’s past year of commit activity
    Java 2 0 0 0 Updated Nov 27, 2025
  • liquid-java.github.io Public

    Organization webpage

    liquid-java/liquid-java.github.io’s past year of commit activity
    CSS 0 1 0 1 Updated Nov 16, 2025
  • latte Public

    Lightweight aliasing tracking for Java - static analysis tool for pointer analysis

    liquid-java/latte’s past year of commit activity
    Java 3 0 8 2 Updated Jun 26, 2025
  • latte-vscode Public

    VSCode extension for Latte - Lightweight Aliasing Tracking for Java

    liquid-java/latte-vscode’s past year of commit activity
    JavaScript 6 MIT 0 0 0 Updated Jan 30, 2025
  • flight-controllers-liquid-state Public

    Using Liquid Types in Java to model typestate in flight controllers, specifically using the mavsdk library

    liquid-java/flight-controllers-liquid-state’s past year of commit activity
    Java 2 0 0 0 Updated Oct 30, 2024
  • liquid-java-external-libs Public

    LiquidJava specification files for Java libraries

    liquid-java/liquid-java-external-libs’s past year of commit activity
    Java 1 0 0 0 Updated Dec 15, 2021

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…