Interlace
Interlace is a Python utility that parallelizes single-threaded command-line tools by distributing targets across multiple threads, supporting CIDR notation, glob patterns, and variable substitution. It's designed for security professionals running bulk scanning and enumeration tasks.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | codingo/Interlace |
| Owner | codingo |
| Primary language | Python |
| License | GPL-3.0 — OSI-approved |
| Stars | 1.3k |
| Forks | 187 |
| Open issues | 8 |
| Latest release | 1.6 (2019-08-19) |
| Last updated | 2025-09-12 |
| Source | https://github.com/codingo/Interlace |
What Interlace is
Interlace wraps CLI commands and expands targets (CIDR, ranges, lists) into parallel execution threads with configurable concurrency, timeouts, and execution flow control via blockers and sequential blocks. It provides template variable replacement for targets, ports, proxies, and output paths.
Get the Interlace source
Clone the repository and explore it locally.
git clone https://github.com/codingo/Interlace.gitcd Interlace# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Python 3.2–3.6 support noted in README; modern Python 3.9+ compatibility Unknown and should be tested before deployment.
- Latest release (1.6) is from August 2019, but recent pushes (September 2025) indicate ongoing maintenance; evaluate actual code changes in recent commits.
- Default thread limit is 5 and timeout 600 seconds; must tune for target scale and tool behavior to avoid resource exhaustion or premature timeouts.
- Variable substitution and blocker syntax are simple but require careful command file design; incorrect use can cause race conditions or hanging threads.
- Output handling relies on user-managed directories and variable placeholders; no built-in result aggregation or parsing.
When to avoid it — and what to weigh
- Tools with Built-in Parallelization — If your target tool already handles multithreading (e.g., masscan, concurrent frameworks), Interlace adds orchestration overhead without benefit.
- Complex Distributed Architectures — Interlace is single-machine threading; it does not distribute work across nodes or support cloud-scale parallel execution.
- Real-time Interactive Tools — Tools requiring terminal interaction or session state are not well-suited to batch parallelization via command wrapping.
- Strict Commercial License Requirements — GPL-3.0 license requires derivative works to be open-source; closed-source commercial integrations require license review or alternative tools.
License & commercial use
GPL-3.0 (GNU General Public License v3.0). This is a strong copyleft license requiring any derivative work or linked software to be distributed under GPL-3.0 and source code made available.
Interlace itself may be used commercially (e.g., by a penetration testing firm running scans). However, if you modify Interlace or integrate it into a proprietary product, you must release the full source code under GPL-3.0. Closed-source commercial derivatives are not permitted. Internal use (e.g., security team using unmodified tool) is compliant. Requires legal review if distribution or significant modification is planned.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Moderate |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Good |
| Assessment confidence | Medium |
Interlace does not validate or sanitize command inputs; user is responsible for safe variable substitution (e.g., using _safe-target_ to quote values). Parallelization across untrusted networks or targets may cause resource starvation or detection. No authentication, encryption, or privilege isolation; runs as the invoking user. Review generated commands for injection risks before execution, especially when combining user input with _target_ and _port_ variables.
Alternatives to consider
GNU Parallel
Mature, Unix-native tool for parallelizing commands over input lists with robust error handling, job control, and no licensing restrictions (GPL or permissive variants available). Steeper learning curve but more flexible.
xargs (BSD/GNU)
Lightweight, universally available for piping input to parallel jobs. No CIDR expansion, port ranges, or variable templating; requires preprocessing but integrates seamlessly into shell pipelines.
For closed-source or heavily integrated use, writing a minimal multithreading wrapper avoids GPL obligations and provides full control over output, error handling, and feature set.
Build on Interlace with DEV.co software developers
Integrate Interlace into your penetration testing pipeline to accelerate enumeration and scanning across large target lists. Check GitHub for setup and examples.
Talk to DEV.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
Interlace FAQ
Can I use Interlace in a commercial penetration testing tool without releasing source code?
What Python versions does Interlace support?
How do I prevent race conditions when multiple threads hit the same target resource?
Is there support for distributed execution across multiple machines?
Custom software development services
Adopting Interlace is usually one piece of a larger software development effort. As a software development agency, DEV.co provides software development services and web development expertise — pairing senior software developers and web developers with your team to design, build, and operate open-source security software in production.
Automate Your Security Scanning Workflows
Integrate Interlace into your penetration testing pipeline to accelerate enumeration and scanning across large target lists. Check GitHub for setup and examples.