Ask HN: How are you dealing with the M1/ARM migration?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • macpine

    Lightweight Linux VMs on MacOS

  • The biggest challenge was getting multi-arch builds sorted. Ended up putting together a layer on top of QEMU to run both x86-64 and aarch64 VMs (https://github.com/beringresearch/macpine). Have pre-baked VMs with LXD installed on them with main builds taking place inside LXD containers - works pretty well so far.

  • virtual-environments

    Discontinued GitHub Actions runner images [Moved to: https://github.com/actions/runner-images]

  • I'm in a similar boat - love the performance/battery of my M1 MacBook Air, but the ecosystem is just too messy at the moment for me. I have a few tools I need to use that haven't yet been making official Apple Silicon releases due to GitHub actions not supporting Apple Silicon fully yet. The workaround involves maintaining two versions of homebrew, one for ARM and one for x86-64, and then being super careful to make sure you don't forget if you're working in an environment that's ARM and one that's X86. It's too much of a pain to keep straight for me (I admit it - I lack patience and am forgetful, so this is a bit of a "me" problem versus a tech problem).

    My solution was to give up using my M1 mac for development work. It sits on a desk as my email and music machine, and I moved all my dev work to an x86 Linux laptop. I'll probably drift back to my mac if the tools I need start to properly support Apple Silicon without hacky workarounds, but until GitHub actions supports it and people start doing official releases through that mechanism, I'm kinda stuck.

    It is interesting how much impact GitHub has had by not having Apple Silicon support. Just look at the ticket for this issue to see the surprisingly long list of projects that are affected. (See: https://github.com/actions/virtual-environments/issues/2187)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • CoolProp

    Thermophysical properties for the masses

  • For me it's been quite entirely painless. I've even used Time Machine to migrate from a 2012 Intel iMac to an Apple Silicon Mac Mini and it worked perfectly!

    The two pain points:

    1. No support for running older virtualized macOS. I like to test back to 10.9 and need an Intel Mac to do that.

    2. One Python wheel which doesn't have Apple Silicon builds and doesn't build cleanly: https://github.com/CoolProp/CoolProp/issues/2003

  • UTM

    Virtual machines for iOS and macOS

  • Higher Education IT here. For our users that we support, it's been great on the whole... except for those who need to use a VM for the occasional Windows-only desktop app. UTM[1] seems to be the best option (everything else is in technical preview or not supported?) but it's slow as a dog to emulate x86. ARM Windows isn't great either if you want to just virtualize. Suggestions welcome!

    1. https://getutm.app/

  • airbyte

    The leading data integration platform for ETL / ELT data pipelines from APIs, databases & files to data warehouses, data lakes & data lakehouses. Both self-hosted and Cloud-hosted.

  • buildx

    Docker CLI plugin for extended build capabilities with BuildKit

  • Just to follow up on my own question (though I appreciate the siblings):

    I found this article with some overview and example command lines: https://www.docker.com/blog/multi-arch-images/ . As best I can tell, you don't actually need a custom builder. You can just skip the `docker buildx create` and go straight to `docker buildx build` after one workaround below.

    I needed the workaround from this comment to make it work (to install qemu? not sure): https://github.com/docker/buildx/issues/495#issuecomment-754...

    Overall a very slick experience for going from zero to multiarch containers. Well done, Docker.

  • kaniko

    Build Container Images In Kubernetes

  • According to Kaniko documentation [1], they don't really support cross-platform compilation. Do you solve that by having both amd64- and arm64-based CI/CD runners?

    [1] https://github.com/GoogleContainerTools/kaniko#--customplatf...

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Silicon-Info

    Mac menu bar tool to view the architecture of the running application

  • > Curious to see what, if anything, is running under translation

    There's a useful app called Silicon Info on Github (https://github.com/billycastelli/Silicon-Info) and also on the Mac App Store.

    It adds a menu bar icon that switches according to the currently-focused app's architecture.

  • arm64-to-sim

    Transmogrify native iOS frameworks to run in iOS Simulator on Apple silicon.

  • Hasura

    Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.

  • Yes. I'm on macOS, and our stack is Node.js + Postgres + Hasura.

    I use Homebrew for Postgres where IME the version doesn't tend to matter too much as long as it's new enough.

    Node is managed using either nodenv or asdf which both allow you to install multiple versions side-by-side and control which one runs in a given directory using a .node-version file containing the desired version number (I use asdf, most of my colleagues use nodenv - they're compatible with each other).

    Hasura is the only one that's a bit of a pain as they don't provide native binaries at all (only a docker image). So we compile that from source. They do at least provide comprehensive instructions (https://github.com/hasura/graphql-engine/blob/master/server/...), and I didn't have too much trouble even though I'd never used Haskell before.

    The sub-second restarts are totally worth it!

  • xnu

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts