npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@mixemulator/lib

v1.0.1

Published

MIX Emulator Library

Downloads

2

Readme

MIX Emulator Library

The backend part of MIX Emulator, a web-based emulator of MIX, the mythical computer invented by Donald Knuth for his book series "The Art of Computer Programming". The library supports assembling and executing programs for MIX, inspecting memory and register contents, working with (virtual) peripheral devices, and traversing execution flow in forward and backward direction. Programs may be executed in either the binary or the decimal mode (which differ in the byte size). Working with devices includes checking correct synchronisation of input/output operations: the emulator fails when the result of an operation is undetermined (e.g., on an attempt to write data to the memory block that is sent to a device without ensuring that the output operation has completed).

The terminal device and floating-point operations are not supported currently.

It is a cross-platform library, written in Scala and transpiled into JavaScript with Scala.js. The JavaScript code is accompanied by .d.ts type definitions.

Usage

  1. Subclass BlockAccessFileOps, LineAccessFileInputOps, and LineAccessFileOutputOps and implement the declared input/output operations using the storage you like.

  2. Pass instances of the input/output implementation classes to DeviceFrontEnd$.create and get an instance of DeviceFrontEnd.

  3. Use one of the methods defined in VirtualMachineFrontEnd$ to create an instance of VirtualMachineFrontEnd.

  4. Use the instance of VirtualMachineFrontEnd to execute the program and inspect the virtual machine state.

Reference

If the emulator is useful in your research, consider please referencing the following paper:

Batdalov, R., Ņikiforova, O. Implementation of a MIX Emulator: A Case Study of the Scala Programming Language Facilities. Applied Computer Systems, 2017, 22, pp.47-53. ISSN 2255-8683. e-ISSN 2255-8691. Available from: doi:10.1515/acss-2017-0017