org.soot-oss

A new version of Soot with a completely overhauled architecture

https://github.com/soot-oss/sootup

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    6 of 42 committers (14.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary

Keywords

android bytecode call-graph dataflow-analysis java jimple program-analysis soot static-analysis static-code-analysis
Last synced: 4 months ago · JSON representation ·

Repository

A new version of Soot with a completely overhauled architecture

Basic Info
Statistics
  • Stars: 724
  • Watchers: 14
  • Forks: 96
  • Open Issues: 128
  • Releases: 6
Topics
android bytecode call-graph dataflow-analysis java jimple program-analysis soot static-analysis static-code-analysis
Created almost 8 years ago · Last pushed 4 months ago
Metadata Files
Readme Funding License Citation

README.md

SootUp library Java CI with Maven codecov javadoc Maven Central

This is the home of the SootUp project. A complete overhaul of the good, old static analysis framework Soot.

What is SootUp

  • Transforms JVM bytecode (and other inputs!) to the intermediate representation Jimple.
  • Provides ClassHierarchy generation
  • CallGraph generation with different algorithms/precisions
  • Inter-procedural Data-flow Analysis with the IDE/IFDS framework enabled by Heros
  • Applies simple transformations on retrieving a methods Body (see BodyInterceptor)
  • Provides parsing and serialization of the Jimple IR.

Getting started

Documentation and usage examples are available on Examples. Check the Javadocs. Do you have questions? Feel free to start a Discussion.

SootUp improvements

(compared to its predecessor Soot.)

  • New improved API (without Globals/Singletons)
  • Fully-Parallelizable Architecture
  • Enables lazy loading of classes (no interleaved loading of used/dependent classes anymore)
  • Fail early strategy - input validation while constructing/building objects
  • Full Java 21 Support for Bytecode
  • Multiple Views (no single static Scene anymore)
  • Immutable Jimple IR Objects and Graphs

Feel free to improve SootUp!

Contributing

For feedback and feature requests, best create appropriate issues.
For questions and clarification, please use the discussions.

Publications

The SootUp paper explains further details and the design decision behind SootUp.
Preprint is also available.

If you use SootUp in your research work, feel free to cite it as follows:

@InProceedings{10.1007/978-3-031-57246-3_13, author="Karakaya, Kadiray and Schott, Stefan and Klauke, Jonas and Bodden, Eric and Schmidt, Markus and Luo, Linghui and He, Dongjie", editor="Finkbeiner, Bernd and Kov{\'a}cs, Laura", title="SootUp: A Redesign of the Soot Static Analysis Framework", booktitle="Tools and Algorithms for the Construction and Analysis of Systems", year="2024", publisher="Springer Nature Switzerland", address="Cham", pages="229--247", isbn="978-3-031-57246-3" }

Supporters

The development of SootUp is financed by generous support from the German Research Foundation (DFG) and the Heinz Nixdorf Institute (HNI).

Become a sponsor!

Owner

  • Name: Soot Program Analysis Framework
  • Login: soot-oss
  • Kind: organization
  • Email: soot-list@sable.mcgill.ca

This organization hosts open-source projects related to the Soot program analysis framework

Citation (CITATION.cff)

cff-version: 1.2.0
title: SootUp
message: 'If you use SootUp, please cite it as below.'
type: software
authors:
  - given-names: Soot-oss
repository-code: 'https://github.com/soot-oss/SootUp'
version: 2.0.0
date-released: '2025-02-19'
preferred-citation:
  type: conference-paper
  authors:
  - family-names: "Karakaya"
    given-names: "Kadiray"
  - family-names: "Schott"
    given-names: "Stefan"
  - family-names: "Klauke"
    given-names: "Jonas"
  - family-names: "Bodden"
    given-names: "Eric"
  - family-names: "Schmidt"
    given-names: "Markus"
  - family-names: "Luo"
    given-names: "Linghui"
  - family-names: "He"
    given-names: "Dongjie"
  doi: "110.1007/978-3-031-57246-3_13"
  booktitle: "Tools and Algorithms for the Construction and Analysis of Systems"
  start: 229 # First page number
  end: 247 # Last page number
  title: "SootUp: A Redesign of the Soot Static Analysis Framework"
  year: 2024

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 4,174
  • Total Committers: 42
  • Avg Commits per committer: 99.381
  • Development Distribution Score (DDS): 0.582
Top Committers
Name Email Commits
Markus Schmidt m****2@w****e 1,745
Christian Brüggemann m****l@c****m 398
wangzun66 w****6@g****m 297
hasitha h****e@g****m 262
Linghui Luo l****i@m****e 218
Kaustubh Kelkar k****r@m****e 191
Andreas Dann a****n@m****e 182
Kadiray Karakaya k****k@h****m 179
Bastian Haverkamp b****v@m****e 134
atulpundir88 a****r@c****e 95
kaustubhkelkar l****5@g****m 93
Jonas Klauke J****e@u****e 59
marcusna m****l@u****e 55
Linghui Luo l****i@o****e 52
Manuel Benz m****z@g****m 44
Linghui Luo 1****o@u****m 25
Stefan Schott s****5@g****m 22
Jan Martin Persch j****h@h****e 19
Rajat Khanna r****1@g****m 16
github-actions 4****]@u****m 12
Ben Hermann b****n@g****m 12
Hasitha Rajapakse h****i@H****l 7
Manuel Benz m****9@u****m 7
stschott s****t@g****t 7
Julian Dolby j****y@g****m 6
Linghui Luo 1****6@u****m 6
Thomas Johannesmeyer t****s@g****t 6
Andreas Dann 2****n@u****m 5
Eric Bodden e****n@u****e 4
Rajat Khanna r****t@m****e 2
and 12 more...

