awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
peripheryapp avatar

peripheryapp/periphery

0
View on GitHub↗
6,145 stars·230 forks·Swift·MIT·11 views

Periphery

Periphery is a static analysis tool and dead code detector for Swift projects. It identifies unreferenced classes, structs, functions, and properties, and serves as an API surface optimizer to find public declarations that can be restricted to internal access.

The tool includes specialized scanning for Interface Builder files, such as storyboards and XIBs, to ensure UI-connected members are not incorrectly flagged as unused. It also provides automated code removal to eliminate identified dead code and unused parameters directly from source files.

Its analysis capabilities cover the detection of redundant protocols, unused enum cases, unnecessary imports, and assign-only properties. The system manages technical debt through baseline comparison filtering and supports mixed-language projects by preserving symbols exposed to the Objective-C runtime.

Periphery integrates with build systems and CI pipelines using YAML-based configuration and can export analysis results in multiple industry standard formats.

Features

  • Dead Code Cleanup - Statically analyzes Swift projects to identify unreferenced classes, structs, functions, and properties.
  • Call Graph Traversals - Identifies unreferenced symbols by building and traversing a dependency graph of declarations and their call sites.
  • Unused Code Identification - Uses binary index store data to identify unused code without requiring a full project rebuild.
  • Swift Linters - Provides static analysis of Swift project graphs to find redundant declarations and unused imports.
  • Compiler Index Store Integration - Processes binary index stores from the Swift compiler to efficiently determine symbol usage.
  • Interface Builder Parsing - Scans Storyboard and XIB files to ensure UI-connected members are not incorrectly flagged as unused.
  • Redundant Accessibility Detection - Identifies declarations marked public that are never referenced from outside their home module.
  • Accessibility Level Analysis - Swift Unused Code Detector identifies public declarations that can be made private because they are only used internally.
  • API Surface Reduction - Identifies public declarations that can be restricted to internal access to optimize the module's API surface.
  • Dead Code Removal - Automatically removes identified dead code and unused parameters directly from Swift source files.
  • Interface Builder Analyzers - Parses XIB and storyboard files to ensure UI-connected members are not incorrectly flagged as unused.
  • Mixed-Language Project Support - Retains declarations accessible to the runtime to prevent false positives in multi-language codebases.
  • Assign-Only Property Detection - Identifies properties that are assigned values but never read, including those in structs with synthesized initializers.
  • Redundant Protocol Detection - Identifies protocols that are conformed to but never used as existential types or for generic specialization.
  • Runtime Interop Analysis - Preserves symbols exposed to the Objective-C runtime to prevent false positives in mixed-language projects.
  • Synthesized Code Handling - Preserves properties on types with compiler-generated code to avoid marking synthesized members as unused.
  • Unused Enum Case Detection - Identifies individual cases within non-raw-representable enumerations that are never referenced.
  • Unused Import Detection - Identifies import statements that are not required by any declaration in the source file.
  • Unused Parameter Detection - Identifies parameters in functions, protocols, and overridden methods that are never accessed.
  • Baseline-Based Debt Management - Provides a mechanism to track known unused code in a baseline file to isolate new regressions from legacy debt.
  • General Utilities - Identifies unused code in Swift projects.
  • Project Analysis and Lints - Eliminate unused Swift code automatically.

Star history

Star history chart for peripheryapp/peripheryStar history chart for peripheryapp/periphery

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Periphery

Similar open-source projects, ranked by how many features they share with Periphery.
  • jendrikseipp/vulturejendrikseipp avatar

    jendrikseipp/vulture

    4,655View on GitHub↗

    Vulture is a static analysis tool and linter designed to find unused variables, functions, and classes in Python source code. It operates as a dead code detector and unused code finder that scans source files to identify unreachable expressions and imports without executing the code. The tool employs a confidence-based heuristic scoring system to assign probability values to detections, helping to distinguish truly unused symbols from potential false positives. It further assists in pruning dead logic by sorting detected unused classes and functions by line count to prioritize the removal of

    Pythondead-code-removalpython
    View on GitHub↗4,655
  • crate-ci/typoscrate-ci avatar

    crate-ci/typos

    4,002View on GitHub↗

    Typos is a source code spell checker and automated typo fixer designed to detect and correct spelling errors across programming languages and project files. It functions as a CI spelling validator and SARIF compatible linter, allowing projects to prevent misspelled text from reaching production. The tool features a customizable dictionary engine that utilizes TOML configuration and locale-specific dictionaries to manage project-specific terminology. It differentiates itself by splitting programming language identifiers into individual words for validation and verifying the spelling of filenam

    Rust
    View on GitHub↗4,002
  • go-task/taskgo-task avatar

    go-task/task

    15,721View on GitHub↗

    Task is a YAML-based task runner and build tool used to define and automate development workflows. It functions as a dependency-based build system and cross-platform task automator, allowing users to execute shell commands across different operating systems using a declarative configuration file. The project operates as an incremental build tool, utilizing file fingerprints and checksums to track state and avoid redundant work by determining if tasks are up to date. It manages execution via a dependency graph to ensure prerequisites are completed before target commands run. The system includ

    Go
    View on GitHub↗15,721
  • checkstyle/checkstylecheckstyle avatar

    checkstyle/checkstyle

    8,867View on GitHub↗

    Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best practices. It functions as a code quality auditor and Javadoc validation tool, checking source code against configurable rulesets to ensure structural and stylistic consistency. The project allows for the creation of custom linting rules by extending a core API to inspect the abstract syntax tree. It further enables specialized validation through the use of XPath expressions to query the syntax tree for specific code patterns and violations. Capability areas include the enforcement

    Javacode-qualitycommand-line-toolhacktoberfest
    View on GitHub↗8,867
See all 30 alternatives to Periphery→

Frequently asked questions

What does peripheryapp/periphery do?

Periphery is a static analysis tool and dead code detector for Swift projects. It identifies unreferenced classes, structs, functions, and properties, and serves as an API surface optimizer to find public declarations that can be restricted to internal access.

What are the main features of peripheryapp/periphery?

The main features of peripheryapp/periphery are: Dead Code Cleanup, Call Graph Traversals, Unused Code Identification, Swift Linters, Compiler Index Store Integration, Interface Builder Parsing, Redundant Accessibility Detection, Accessibility Level Analysis.

What are some open-source alternatives to peripheryapp/periphery?

Open-source alternatives to peripheryapp/periphery include: jendrikseipp/vulture — Vulture is a static analysis tool and linter designed to find unused variables, functions, and classes in Python… crate-ci/typos — Typos is a source code spell checker and automated typo fixer designed to detect and correct spelling errors across… go-task/task — Task is a YAML-based task runner and build tool used to define and automate development workflows. It functions as a… squizlabs/php_codesniffer — PHP_CodeSniffer is a static analysis tool, coding standard linter, and command-line validator for PHP. It scans files… checkstyle/checkstyle — Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best… pycqa/pylint — Pylint is a static code analysis tool for Python that checks source code for errors, coding standard violations, and…