01 · Viewers
Open a netlist, see the schematic. Nothing is written until you save
A viewer opens a SPICE or Spectre netlist with RNL records, with the files it includes, draws each level of the circuit, and shows the netlist text, the problems and the hierarchy beside it. A netlist’s text in the clipboard opens too: File › Load from Clipboard shows the text first, and opens it when you confirm.
Draws every level
The top level and each subcircuit are drawings of their own, shown one at a time; drag to move, scroll to zoom. Double-click a subcircuit instance to open its drawing; Backspace goes back up.
The netlist text
The netlist and the files it includes, with the RNL records and the netlist’s statements highlighted; statements that do not take effect have a soft background. While a subcircuit is drawn, the text outside its definition is dimmed, and entering the subcircuit brings the start of its definition into view.
Problems
Errors, warnings and hints are listed below the text; click one to see its line. The line numbers of those lines are colored too.
Hierarchy
The tree of instances under the top level, and below it every subcircuit by name, grouped by initial, with a search box; pick one to open its drawing.
Drawing and text, linked
Click an instance or a wire in the drawing, and the text marks its statement and every place that names it; click the text, and the drawing selects it.
Objects not drawn
Objects without a position (or without a symbol) are not drawn; the Not drawn view of the side panel lists them with their symbols and terminal nets, searchable by name, and clicking one highlights its statement in the netlist. The status bar reports how many objects are not drawn, and clicking that message opens the view.
Edit, apply, save
Both viewers edit the netlist’s text. A change does nothing by itself: it is drawn when you apply it and written when you save it, and nothing solves by itself.
Edit the text
Edit › Edit Text (Ctrl+Q, the Control key on macOS too) turns the netlist view into an editable text box with line numbers for each file. Unsaved changes are marked with a dot beside the file path, and the bar above the text indicates when changes have not been applied yet. Edit › Discard Changes drops unapplied changes and exits editing.
Apply
Edit › Apply and Exit Editing (Ctrl+Enter) rebuilds the netlist from the edited text, redraws the schematic, refreshes the problems list and hierarchy while keeping the current level, view and selection, and exits editing. If the build fails, your edits remain open and the viewer reports why.
Save
File › Save (Ctrl+S; File › Download File in the web viewer): the desktop viewer writes only the edited files back where they were read, preserving each file’s encoding and line endings; the web viewer cannot overwrite local files, so Download File downloads the file shown. With unsaved changes, the viewer asks before opening another file, reloading or closing.
Both viewers draw the same schematic: one Rust core decides where every line and every piece of text goes, natively on the desktop and as WebAssembly in the browser, and lays out text in the fonts it ships.
02 · Web viewer
The web viewer: nothing to install
In the Library sidebar tab (the first tab), opened files are added to the Files group without duplicates. Include File and Include Folder add files to the Library without opening them, while Exclude removes a file from search without closing the current document. Include Public Package adds hosted packages such as SKY130 from this site without using the GitHub API. Files starts expanded and the read-only Built-in group (standard series 0.3 and 0.2) starts collapsed; collapse state lasts for the session, and root-file rows are highlighted. Pasted clipboard text appears as a single temporary · not searched row outside lookup—click it to return to its last applied text, paste again to replace it, or close it to clear it. Because browsers cannot search arbitrary local PATH directories, the web viewer resolves includes and packages from the Library.
The web viewer is a static web page, with the RNL core compiled to WebAssembly running inside it. It opens files or a whole folder from your computer, or a netlist on the web; files dropped on the page open too.
Try these samples
The samples come from RNL’s conformance corpus and are published with the web viewer. Click one and the viewer opens it.
- 04HierarchyA two-stage buffer: a drawing for each subcircuit, drawn as a block symbol one level up, and a file it includes.
- 17Line stylesEvery line style on every kind of shape: dashed, dotted, bold and double lines on rectangles, circles, ellipses, arcs and curves, and on a wire.
Your files stay in the browser
Files you open from your computer are read in the page and uploaded nowhere: the site is only static files, with no server to receive them.
Open a URL
File › Open URL reads a netlist from another web server, and the files it includes from the same place. That server has to allow cross-origin reads (CORS), as GitHub’s raw file links do.
Browsers
Chrome and Edge 109 or later, Safari 16 or later, and Firefox 114 or later (the earliest versions with module Worker support).
The web viewer edits the text and redraws the schematic when changes are applied, as described above. Because a browser page cannot overwrite local files, File › Download File (Ctrl+S) downloads the file shown in UTF-8 with its original line endings. Only the desktop viewer solves; the web viewer has no Solve menu.
The viewer’s address can name the netlist to open, so a link can be shared: viewer/?url=https://raw.githubusercontent.com/…/04-hierarchy.sp opens a netlist on GitHub with the file it includes.
Embedding in another page
Use viewer/?embed=1 in an iframe for a canvas-only interactive viewer. Switch netlists, levels and backgrounds through postMessage without reloading. See the embedding API and example, or try the demo.
The web viewer here is built from the latest commit on the main branch; Help › About RNL Viewer shows its version and commit, and Help › Desktop Viewer leads back to this page.
03 · Desktop viewer
The desktop viewer for Windows, Linux and macOS
The desktop RNL Viewer reads and writes files on disk by their paths: the files a netlist includes are found wherever they are, F5 reads a changed file again, edited text is saved back where it was read, and File › Save As saves the netlist under a new name. It shares the web viewer’s interface and adds a Solve menu for automatic layout.
The desktop Library shows ordered PATH groups between Files and Built-in, initially collapsed, with add, move and remove controls. Expand a group to see .rnl files directly in that folder or one level deep in a version-number subfolder; opening a row also adds it to Files. Directories are rescanned when you open Library and after PATH changes. All settings—including solver, display and PATH—are stored in settings.json in Tauri’s application configuration directory; existing web-view settings migrate on first start, and the exact path to settings.json is shown at the bottom of Library. Includes try their relative path first; bare filenames fall back to the Library and then PATH, emitting a hint that names the resolved file. Packages search the Library, PATH and built-ins, taking the first match for the requested version. Each directory checks name.rnl and version/name.rnl first, then scans other .rnl files for their PACKAGE headers, so filenames need not match package names. A user’s rnl-std can override the bundled copy.
-
Installer
RNL-Viewer-0.5.3-windows-x64-setup.exeInstalls for the current user; the one most people want.
-
MSI package
RNL-Viewer-0.5.3-windows-x64.msiA Windows Installer package, for administrators who deploy it.
-
Portable
RNL-Viewer-0.5.3-windows-x64.exeA single file that runs as it is, with nothing to install.
-
Checksums
SHA256SUMS.txtThe SHA-256 of each file above; compare with what
Get-FileHash FILEgives in PowerShell.
-
AppImage
RNL-Viewer-0.5.3-linux-x86_64.AppImageFor x86_64 systems on Ubuntu 22.04 or newer. In the download directory, run
chmod +x RNL-Viewer-0.5.3-linux-x86_64.AppImage, then./RNL-Viewer-0.5.3-linux-x86_64.AppImage. Without FUSE, use./RNL-Viewer-0.5.3-linux-x86_64.AppImage --appimage-extract-and-run. -
Debian package
RNL-Viewer-0.5.3-linux-x86_64.debUbuntu 22.04 or newer; other Debian-based distributions need compatible glibc and WebKitGTK 4.1. In the download directory, run
sudo apt install ./RNL-Viewer-0.5.3-linux-x86_64.deb, then open RNL Viewer from the application menu or runrnl-viewer. Uninstall withsudo apt remove rnl-viewer. -
Checksums
SHA256SUMS.txtDownload the checksums and the package you want into one directory, then run
sha256sum --check --ignore-missing SHA256SUMS.txt.
Open the DMG for your chip, drag RNL Viewer into Applications, then eject the image. The app is ad-hoc signed and is not notarized by Apple. If macOS blocks it, choose Open Anyway in System Settings → Privacy & Security, or for a download you trust run xattr -dr com.apple.quarantine "/Applications/RNL Viewer.app" in Terminal and open it again. To uninstall, quit and move the app to Trash.
In Finder, use Open With → RNL Viewer; Get Info can set it as the default for that file type. Files can also be dropped onto the window. Most shortcuts use Cmd; editing keeps physical Control+Q, and Cmd+Q quits. Settings live in ~/Library/Application Support/io.github.rich-netlist.viewer/settings.json; optionally remove that directory after uninstalling. Verify downloads with the release’s SHA256SUMS.txt and shasum -a 256.
-
Windows, portable
RNL-Viewer-0.5.3-with-packages-windows-x64.zipThe single Windows file with a public-packages folder beside it, in a zip: unpack it and run the file.
-
AppImage, with the packages
RNL-Viewer-0.5.3-with-packages-linux-x86_64.AppImageThe same AppImage as above, with the public packages inside; make it executable and run it in the same way.
-
Debian package of the public packages
RNL-Viewer-0.5.3-linux-public-packages.debFor the viewer’s Debian package above, which looks for them in /usr/share/rnl-viewer. In the download directory, run
sudo apt install ./RNL-Viewer-0.5.3-linux-public-packages.deb. - Apple Silicon, with the packages
RNL-Viewer-0.5.3-with-packages-macos-arm64.dmg - Intel, with the packages
RNL-Viewer-0.5.3-with-packages-macos-x86_64.dmg
The installers above offer the public packages when you install: the Windows installer on a page of its own, the MSI as a feature. These are the other variants, with the packages in the same download. They are the latest versions of the packages of rnl-packages when the release was built; the viewer never downloads them, and Help › Public Packages says which this build has.
- Chinese fonts on LinuxThe UI and netlist fall back to the bundled Noto Sans SC web fonts. GTK native menus, native tooltips and system file dialogs need system Chinese fonts: on Debian/Ubuntu, run
sudo apt install fonts-noto-cjkand restart the app. This also applies to AppImage. - WebView2The desktop viewer needs the Microsoft Edge WebView2 runtime, which Windows 10 and 11 have. Where it is missing, it can be downloaded from Microsoft.
- SmartScreenThe files are not code-signed yet, so Windows SmartScreen may say that it protected your PC: choose More info, then Run anyway.
- UpdatesHelp › Check for Updates looks for a newer release.
Solving, as a preview
The desktop viewer’s Solve menu places the objects without a position with the solver of rnl solve. The result is shown in the window only, and the files stay as they are.
A solved preview
Solve › Solve (F9) solves the applied text of the netlist and its included files the same way as rnl solve. It runs in the background so the window stays usable, while the status bar shows the level being solved and a Cancel button. A bar above the drawing notes that this is a preview and the files on disk are unchanged, and the Solve view in the side panel shows the solver’s report—click any entry to jump to its line in the netlist. Solve › Close Preview returns to the file as written.
Save a solved copy
Solve › Save Solved Copy As (Ctrl+Shift+S) saves the result where you choose: one file, offered as NAME-solved.EXT, for a netlist that includes no other file; otherwise a folder with the files solved and the other files read, as rnl solve -o DIR writes them. A place that would replace any file that was read is refused.
The solver’s settings
Solve › Settings configures the solver’s options: the time limit per level, tolerance, grid, beam width, search and router effort, and the objectives that rank placements—which objectives are enabled, their ranking order, and the weights of objectives in the same tier. Constraint priority (low, normal, high) is written in the netlist, not set here. Restore Defaults resets all options to their defaults, and settings persist across launches.
04 · Command line
Download, extract, run
Use rnl to check netlists, render SVGs and solve layouts. No Rust installation is needed; Windows also needs no separate VC++ runtime. The CLI and npm package share the core version, independently of Viewer and the language standard.
- Windows x64
.zip · MSVCExtract, then run
.\rnl.exe --version. - Linux x86_64
.tar.gz · muslStatically linked. Extract, then run
./rnl --version. - macOS · Apple Silicon
.tar.gz · arm64For Macs with Apple Silicon.
- macOS · Intel
.tar.gz · x86_64For Macs with Intel processors.
SHA256SUMS.txt: verify the archive's SHA256 before running it. rnl --version shows the core version and build commit; use rnl check my.sp to check a netlist and rnl render my.sp -o svg to export drawings.
These links always follow the latest core-v* release. Files are unsigned: Windows may show SmartScreen; macOS browser downloads may need xattr -d com.apple.quarantine rnl. Linux arm64 currently needs a source build. See the CLI guide for download, extraction and checksum commands.
05 · Virtuoso export
Export Virtuoso schematics to RNL
rnl-virtuoso adds RNL → Export RNL... to Virtuoso’s schematic editor and File → Export → RNL... to the CIW. It exports one cell or a whole library, keeping hierarchy, custom block symbols, placement, orientation, wires and buses, and draws with the eda-symbol and eda-style packages.
- Linux x86-64
.tar.gzDownload it from the releases page and extract it on the Virtuoso host; Cadence’s own exporters and their licenses are needed there.
- Install and use
READMEThe steps, the menus and the options are in its README.
- RISCA reconfigurable ADC
galleryAn RNL case actually exported from Virtuoso.
06 · Toolchain
The RNL toolchain: read, solve, draw, edit
The toolchain keeps “understanding RNL” and “turning intent into coordinates” in separate modules: you can view a drawing without a solver and solve only when needed. What exists today: the runtime, the host adapters, the renderer and the command line, the two viewers above, and a first version of the solver, in rnl solve and the desktop viewer. Pick a path to see how data flows; click a module to see what it does.
07 · Licenses
Open source, free to use
The source of the viewers and of the whole RNL toolkit is public on GitHub.
MIT
The viewers’ code is under the MIT license: use, change and share it freely, keeping the copyright notice.
OFL-1.1
Text in the drawings is laid out and drawn in Noto Sans SC, copyright 2014-2021 Adobe, under the SIL Open Font License 1.1. The core carries the fonts’ metrics, the desktop viewer has the fonts inside, and the web viewer loads what a drawing needs (decision 0009).
Source
On GitHub: the web viewer is in apps/web, the desktop viewer in apps/desktop, the page they share in apps/viewer-ui and the core in crates. What each release changes is in its release notes.