# Best practice using PackageCompiler.jl (or something else!) for code obfuscation and extensibility

**URL:** <https://discourse.julialang.org/t/best-practice-using-packagecompiler-jl-or-something-else-for-code-obfuscation-and-extensibility/85806>\
**Category:** General Usage\
**Tags:** question, package-compiler\
**Created:** [August 16, 2022, 1:42am UTC](https://discourse.julialang.org/t/best-practice-using-packagecompiler-jl-or-something-else-for-code-obfuscation-and-extensibility/85806 "2022-08-16T01:42:54Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![pdetrempe](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdetrempe/32/38815_2.png) [@pdetrempe](https://discourse.julialang.org/u/pdetrempe)\
**Post date:** [August 16, 2022, 3:08pm UTC](https://discourse.julialang.org/t/best-practice-using-packagecompiler-jl-or-something-else-for-code-obfuscation-and-extensibility/85806/3 "2022-08-16T15:08:45Z")

</div>

Thanks for the response! Regarding the [reverse engineering of PackageCompiler compiled apps](https://julialang.github.io/PackageCompiler.jl/dev/apps.html#Reverse-engineering-the-compiled-app), I’m not worried about the user seeing the build machine paths or the function/type names. Python is also being considered, and it looks like it may have similar [reverse engineering issues](https://wiki.python.org/moin/Asking%20for%20Help/How%20do%20you%20protect%20Python%20source%20code%3F). The lowered code is more concerning, but if it would require _significant_ effort to recreate the whole package source from the delivered sysimage/app, then that meets our requirements. Do you know if it would be straightforward for someone to use Julia’s metaprogramming (or other) capabilities to back out the source from the metadata available from macros like `@code_lowered` and `@code_warntype`? Am I understanding correctly that the `--strip-ir` and `--strip-metadata` remove this capability from the julia sysimage compiled with those options?

Thanks for the links to the `--strip-ir` and `--strip-metadata` options. I think that’ll address some concerns. Looks like I can pass those arguments to PackageCompiler.jl via the [`sysimage_build_args` option](https://julialang.github.io/PackageCompiler.jl/dev/refs.html#References). I found [this comment in another thread](https://discourse.julialang.org/t/obfuscate-julia-module-and-import-it-python/73026/10) helpful as well.

---

_[View the full topic](https://discourse.julialang.org/t/best-practice-using-packagecompiler-jl-or-something-else-for-code-obfuscation-and-extensibility/85806)._
