Skip to content

mbenz89/soot

This branch is 2648 commits behind soot-oss/soot:develop.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6b745cc · Nov 6, 2017
Oct 23, 2017
Oct 23, 2017
Oct 23, 2017
Nov 6, 2017
Nov 4, 2005
Aug 2, 2017
Apr 10, 2015
Nov 6, 2017
Oct 25, 2017
Nov 6, 2017
Sep 18, 2014
Jun 3, 2003
Jun 20, 2004
Oct 24, 2017
No commit message
Jan 22, 2012
Nov 17, 2003
Jan 22, 2012
Oct 4, 2000
Aug 18, 2014
Jun 22, 2012
Jan 1, 2015
Nov 6, 2017
Apr 1, 2014
No commit message
Jan 22, 2012
Apr 5, 2006

Repository files navigation

Build Status

Soot supports Java 9 modules now!

Try and get involved in Soot's Java 9 bleeding edge developement. Check out the Soot-j9 branch.

Please help us improve Soot!

You are using Soot and would like to help us support it in the future? Then please support us by filling out this little web form.

That way you can help us in two ways:

  • By letting us know how we can improve Soot you can directly help us prioritize newly planned features.
  • By stating your name and affiliation you help us showcasing Soot’s large user base. Thanks!

What is Soot?

Soot is a Java optimization framework. It provides four intermediate representations for analyzing and transforming Java bytecode:

  • Baf: a streamlined representation of bytecode which is simple to manipulate.
  • Jimple: a typed 3-address intermediate representation suitable for optimization.
  • Shimple: an SSA variation of Jimple.
  • Grimp: an aggregated version of Jimple suitable for decompilation and code inspection.

See http://www.sable.mcgill.ca/soot/ for details.

How do I get started with Soot?

We have some documentation on Soot in the wiki and also a large range of tutorials on Soot.

Including Soot in your Project

A Soot "release" is currently built for each commit to the develop branch. You can include Soot as a dependency via Maven, Gradle, SBT, etc using the following coordinates:

<dependencies>
  <dependency>
    <groupId>ca.mcgill.sable</groupId>
    <artifactId>soot</artifactId>
    <version>3.0.0-SNAPSHOT</version>
  </dependency>
</dependencies>
<repositories>
  <repository>
    <id>soot-snapshot</id>
    <name>soot snapshots</name>
    <url>https://soot-build.cs.uni-paderborn.de/nexus/repository/soot-snapshot/</url>
  </repository>
</repositories>	

Please make sure that your Java version is up to date to avoid problems with our SSL certificate

How do I obtain the nightly builds

Note that the nightly build server has moved

Nightly builds of Soot can be obtained from nightly build. The "sootclasses-trunk-jar-with-dependencies.jar" file is an all-in-one file that also contains all the required libraries. The "sootclasses-trunk.jar" file contains only Soot, allowing you to manually pick dependencies as you need them. If you do not want to bother with dependencies, we recommend using the former.

Building Soot yourself

If you cannot work with the prebuild versions and need to build Soot on your own, please consider the wiki for further steps.

About Soot's source code

Soot follows the git-flow convention. Releases and hotfixes are maintained in the master branch. Development happens in the develop branch. To catch the bleeding edge of Soot, check out the latter. If not using Maven, you will also need the projects jasmin and heros. In case of any questions, please consult the Soot mailing list at: http://www.sable.mcgill.ca/mailman/listinfo/soot-list/

About

Soot - A Java optimization framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 95.6%
  • TeX 2.8%
  • HTML 0.9%
  • XSLT 0.6%
  • Limbo 0.1%
  • Perl 0.0%