GitHub - stricaud/wpcapng: web pcapng viewer · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
stricaud
wpcapng
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>27 Commits<br>27 Commits
.github/workflows
.github/workflows
libpcapng @ 122a178
libpcapng @ 122a178
public
public
scripts
scripts
src
src
.gitignore
.gitignore
.gitmodules
.gitmodules
LICENSE
LICENSE
Makefile
Makefile
README.md
README.md
index.html
index.html
package-lock.json
package-lock.json
package.json
package.json
tsconfig.json
tsconfig.json
tsconfig.node.json
tsconfig.node.json
vite.config.ts
vite.config.ts
View all files
Repository files navigation
wpcapng — Wireshark for the web
Open, dissect and analyse .pcap / .pcapng capture files entirely in your<br>web browser . No install, no server, nothing is uploaded — the file is<br>parsed in-memory by libpcapng compiled<br>to WebAssembly.
Packet list with Wireshark-style summary columns and protocol coloring
Detail tree — full protocol dissection with field abbrevs
Hex view with byte highlighting synced to the selected field
Custom dissectors — add your own declarative (posa) decoders at runtime;<br>they persist in your browser (localStorage)
Reads both classic .pcap and .pcapng
No live capture (a browser can't sniff the wire) — this is for analysing<br>saved captures, which is what libpcapng's OS-independent dissection engine<br>does.
Architecture
.pcap / .pcapng ──► libpcapng (C) → WebAssembly ──► React UI<br>(in browser) bindings/js, no capture.c 3-pane view
The WASM engine is the bindings/js<br>build of libpcapng.
Develop
# 1. Build the WASM engine from a sibling libpcapng checkout (../libpcapng),<br># a submodule (./libpcapng), or $LIBPCAPNG_DIR. Needs Emscripten.<br>npm run sync-wasm
# 2. Install and run<br>npm install<br>npm run dev
Then open the printed URL and load a capture.
Deploy (GitHub Pages)
.github/workflows/deploy.yml builds the WASM bindings and the site and<br>publishes to Pages on every push to main. It expects libpcapng as a git<br>submodule so CI can build the engine:
git submodule add https://github.com/stricaud/libpcapng.git libpcapng<br>git commit -m "Add libpcapng submodule"
Enable Settings → Pages → Source: GitHub Actions . The site is served at<br>https://.github.io// (Vite's base is set from the repo name in<br>CI; override locally with BASE_PATH).
Roadmap
Real Wireshark-style display filters (tcp.port == 443) — needs the<br>libpcapng filter engine exposed through the JS bindings
Statistics (protocol hierarchy, conversations, endpoints, IO graph)
Follow TCP/UDP/TLS stream
Export displayed/selected packets
Virtualised packet list for very large captures
About<br>web pcapng viewer<br>Resources<br>Readme<br>MIT license<br>Activity<br>Stars<br>2 stars<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository
Releases
Packages
Contributors
Languages
You can’t perform that action at this time.