Packages

  • Total packages: 8
  • Total downloads: unknown
  • Total dependent packages: 16
    (may contain duplicates)
  • Total dependent repositories: 7
    (may contain duplicates)
  • Total versions: 52
repo1.maven.org: org.soot-oss:sootup.core

A new version of Soot with a completely overhauled architecture

  • Versions: 7
  • Dependent Packages: 5
  • Dependent Repositories: 1
Rankings
Dependent packages count: 11.5%
Dependent repos count: 20.8%
Stargazers count: 22.7%
Average: 23.2%
Forks count: 38.0%
Last synced: 4 months ago
repo1.maven.org: org.soot-oss:sootup.java.core

A new version of Soot with a completely overhauled architecture

  • Versions: 7
  • Dependent Packages: 4
  • Dependent Repositories: 1
Rankings
Dependent packages count: 13.9%
Dependent repos count: 20.8%
Stargazers count: 22.7%
Average: 23.8%
Forks count: 38.0%
Last synced: 4 months ago
repo1.maven.org: org.soot-oss:sootup.java.sourcecode

A new version of Soot with a completely overhauled architecture

  • Versions: 6
  • Dependent Packages: 3
  • Dependent Repositories: 1
Rankings
Dependent packages count: 17.6%
Dependent repos count: 20.8%
Stargazers count: 22.7%
Average: 24.7%
Forks count: 38.0%
Last synced: 5 months ago
repo1.maven.org: org.soot-oss:sootup.java.bytecode

A new version of Soot with a completely overhauled architecture

  • Versions: 6
  • Dependent Packages: 2
  • Dependent Repositories: 1
Rankings
Dependent repos count: 20.8%
Stargazers count: 22.7%
Dependent packages count: 23.2%
Average: 26.1%
Forks count: 38.0%
Last synced: 4 months ago
repo1.maven.org: org.soot-oss:sootup.jimple.parser

A new version of Soot with a completely overhauled architecture

  • Versions: 6
  • Dependent Packages: 1
  • Dependent Repositories: 1
Rankings
Dependent repos count: 20.8%
Stargazers count: 22.7%
Average: 28.6%
Dependent packages count: 33.0%
Forks count: 38.0%
Last synced: 4 months ago
repo1.maven.org: org.soot-oss:sootup.callgraph

A new version of Soot with a completely overhauled architecture

  • Versions: 7
  • Dependent Packages: 1
  • Dependent Repositories: 1
Rankings
Dependent repos count: 20.8%
Stargazers count: 22.7%
Average: 28.6%
Dependent packages count: 33.0%
Forks count: 38.0%
Last synced: 4 months ago
repo1.maven.org: org.soot-oss:sootup.analysis

A new version of Soot with a completely overhauled architecture

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Dependent repos count: 20.8%
Stargazers count: 22.7%
Average: 32.9%
Forks count: 38.0%
Dependent packages count: 50.2%
Last synced: 4 months ago
repo1.maven.org: org.soot-oss:sootup

A new version of Soot with a completely overhauled architecture

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 18.5%
Dependent repos count: 32.0%
Average: 33.1%
Forks count: 33.1%
Dependent packages count: 48.9%
Last synced: 4 months ago