Elixir and Phoenix can do all of it! · The Phoenix Recordsdata
We’re Fly.io. We run apps for our customers on {hardware} we host world wide. Fly.io occurs to be an important place to run Phoenix purposes. Take a look at easy methods to get started!
As an Elixir/Phoenix developer occurring 10 years it is rather straightforward to take without any consideration every little thing that Elixir and Phoenix can do for us. So I needed to take a step again and record all the stuff that we get free of charge once we select Elixir and Phoenix.
My objective with this submit is dump an record of data and hyperlinks and allow you to select your personal path. In case you are unfamiliar with any of those matters or Elixir and Phoenix please click on any of those hyperlinks and take a peak, I feel you could be shocked on the high quality and depth of what you discover!
The inspiration for this submit was a Saša Jurić re-tweet the place he shared the next slide from his GOTO Conference Talk.
This picture enumerates among the technical necessities that the Erlang Virtual Machine can exchange in your tech stack. To not say that these different initiatives can’t do these items properly, they’ll and do in our personal stack right here at Fly.io. The purpose is that in these ecosystems you have to resolve these issues within the first place, when reviewing this text José Valim stated it finest:
eradicating the issue altogether as a substitute of fixing the issue
The BEAM
This above list doesn’t even cover the built in support for incredible bits like:
- Actor Process Model, meaning do to concurrency you have a Process and it sends messages to other processes. No Shared memory. Fully managed by the BEAM’s built in scheduler. Millions of processess are no issue. Fearless concurrency!
- Distribution: meaning two servers can communicate seamlessly and automatically. It just works and is incredible.
- RPC: Calling a perform or course of remotely is as straightforward as calling an area one, no must concern ourselves with connections or serialization or deserialization. This is among the many causes Fly is so dedicated to utilizing Elixir and Phoenix, the wireguard based network and globally internet hosting makes utilizing this trivial and fascinating.
- Parallel Rubbish Assortment, that means the VM is Mushy Actual Time, minimal pausing!
- Emphasis on low useful resource utilization on the whole
- Inbuilt UDP/TCP/SSL server assist.
- Inbuilt Key Worth Retailer ETS.
- Tooling for tracing and observing your code.
- 37 Years of fixed improvement and manufacturing use.
The fantastic thing about this record is that if Elixir and Phoenix staff have executed our Job proper you don’t want to consider any of this in any respect. It simply works for you and allows you to stand on the shoulders of this big.
Elixir
If we go higher level the Elixir programming language provides us even more as developers:
- A full dependency management and build tool with mix and Hex.
- With trendy tooling in-built:
- Language with a clear, documented and absolutely exampled Standard Library. Its exceptional how little cruft there may be on this Language. Go into another language to search out random capabilities or modules which can be marked don’t use, or with out examples or documentation. Not the case for Elixir.
- Fashionable Documentation:
- Inbuilt Cheatsheets
- Inbuilt Customized Markdown
- Hyperlinks to supply
- Search
- Help for Mermaid, Math.js, Vega-Lite and extra!
- Fashionable language options like:
That is only a subset of what Elixir the Language gives. It doesn’t embody the deep catalog of libraries inside package deal registry Hex enabling a lot extra.
Some examples from Hex:
- Machine Studying with Bumblebee with HuggingFace integration and it really works with batching and distribution globally.
- Math/Science corresponding to NumPy utilizing Scholar.
- Advanced distributed massive knowledge processing utilizing GenStage or Broadway
- Embedded and IoT Programming utilizing Nerves.
- Stream-Data for property and generative based mostly testing.
- Sobelow for safety and static Evaluation.
- Oban for a Employee/Job Queue implementation.
- Req for prime stage HTTP Shoppers.
- Plug for HTTP Servers.
- Bandit for pure Elixir HTTP1/2 Server!
- LiveBook for Juypter like workbooks with Elixir!
- Membrane for video stream processing.
- Decimal for arbitrary precision decimal arithmetic.
- Jason for extremely performant JSON Encoding/Decoding.
- Image for picture manipulation.
- CLRD for perhaps the most full Internationalization and Locale libraries exterior of perhaps the Net Browser. Numbers, Checklist, Models, DateTimeDateTimes, Collation, Territories, and extra.
- Rustler and Zigler for really easy Rust and Zig FFI assist, for when you’ll want to drop down and bash bits.
There’s little or no that the Elixir Ecosystem hasn’t tackled!
Phoenix and LiveView
The fun doesn’t stop there because Phoenix simply builds on all of his incredible tooling to provide us with:
Just going through this list there is everything you’d need to start a company or build a website to solve nearly any problem. Coupled with the BEAM’s ability to scale from the smallest server to a globally distributed network with millions of customers on every continent! I may sound a little breathless but I am out of a breath just collating all of these links.
Wrap up
Stepping back it’s incredible that a small team is able to accomplish so much. Every one of Phoenix’s incredible features is built on the shoulders of the fantastic Elixir project underneath. Further backed by 37 years of constant development by the Erlang project.
If you haven’t looked into Phoenix or Elixir I urge you to explore any one of the above links that catch your eye. Installing and setting up Elixir has never been easier with LiveBook or Natively!