Apple Silicon M1 native support

Although this previous feature request has been marked as closed or completed, regarding the growing architecture shift on Mac and regarding the limited performance, this would still be highly appreciated. :slight_smile:

This is the only remaining Intel-only app I regularly run on my Mac. Hoping for a native version sooner rather than later!

1 Like

Just thought that it’d be a good idea to point out that the next beta of Local has a native Apple Silicon download. So this is about to be dealt with.

Pretty sure you meant current beta, Local Beta 6.5.0

2 Likes

Even the latest Local 6.7.0 is still not fully native: nginx, mysqld, and mailhog are all still Intel binaries. What is the status of an update for Local that is fully Apple Silicon native? As it stands, Local is one of just two apps on my Mac that remain at least partially Rosetta-dependent. I presume this is still being worked on, but as more and more updates to Local ship without mention of this in their release notes (and after double-checking in Activity Monitor), and as we draw ever closer to the next WWDC where we may hear about how much longer Rosetta has to exist, I just want an update on the progress of fully completing this feature request.

4 Likes

Hey @alexclst! I just wanted to let you know I’ve shared your comment with our Local Devs. This is something that has been raised inside and outside of the forums and they have had it on their roadmap already. As you noted, WWDC could end up creating a priority shift for this and moving timetables. For the time being, we don’t have a specific ETA or update to provide, but I just wanted to you let know that this hasn’t been forgotten about. We always appreciate the insight of our community!

3 Likes

Second that. First of all I want to express my gratitude and that I’m really thankful for the software in the first place!
Besides Rosetta-dependency especially mysqld uses a lot of RAM.
What I’m just wondering, aren’t these just dependencies (already available as ARM) that would just have to be properly linked at compiling?

Is this feature for Apple Silicon native support still actively on your development roadmap? Since universal binaries for nginx, mysqld, and mailhog should be readily available, it leaves me wondering what specific challenges are preventing their integration into Local. Is the issue related to testing and stability, or are there other technical complexities that the community should be aware of?

Thank you for your ongoing efforts and hard work on this matter. We all appreciate it.

Hey @localster - thanks for reaching out! Yes, it is still actively on our development roadmap. I shared a recent update in another thread last week: macOS Ventura WP-CLI fatal error TypeError: implode() - #20 by austinwendt

The issue is in testing and stability, and frankly juggling those updates with other changes we’re working on in the application with a small team. The portion of the user base on Apple Silicon is still relatively small compared to Intel Mac and Windows, and we’ve been focused on issues/features that are cross-cutting recently. That said, it is coming :slight_smile:

Maybe a naive question on my end - Is the concern with running Rosetta performance? Are you seeing slower speeds in Local than you would like? It is pretty snappy on my personal M2 (I use an Intel Mac for work yet). Or is it more about the principle of not wanting Rosetta running on the machine? And if so, why is that?

3 Likes

One detail I’ll add that I forgot in my last post - there is some technical complexity that we’ll have to account for. Local uses sudo prompt in several places to take actions in Local today. Sudo prompt is not compatible with Apple Silicon, so we’ll have to identify an alternative and plug that in before we can just drop in new binaries.

1 Like

@austinwendt I can answer for myself… It is somewhat two-fold:

  1. As you say, some of it is principle and the fact that Local is all that still uses Rosetta on my Mac, although I know that I see no noticeable performance issues on my M1 Mac mini, so I’m not too worried. I just know, in part from having some of them installed via Homebrew, that all the remaining “lightning services” do indeed have ARM versions available.
  2. I know that someday Apple will drop Rosetta 2 entirely, maybe not soon (it is still in Sonoma, indeed Local itself works great there, and a few Intel Macs are still supported), but someday. I don’t want to see Local die with Rosetta. So I hope that work continues, and you all are prepared to jump into prioritizing this much higher over a summer as soon as Apple announces (likely at some WWDC) that Rosetta will be dropped from that next Fall’s update. But that won’t likely be for at least a year or two.

