Accessing the native CryptoMiniSat SAT solver through IPASIR interface and its Java binding
This project packages native shared libraries of the CryptoMiniSat SAT solver so that they can be used in Apache Maven projects.
This project consists of two modules:
-
cryptominisat: This module contains precompiled native shared libraries that implement the Reentrant Incremental Sat solver API (reverse: IPASIR) used in SAT competitions. The native functions can be accessed, e.g., using the Java Native Access (JNA). To use this library from Apache Maven, add the following dependency to your project, where
<classifier>
should be replaced with JNA canonical prefix for your platform{OS}-{ARCH}
(see https://github.com/java-native-access/jna/blob/master/www/GettingStarted.md).<dependency> <groupId>com.github.liveontologies</groupId> <artifactId>cryptominisat</artifactId> <version>...</version> <classifier>linux-x86-64</classifier> </dependency>
-
cryptominisat4j: This module provides Java bindings for the native library using the IPASIR4J library -- a Java version of the IPASIR C library. To use this library add the following maven dependency:
<dependency> <groupId>com.github.liveontologies</groupId> <artifactId>cryptominisat4j</artifactId> <version>...</version> </dependency>
See src/test/test
for examples on how to use this library.
The native library cryptominisat
for the current platform will be automatically added as
a compile/runtime dependency. To include the library dependencies for all available
platforms set a system property multi-platform
, e.g., by adding a switch
-Dmulti-platform
to the maven command. This may be desirable, e.g., for creating
platform-independent "stand-alone" jars.
To use snapshots versions of this library (if not compiled from sources), please add
the sonatype snapshot repository either to your pom.xml
or settings.xml
:
<repositories>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
To compile this software, one has to install Apache Maven version 3 or higher and standard development tools such as Make and GCC. To build all modules, issue the following command from this folder:
mvn clean install
All sources of this project are available under the terms of the
Apache License 2.0
(see the file LICENSE.txt
).
In addition, the sources of the module cryptominisat
are available
under the terms of the MIT license, so that it is compatible to the
license of the cryptominisat solver (see the file cryptominisat/LICENSE.txt
).