Migrating from GNS3
GNS3 has been the free entry point to network labs for over a decade. Two things it does really well: an enormous public appliance registry, and Dynamips-based routing for classic IOS you cannot legally run any other way.
Labtris imports the GNS3 registry directly, so every appliance definition (228 of them) becomes a Labtris template without you re-authoring anything. The rest of this page maps concepts and calls out the differences that matter.
Last checked against GNS3 3.0.6 stable, 2.2.61 on the maintained 2.2 branch, and the 3.1.0a6 pre-release in October 2026. Comparisons go stale; if something here is wrong now, please say so.
What changes if you switch.
The differences worth knowing before reading anything else. The concept map further down answers the other question — where each thing you already use ended up.
- GNS3
- GPL-3.0. Copyleft — it sets terms on whatever you build around it.
- Labtris
- MIT. Which is also why GNS3 was not used as the base for this: the licence, not the engineering.
- GNS3
- The Qt desktop client is still the complete one. 3.0 bundles a web UI, but a workstation install is the default path.
- Labtris
- A browser. Nothing on your workstation.
- GNS3
- 228 community-maintained definitions — the most valuable asset in this category.
- Labtris
- The same 228. Labtris imports the GNS3 registry natively rather than competing with it.
- GNS3
- Dynamips and IOU — real IOS emulation nothing else does, and why a lot of labs cannot leave.
- Labtris
- Roadmap. The runtimes today are QEMU and Docker.
- GNS3
- An AI copilot and an MCP server, still in the 3.1 alphas (a6, September 2026).
- Labtris
- Shipping, MCP-native. The gap here is months, not architecture.
- GNS3
- Wireshark, locally installed. A browser Wireshark is in the 3.1 alphas.
- Labtris
- In-browser Wireshark streamed from the server, or a raw pcap stream.
- GNS3
- NIO filters at the node interface — awkward per link, and not asymmetric.
- Labtris
- Yes — per-direction netem and tbf on a first-class link.
Two of these go to GNS3, and they are not small: the registry and Dynamips are the reasons most GNS3 labs stay where they are. The 3.1 alphas are aimed at much of the rest of this table, so it is worth re-reading when 3.1 ships stable.
Keep using these ideas.
- The appliance registry. 228 community-maintained definitions covering almost anything you might want to boot — the single most valuable asset in this category, and Labtris imports it rather than competing with it.
- Dynamips and IOU. Real Cisco IOS emulation that nothing else does, and the reason a lot of labs cannot leave.
- GPL-3.0, a long history, and the largest user community of any network emulator.
- 3.0 ships a bundled web UI and a real permissions model — projects have owners and audit rights, not just whoever has the shell.
- 3.1 is building an AI copilot, an MCP server and Wireshark in the browser. Still alpha — 3.1.0a6 in September 2026, with no stable 3.1 yet — but they are heading for the same ground this page claims.
The reasons to look elsewhere.
- The desktop client is still the complete one. 3.0's web UI is real and bundled with the server, but the Qt app remains the reference, so a workstation install is the default path.
- Impairment support is via node-level `NIO filters` — awkward per-link, not asymmetric.
- Multi-host means a GNS3 server on each machine behind one controller. It works; there is no overlay, so the machines have to be able to reach each other directly.
- The registry is the appliance model: editing what a template does means re-authoring a `.gns3a` rather than changing a field.
What you know, and what it’s called here.
Same primitives, mostly. A few things are actually different — those get their own row.
- Client
- GNS3
- GNS3 desktop (Qt), or the web UI bundled since 3.0
- Labtris
- Browser only. Nothing to install on your workstation.
- Appliance format
- GNS3
- `.gns3a` JSON in a public registry
- Labtris
- Native import of the whole GNS3 registry — 228 definitions become templates
- Templates
- GNS3
- Fixed per definition; edits require re-authoring the `.gns3a`
- Labtris
- JSONB row, every field editable from the palette
- Console
- GNS3
- Local terminal (telnet), or a browser tab via HTML5 console
- Labtris
- Serial in xterm.js, VNC/RDP via Guacamole — all in the same browser
- Users
- GNS3
- Accounts with per-project permissions since 3.0
- Labtris
- Accounts and roles; destruction reserved to the lab's owner. Much the same idea
- Impairment
- GNS3
- NIO filters at the node interface
- Labtris
- First-class link → per-direction netem + tbf
- Capture
- GNS3
- Right-click a link → Wireshark, locally installed. A browser Wireshark is in the 3.1 alphas
- Labtris
- In-browser Wireshark GUI streamed over VNC, or a raw pcap stream to a JS dissector
- Dynamips
- GNS3
- Native — one of GNS3's raison d'être
- Labtris
- Roadmap. The runtimes today are QEMU and Docker.
- IOU
- GNS3
- Supported, iourc-based licensing
- Labtris
- Roadmap. Same iourc shape when it lands.
- Multi-host
- GNS3
- Multiple GNS3 servers behind one controller
- Labtris
- Register another host, VXLAN builds the tunnel across them
- Assistant
- GNS3
- An AI copilot and an MCP server, both still in the 3.1 alphas (a6)
- Labtris
- Shipping today, MCP-native. The gap here is months, not architecture
- Licence
- GNS3
- GPL-3.0-or-later
- Labtris
- MIT (the emulator)
Importing existing topologies.
The GNS3 registry. git clone https://github.com/GNS3/gns3-registry then POST /api/v1/system/registry/import with the path. Labtris parses every appliance definition and creates a template with the right RAM, NIC model, disk bus, iface scheme, console type, and — importantly — the URL to download the image from. It previews before applying, and tells you how many need a vendor login vs how many are open.
Topology files (.gns3). Not imported today. The shape is JSON but its schema is different enough that a real importer is a small project rather than a one-liner. If you need it, open an issue with one of your projects attached and we will look at it.
Docker images. Every GNS3 Docker template works — same `docker pull <image>` machinery on both sides. No template authoring needed on Labtris; drop the image name in and go.
Copyleft.
GNS3 is GPL-3.0-or-later. That is a deliberate choice and a defensible one — it guarantees every derivative stays open, which is exactly what a decade-old community project should want. Most people who run GNS3 never feel it.
You feel it when you want to embed rather than run. Link GPL-3.0 code into your own tool and your tool carries the same terms; there is no vendoring a piece of it into a BSD-licensed test harness, a vendor’s internal CI, or a product with a closed component. Labtris is MIT for that reason and no other: take the emulator, put it inside whatever you are building, ship it under your own licence, keep your changes if you want to. No conversation, no exception, no dual-licence form.
The cost is not theoretical. Their skills repository is GPL-3.0 as well, so ours is written from scratch rather than adapted from the work they had already done — slower for us, and no better for anybody reading either one. It is MIT, so you can take it into a GPL project; the reverse was not available to us.
If you are running a lab, this changes nothing and you should pick on the features. If you are building something that has a lab inside it, it is the whole decision.
Try Labtris.
Private beta: ask for access, install with the token you get back. No telemetry, no lock-in; the code you receive is MIT.