I do have one question about your latest comment: What is sudo prompt? If the underlying lightning services are native, and as far as I know the main app plus PHP are, where does another tool come in? Certainly Local is doing just fine asking for my admin credentials to edit /etc/hosts and such. Is that part actually not Apple Silicon-native yet?

2 Likes

Awesome… M1 and M2 is Stunning Processor

1 Like

This probably just refers to the sudo prompt regarding permissions when executing commands.

1 Like

Thank you @austinwendt and sorry for my late reply.

I’m very happy to hear that this is still on the roadmap. :slight_smile:
And yes it appears to actually affect performance to a noticable degree, especially regarding mysqld.
I’ve tested this on M1 and M2.
Yet as you know it’s difficult to put this in perspective as this actually depends a lot on individual amount of RAM.
Rosetta 2 tends to use quite a lot more RAM.
So if you have a big databases with heavy mysqld usage, you might using your Swap sooner, which affects performance, as well as tear on the SSD.

Quick perspective update from me as well: I’ll gladly admit it’s mostly about having a “clean” macOs, i.e. without any Rosetta overheads. But it’s also that when I compared using WP backend of the same site using Laravel Valet (fully Apple Silicon-native since what feels like forever) vs. LocalWP (only PHP is native), Valet was significantly faster – which is why I install LocalWP from time to time, quickly test it, but then stay on Valet.
Reasons to switch back to Local would be: a) I’m very much a GUI person and don’t have much love for the gazillions of services Brew installs and presumably runs and b) LocalWP generally does a lot right, stuff like save site to cloud or even save DB to file when stopping a site are sorely missed on bare-bones Valet.

I don’t understand why the Apple silicon version of Local (currently at v8.1.0) still uses Intel binaries on arm64 (i.e. Apple Silicon) processors. Arm64 binaries for nginx/mysql/etc. have been available since forever. It’s getting ridiculous at this point.

For those who don’t want to use Valet because you have to mess around with Homebrew, try Herd instead.

@austinwendt To answer your question:

Maybe a naive question on my end - Is the concern with running Rosetta performance? Are you seeing slower speeds in Local than you would like?

The primary reason for me is battery life. When I have Intel processes running, the battery time is significantly reduced.

2 Likes

Thanks @pryley for the heads-up re: Herd – that’s the way it should be for macOS users, no Homebrew / Composer shenanigans and no Electron overhead.
Now if only Herd understood WP Multisites…

Spoke too soon: the «Using Laravel Herd to Set Up Local WordPress Dev Environment» conveniently leaves out any mention of a database, so I thought they’re somehow included. Silly me.

@philby For the database, you can use DBngin if you don’t want to mess around with homebrew.

Multisite works fine for me in Herd.

DBngin is a database management tool for your local development environment. It lets you setup MySQL, PostgreSQL, and Redis databases with a single click.

It’s as easy to use as Herd and comes with a clean and slick UI.

Thanks for the context on battery life - definitely a valid concern!

The engineering team met on this this week and identified the 3 things we need to do to resolve this. Here’s our approach:

  1. Replace Mailhog with Mailpit in Local; rather than compile an abandoned tool for Silicon, we should switch to an active, community-supported alternative.
  2. Compile Silicon binaries of MySQL, nginix, and Apache with Local + associated logic to point to them when the user is on the Silicon build.
  3. Identify an alternative (or make it work with Silicon somehow) for sudo-prompt as I mentioned above. @localster was right, this is just the package that provides appropriate permissions when executing commands, particularly in Local for editing /etc/hosts.

The team is going to start in on this this month; the good news is that they can all be worked on concurrently, and performance should improve at each step (particularly with MySQL and nginix, is my read).

I don’t anticipate we’ll be fully free of Rosetta by the end of the year, by any means - but it is good to start knocking out pieces!

5 Likes

It’s now almost 4 years since Apple announced their Silicon, and LocalWP still installs Intel executables. Took about 2 minutes to install and uninstall 8.3.1 :nerd_face: