# alibaba/freeline

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/alibaba-freeline).**

5,463 stars · 621 forks · Java · bsd-3-clause

## Links

- GitHub: https://github.com/alibaba/freeline
- Homepage: https://www.freelinebuild.com/
- awesome-repositories: https://awesome-repositories.com/repository/alibaba-freeline.md

## Description

Freeline is a mobile application update framework and bytecode hot-swap engine designed to deliver incremental binary updates to devices. It functions as a binary diff patching tool and a mobile over-the-air patching framework that allows for the delivery of small update packages to fix bugs and replace resources without requiring a full application reinstall.

The system distinguishes itself through its ability to perform dynamic code swapping and native library updating. It replaces shared object binaries and code segments in a running process via socket servers, enabling logic updates and hot reloading of resources without restarting the session.

The framework includes an incremental build system that analyzes modified symbols and dependencies to rebuild only affected components. This capability surface covers binary patching, resource symbol mapping, and the generation of incremental over-the-air update packages.

## Tags

### Mobile Development

- [Over-the-Air Updates](https://awesome-repositories.com/f/mobile-development/distribution-updates/over-the-air-updates.md) — Generates small incremental binary patch files to deliver fixes and resources over the air to mobile devices. ([source](https://cdn.jsdelivr.net/gh/alibaba/freeline@master/README.md))
- [Android Application Update Systems](https://awesome-repositories.com/f/mobile-development/android-application-update-systems.md) — Provides a framework for delivering and merging binary patches to maintain stability and update mobile applications.
- [Mobile Patching Frameworks](https://awesome-repositories.com/f/mobile-development/mobile-infrastructure-security/mobile-patching-frameworks.md) — Implements a framework for generating bytecode-level binary differences to patch installed mobile applications.

### Development Tools & Productivity

- [Native Library Hot-Swapping](https://awesome-repositories.com/f/development-tools-productivity/client-update-utilities/runtime-logic-hot-updates/native-library-hot-swapping.md) — Dynamically replaces shared object binaries on a device to update low-level logic at runtime.
- [Hot Code Reloading](https://awesome-repositories.com/f/development-tools-productivity/hot-code-reloading.md) — Updates application logic and resources in a running environment without requiring a full process restart. ([source](https://cdn.jsdelivr.net/gh/alibaba/freeline@master/README.md))
- [Hot Code Replacement](https://awesome-repositories.com/f/development-tools-productivity/hot-code-replacement.md) — Replaces code segments and resources in a running process via sockets to update logic without restarting.
- [Build Accelerators](https://awesome-repositories.com/f/development-tools-productivity/build-accelerators.md) — Accelerates Android build and deployment times by combining incremental compilation and hot-swapping strategies. ([source](https://www.freelinebuild.com/))
- [Incremental Build Engines](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/build-optimization-engines/incremental-build-engines.md) — Implements a build system that tracks dependency changes to selectively recompile only modified components.
- [Incremental Build Optimizers](https://awesome-repositories.com/f/development-tools-productivity/incremental-build-optimizers.md) — Analyzes code and resource changes to optimize the build by recompiling only modified components. ([source](https://github.com/alibaba/freeline/wiki/Freeline-DSL-References))
- [Incremental Build Systems](https://awesome-repositories.com/f/development-tools-productivity/incremental-build-systems.md) — Analyzes modified symbols and dependencies to rebuild only affected components and native libraries.
- [Rapid Development Tools](https://awesome-repositories.com/f/development-tools-productivity/rapid-development-tools.md) — Combines hot-swapping and incremental builds to minimize the iteration cycle between code changes and device updates.

### DevOps & Infrastructure

- [Dynamic Code Loaders](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/code-execution-runtimes/dynamic-code-loaders.md) — Injects and executes updated code into a running mobile environment without requiring a full process restart.

### Networking & Communication

- [Hot-Swap Sockets](https://awesome-repositories.com/f/networking-communication/socket-networking/hot-swap-sockets.md) — Transmits updated logic and resources to a running process via network sockets to refresh functionality without a restart.

### Programming Languages & Runtimes

- [Native Library Hot-Swapping](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/foreign-function-interfaces/native-library-integrations/native-library-hot-swapping.md) — Enables the replacement of shared object native libraries in memory during the application lifecycle.

### Software Engineering & Architecture

- [Binary Patching Utilities](https://awesome-repositories.com/f/software-engineering-architecture/binary-patching-utilities.md) — Calculates differences between binary versions to create small update packages for specific code segments.
