GithubHelp home page GithubHelp logo

crummel / dotnet_linker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dotnet/linker

0.0 1.0 0.0 9.63 MB

License: MIT License

Shell 2.39% C++ 0.03% Smalltalk 0.01% C# 93.84% PowerShell 3.47% CMake 0.25% Batchfile 0.02%

dotnet_linker's Introduction

Trimming Tools

This repository hosts various tools and msbuild tasks which are used when trimming managed applications with .NET 5 and newer.

IL Trimmer

The IL Trimmer is the developer's tool that can be used to produce apps that contain only code and assembly dependencies which are necessary to run the app. It's fully integrated into .NET SDKs via ILLink.Tasks build task and exposed via dotnet publish trimming settings.

The trimmer is always enabled for all size sensitive .NET workloads like Blazor WebAssembly, Xamarin or .NET mobile and can be manually enabled for other project types. The default apps trimming setting can be further customized by using a number of msbuild properties.

Dependencies Analyzer

The analyzer is a tool to analyze dependencies which were recorded during trimmer processing. It tracks details about reasons and connection between elements to keep it in the resulting linked assembly. It can be used to better understand the dependencies between different types and members to help further reduce the linked output.

Trimming Lens

The tlens is another tool for developers which can be used to explore ways to reduce the size of trimmed apps or exploring libraries readiness for trimming. The tool produces a recommendation where the compiled source could be improved to produce even smaller outputs when trimmed using the trimmer.

Source Code Analyzer

Another tool available for developers is implemented as Roslyn Analyzer which runs on source code and warns developers about code patterns and APIs which are problematic when building code which could be used with trimmed apps.

Contributing

We welcome contributions! Many developers have helped make this project better by reporting issues or contributing pull requests.

How to build all projects

There is a shell script available in the root folder which can build the whole project and much more (build.cmd on Windows).

./build.sh

Running tests from CLI

The same script can be used to run all tests from the terminal. We also have integration into Visual Studio and individual tests or whole test suites can be run within IDE as well.

./build.sh -test

CI Build & Test Status

Build Status

dotnet_linker's People

Contributors

agocke avatar akoeplinger avatar brian-taylor-unity avatar directhex avatar dotnet-bot avatar dotnet-maestro[bot] avatar erozenfeld avatar harinath avatar jbevain avatar jkurdek avatar josephtremoulet avatar jtschuster avatar kant2002 avatar knocte avatar lakshanf avatar lambdageek avatar marek-safar avatar mateoatr avatar michalstrehovsky avatar migueldeicaza avatar mrvoorhe avatar radekdoulik avatar rolfbjarne avatar sbomer avatar spouliot avatar tlakollo avatar vargaz avatar viktorhofer avatar vitek-karas avatar youssef1313 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.