.. _open-source:

===========
Open Source
===========

.. contents::
  :depth: 2 
  :local:

The Internet was built on free and publicly available code, with the values of collaboration, peer review, communication, and openness built into its very foundation. This decentralized model has since evolved into the open source movement, which leverages these values to discover innovative ways to solve problems across boundaries and industries.

Open source software centers around the concept of user freedoms: freedom to view, use, modify, and redistribute the code to suit the needs of the user. While this does not necessarily mean free to use, it generally leads to software that is be better, cheaper, and more flexible on account of it being freely accessible, openly modifiable, and easily shared.

If anyone can inspect, modify, and distribute the code, bugs tend to be more rapidly identified and resolved, while security vulnerabilities are also more quickly audited and exposed. Community driven development efforts enable diverse collaboration which increases project reliability and longevity.

On the opposite end of the spectrum from open source software is proprietary, or closed source, software. Closed source software is strictly moderated, cannot legally be altered, copied, or distributed, and is paid for to be used as intended without modification. Only the owners of the code have the right to access the code.

As a company founded on the principles of freedom, openness, and decentralization, every service we support is open source. We are committed to acitively contributing to the future of this vibrant and passionate ecosystem.

Open Source ideas explained in `Lego <https://www.youtube.com/watch?v=a8fHgx9mE5U>`_.

  .. youtube:: a8fHgx9mE5U
    :width: 100%

Dependencies
------------
A software dependency is a code library or package that is reused in a new piece of software. The benefit of software dependencies is that they allow developers to more quickly deliver software by building on previous work.  Software may even require its dependency to be configured in a particular way.

Traditionally, managing dependencies has been a massive headache and has served as a huge barrier to running a personal server. But no more! The embassyOS dependency management system makes the process simple and accesible.

If a service has one or more dependencies, or a dependency needs to be configured in a particular way, your Embassy device will inform you and provide an automated solution, giving details of what will be done so you can make an informed decision before taking action.

Sometimes, a dependency can be satisfied in multiple ways. For example, Lightning has a dependency on Bitcoin. This does not necessarily mean you need to have Bitcoin installed on your Embassy. You could just as easily configure Lightning to use another Bitcoin node located somewhere else!
