kotlin-satlib: SAT solver wrappers for Kotlin

This page summarizes the projects mentioned and recommended in the original post on /r/Kotlin

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • kotlin-satlib

    🗿 SAT solver wrappers for Kotlin

    Hi folks, I want to present you a small, yet powerful, library (https://github.com/Lipen/kotlin-satlib) that provides an API for SAT solvers and implements some common operations for constraint programming, such as: handling finite-domain variables (e.g.: int in a small range; custom enum; set of values), storing named "variables" in the context, encoding common logic operations over SAT literals (Tseytin-encoded, when necessary), declaring cardinality constraints (for now, only Totalizer encoding is supported, but it works pretty well in general), solving AllSAT.

  • ipasir

    The Standard Interface for Incremental Satisfiability Solving

    The generic interface of the SAT solver is not based on the standard IPASIR one, but is more pragmatic and user-friendly. It consists of the most commonly used operations performed with the SAT solver:

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • cadical

    CaDiCaL SAT Solver

    Alongside with the SAT solver interface and its extensions, `kotlin-satlib` provides wrappers for native SAT solvers (these days, most of them are written in C/C++) implemented using JNI technology. Currently, the solvers included are: MiniSat, Glucose, Cadical and CryptoMiniSat. Sadly, `kotlin-satlib` won't work out-of-the-box, you have to provide it with some external SAT solver, either in the form of a library or a binary. Luckily, there are build instructions for each of the supported SAT solver, both for Linux and Windows. Checkout the README!

  • cryptominisat

    An advanced SAT solver

    Alongside with the SAT solver interface and its extensions, `kotlin-satlib` provides wrappers for native SAT solvers (these days, most of them are written in C/C++) implemented using JNI technology. Currently, the solvers included are: MiniSat, Glucose, Cadical and CryptoMiniSat. Sadly, `kotlin-satlib` won't work out-of-the-box, you have to provide it with some external SAT solver, either in the form of a library or a binary. Luckily, there are build instructions for each of the supported SAT solver, both for Linux and Windows. Checkout the README!

  • jnisat

    Java JNI bindings for the PicoSat and MiniSat SAT solvers

    The project itself was originally based on https://github.com/mmaroti/jnisat.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts