perl-dap
Use this crate when you need a native Debug Adapter Protocol server for Perl, not just debugger helper components.
perl-dap is the runtime layer of the debugger stack. It speaks DAP over stdio
or TCP, dispatches requests, validates breakpoints, and renders values for
DAP-capable editors and tools.
Boundaries
perl-dap-platformfinds the Perl executable, normalizes paths, and builds launch environment maps.perl-dap-shellformats shell-safe launch arguments and environment values.perl-dap-typescarries shared frame, source, and variable models.perl-dap-valuemodels debugger values for rendering.perl-dap-breakpointvalidates whether a source line can accept a breakpoint.
Key pieces
DapServer,DapConfig, andDapModewire the server and its launch mode.DapDispatcherandDebugAdapterhandle request routing and protocol state.BridgeAdaptersupports migration fromPerl::LanguageServer.TcpAttachConfigandBreakpointStoresupport socket attach and breakpoint tracking.
Run modes
- Native launch (stdio DAP server):
- TCP attach endpoint (native DAP over socket):
- Legacy bridge mode (proxy to Perl::LanguageServer):
External dependencies
Native launch and TCP attach use the built-in Rust runtime plus a local Perl installation.
--bridge mode additionally requires the CPAN module Perl::LanguageServer.
Install it with either:
You can verify availability with:
Benchmarks
# Full benchmark suite (config/platform + live session groups)
# Filter to live-session groups (stable names for diffing)
Live-session benchmark function names:
launch_coldlaunch_warmattach_loopbackset_breakpoints_100step_continue_p95stack_trace_livevariables_rootvariables_child_pageevaluate_safe_blockedevaluate_live_simple