Everything you need to know about xllify. Got more questions? Email alex@xllify.com
xllify is in free beta. The tool has been extensively tested, but additional features are planned for future releases. Feedback is encouraged during this period. Early adopters receive a perpetual free tier when xllify launches. See the terms of service for more details about the beta period.
xllify is a tool that lets you build high-performance Microsoft Excel XLL add-ins using Luau or Python, without needing Visual Studio, .NET, or the Windows SDK. Just run the xllify command and get a ready-to-use .xll file in seconds.
Luau offers maximum performance with code embedded as bytecode, making it ideal for pure computations and keeping your code private. It runs at native speeds with true multithreaded recalculation.
Python gives you full system access and the ability to use any Python library (pandas, numpy, duckdb, etc), making it perfect for data analysis, machine learning, and API calls. It uses high-performance communication via named pipes and shared memory.
No! That's one of the main benefits of xllify. You just need the xllify executable (a single 3MB file). No compiler, no Visual Studio, no Windows SDK required.
Yes! Your built XLL files are yours to distribute and sell without restriction, forever. Everything packages into a single ~2.5MB file with no per-seat licensing costs.
Mac support is planned but not currently available. Right now, xllify builds XLL add-ins for Microsoft Excel on Windows only.
All of these tools are excellent choices depending on your needs. xllify differentiates itself by:
You can use any Python library. Popular choices include pandas, numpy, duckdb, requests, scikit-learn and more. Python dependencies are automatically installed into an automatically created virtual environment.
xllify uses high-performance inter-process communication (IPC) to connect Python with Excel. The communication layer is built on ZeroMQ, a mature and battle-tested messaging library that provides reliable, fast communication between processes.
When you call a Python function from Excel, the XLL add-in sends the request to a Python worker process via ZeroMQ, executes your function, and returns the result. This architecture allows Python to run in its own process with full system access while maintaining excellent performance through efficient message passing and shared memory for large data transfers.
For asynchronous operations, xllify uses Excel's Real-Time Data (RTD) mechanism, which provides a superior approach to Excel's built-in async function support. This allows long-running Python functions to execute without blocking Excel's UI, with results automatically updating in cells when ready.
xllify also supports load balancing across multiple Python processes to make use of multiple cores, further improving performance for parallel workloads.
Support for other languages such as C++, Rust, and Go are planned, using the same proven IPC architecture.
xllify is written in C++ and uses the Excel C SDK directly, with support for multithreaded recalculation (MTR) and shared memory for maximum performance. Luau functions run at native speeds, while Python functions benefit from high-performance communication and load balancing across multiple processes.
During the beta period, xllify is free for Early Adopters, who retain free access after the beta ends. After the beta, xllify will offer a yearly team licence for the xllify tooling, which includes updates and email support.
Professional assistance with xllify usage and custom solution development is available. See the pricing page for more details about Team and Enterprise plans.
With Luau, yes. Your code is embedded as bytecode and sandboxed (no file system access), so users can't easily view your code.
With Python, your source code is distributed with the XLL, so it's not as protected. Choose Luau if code privacy is important to you.
Luau code is sandboxed and limited in what it can do by design. It has no access to the host computer's resources, not even the file system. Luau can't execute arbitrary system commands or perform file operations, making it a secure choice for distributing add-ins to end users.
Python has fewer constraints and provides full system access, which is necessary for many use cases (file I/O, API calls, database access). It's assumed your end users trust you to provide them with fit-for-purpose, non-harmful code. As with any software, you should only use Python-based add-ins from trusted sources.
xllify is explicitly not for the creation of harmful exploits or malicious software. See the terms of service for more details.
XLL add-ins are powerful because they use native code and have direct access to Excel's C API, offering excellent performance. However, this same power can be a security risk in some contexts, as malicious XLLs could potentially harm the host system.
Microsoft blocks untrusted XLL add-ins by default to protect users. To address this concern, xllify v1.0 will offer code signing support, allowing you to digitally sign your add-ins with a trusted certificate. This helps end users verify the authenticity and integrity of your add-ins.
Additionally, xllify's Luau runtime is sandboxed with no access to the host computer's resources (not even the file system), providing an extra layer of security for add-ins that don't require system access.
Python installation is required in two scenarios:
Python can be freely downloaded from python.org. Python 3.10 or later is recommended. When distributing Python-based add-ins, dependencies are automatically installed into a virtual environment on the end user's machine without manual configuration.
Use any editor or IDE you're comfortable with! xllify works by analysing your code's abstract syntax tree (AST) to discover function signatures and metadata (such as the docstring in Python functions), so you can work in whatever development environment you prefer.
Writing xllify functions is straightforward and natural for each
language. Simply decorate your functions with the appropriate
xllify decorator and use standard type annotations. For example,
in Python you use @xllify.fn with type hints, and in
Luau you call xllify.fn() with your function. xllify
automatically works out everything Excel needs from your code.
Popular choices include VS Code, PyCharm, Sublime Text, or any editor with Luau or Python support. The xllify tool itself is just a command-line utility that works with any development workflow.
Visit the download page to get the xllify tool, then check out the documentation for tutorials and examples. You'll be building your first Excel add-in in minutes!
Yes! xllify is CI-friendly with native GitHub Actions support. You can automate your XLL builds as part of your development workflow.
Detailed guides and examples are available in the documentation, and YouTube tutorials provide video walkthroughs. For additional support, contact via email.
Contact via email at alex@xllify.com or on X @xllify for questions, guidance, demos, or to discuss custom solutions.
xllify is developed by Alex Reid.