DEV Community

Cover image for Appwrite 0.8: ARM Support
kodumbeats for Appwrite

Posted on

Appwrite 0.8: ARM Support

Appwrite 0.8 brings support for ARM64 processors - you can now install Appwrite on Amazon's Graviton2 instances, Apple M1 systems (without Rosetta 2), Raspberry Pi 4 SoCs, or any other 64-bit ARM device! To appreciate ARM's position in today's computing, let's take a brief tour of the history of CPU architectures.

Appwrite is an open-source, self-hosted Backend-as-a-Service that aims to make app development easier with SDKs available in a variety of programming languages. We love chatting about Appwrite, Aliens 👽 or Unicorns 🦄 over at Discord.

Beginning with the 8086

Alt Text

Photo by Thomas Nguyen - Own work, CC BY-SA 4.0,

The Intel 8086 processor was released in 1978 and was carried into households with the widespread success of the IBM 5150 Personal Computer, the PC. Intel then built on the success of the 8086 with following processors: the 80286, 80386, 80486, and more, all the way through Pentium and beyond. The set of instructions used to command these processors, known now as "x86", is still supported on chips today - any assembly program written for the 8086 will run out-of-the-box on modern Intel processors, albeit much, much, much faster.

Ever wonder how AMD is able to make x86-compatible processors without lawsuits from Intel? The legal landscape around the x86 architecture is fascinating - check out this commentary from Harvard Law to learn more.

The first "x86" instruction sets supported very basic processor-level operations: reading/writing from memory, basic arithmetic, and control flow logic, to name a few. To meet ever-growing computing demands, Intel needed to expand the x86 instruction set to handle more complex operations like handling memory in chunks, complicated maths like square root, logarithms, and trigonometry, and more. While the instruction set grew, so too did the power requirements. The computing industry was fine with power consumption, so long as their computers ran faster, that is, until power consumption mattered - the era of smartphones.

The Tale of Two ARMs

Smartphones require a specific balance of power consumption and performance, and x86 processors didn't fit the bill - the complex x86 instructions required extra electricity, logic gates, and silicon surface area, and mobile computing had opposite requirements. RISC (Reduced Instruction Set Computers) processors took a more specialized approach: only include the basic instructions required for a modern computer, and make those instructions highly optimized.

ARM, an English semiconductor company, designs RISC instruction sets and licenses them to manufacturers to handle production.You probably recognize a few of these manufactors: Samsung, Broadcom, Qualcomm, and NVidia, to name a few. These companies handle the manufacturing and distribution of ARM-based systems, including smartphones, tablets, smart TVs, washing machines, cars, printers, and so much more.

Low-power processors aren't just for mobile/IoT devices anymore, nor are they less capable than x86 computers. Most notably, the Apple M1 (ARM-based) has made a big splash with ARM now powering iPads, Macbooks, Mac Minis, and now iMacs, with other manufacturers set to follow in their footsteps. Amazon has also been a pioneer of ARM in the datacenter - Amazon employs a 64-core(!) Neoverse N1 ARM processor in their Graviton2 virtual servers.

What's Next?

You can get started with your favorite 64-bit ARM device now - follow the installation instructions to get started. The Appwrite community is very excited about Appwrite apps which are now possible thanks to Appwrite on RPi (especially me), and we've installed it on a variety of operating systems: PiOS, Ubuntu, and BalenaOS. You can see Appwrite running on a Raspberry Pi 4 2GB with Ubuntu 20.04:

Alt Text

What are you most excited to build? Do you have any homelab projects which just became easier thanks to Appwrite on ARM? Let us know on Discord, Twitter, Dev.to, or anywhere you find a friendly Appwriter. :) Also, the awesome-appwrite repo keeps growing with new tutorials, demos, videos, and more!

Top comments (1)

Collapse
 
hemangjoshi37a profile image
Hemang Joshi • Edited

I git this error :

hemang@raspberrypi:~ $ sudo docker run -it --rm \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
    --entrypoint="install" \
    appwrite/appwrite:1.2.1
Unable to find image 'appwrite/appwrite:1.2.1' locally
1.2.1: Pulling from appwrite/appwrite
docker: no matching manifest for linux/arm/v8 in the manifest list entries.
See 'docker run --help'.
Enter fullscreen mode Exit fullscreen mode

github.com/hemangjoshi37a