Home / Tools / Faxien / Introduction

Faxien Icon

Overview

Faxien provides elegant Erlang/OTP package management which at its heart comes down to two things;

  1. Allow users to easily find and install OTP packages.
  2. Allow users to easily publish their own work so others can benefit from it.

Features

The main reasons to use Faxien are:

Whats in a Name?

In this day and age being able to google a name is important, so we pick names like Sinan for that reason. All the obvious names for a tool like Faxien, things such as "bring" and "get", wont come up too easily on a search. Secondly, Sinan has started a tradition here at Erlware that we intend to continue, naming projects after an ancient historical figure that relates on some way to the goal of the project. What about OTP Base then, you may say "but that does not fit...?" Well, in this case ancient and venerable 6 year old apps like OTP Base get a pass on this :-)

Faxien (Fa-hsien) was one of China's most prolific travelers of the fifth century. He walked from central China in AD 399, across the Taklamakan desert, over the Pamir Plateau, and through India down to the county of Tamluk. He then took a ship and returned by sea to his homeland China in AD 413. He did all of this starting at the age of 65. Faxien brought knowledge to the places he traveled to and returned with knowledge from those places which he delivered to his homeland. We like to think of our Faxien tool a bit like that. It brings knowledge from code repositories far and wide so your local applications and releases can benefit, and it spreads the knowledge and benefit of your local packages to distant repositories wherein others may benefit.

Faxien (OTP) Packages

Faxien deals with two types of packages, OTP applications and OTP releases. Both of these packages conform to OTP standards. In a nutshell applications are a collections of code, typically Erlang modules, with related functionality. An application typically relies on other applications and does not run on its own. For example Mnesia is a database application but it depends on sasl, erts, kernel, and stdlib in addition to its own code for functionality. Mnesia on its own would not stand up and run until all applications it depends on are up and running.

There is more information about writing applications in Sinan's reference page. For a complete description of Erlang OTP applications, take a look at the official OTP documentation.

A release, on the other hand, is a collection of applications and configuration that stand up and run on its own. If you wanted to write a service in Erlang that would sit on your network somewhere you would do it with a release. A release is generally a collection of applications, configuration, and executable startup code, that all conform to the OTP standards for releases. Faxien is a powerful tool to automate the installation and publication of entire releases.

There is also more information about configuring releases in Sinan's reference page and in the official OTP documentation.