313 lines
18 KiB
HTML
313 lines
18 KiB
HTML
<!DOCTYPE HTML>
|
||
<html lang="en" class="light" dir="ltr">
|
||
<head>
|
||
<!-- Book generated using mdBook -->
|
||
<meta charset="UTF-8">
|
||
<title>Installation - The Element-Call Book</title>
|
||
|
||
|
||
<!-- Custom HTML head -->
|
||
|
||
<meta name="description" content="Element Call - the world’s first decentralised voice and video conferencing solution powered entirely by Matrix!">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<meta name="theme-color" content="#ffffff">
|
||
|
||
<link rel="icon" href="favicon.svg">
|
||
<link rel="shortcut icon" href="favicon.png">
|
||
<link rel="stylesheet" href="css/variables.css">
|
||
<link rel="stylesheet" href="css/general.css">
|
||
<link rel="stylesheet" href="css/chrome.css">
|
||
<link rel="stylesheet" href="css/print.css" media="print">
|
||
|
||
<!-- Fonts -->
|
||
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
|
||
<link rel="stylesheet" href="fonts/fonts.css">
|
||
|
||
<!-- Highlight.js Stylesheets -->
|
||
<link rel="stylesheet" href="highlight.css">
|
||
<link rel="stylesheet" href="tomorrow-night.css">
|
||
<link rel="stylesheet" href="ayu-highlight.css">
|
||
|
||
<!-- Custom theme stylesheets -->
|
||
<link rel="stylesheet" href="ferries.css">
|
||
<link rel="stylesheet" href="theme/2020-edition.css">
|
||
|
||
<!-- MathJax -->
|
||
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||
</head>
|
||
<body class="sidebar-visible no-js">
|
||
<div id="body-container">
|
||
<!-- Provide site root to javascript -->
|
||
<script>
|
||
var path_to_root = "";
|
||
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
|
||
</script>
|
||
|
||
<!-- Work around some values being stored in localStorage wrapped in quotes -->
|
||
<script>
|
||
try {
|
||
var theme = localStorage.getItem('mdbook-theme');
|
||
var sidebar = localStorage.getItem('mdbook-sidebar');
|
||
|
||
if (theme.startsWith('"') && theme.endsWith('"')) {
|
||
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
|
||
}
|
||
|
||
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
|
||
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
|
||
}
|
||
} catch (e) { }
|
||
</script>
|
||
|
||
<!-- Set the theme before any content is loaded, prevents flash -->
|
||
<script>
|
||
var theme;
|
||
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
|
||
if (theme === null || theme === undefined) { theme = default_theme; }
|
||
var html = document.querySelector('html');
|
||
html.classList.remove('light')
|
||
html.classList.add(theme);
|
||
var body = document.querySelector('body');
|
||
body.classList.remove('no-js')
|
||
body.classList.add('js');
|
||
</script>
|
||
|
||
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
|
||
|
||
<!-- Hide / unhide sidebar before it is displayed -->
|
||
<script>
|
||
var body = document.querySelector('body');
|
||
var sidebar = null;
|
||
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
|
||
if (document.body.clientWidth >= 1080) {
|
||
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
|
||
sidebar = sidebar || 'visible';
|
||
} else {
|
||
sidebar = 'hidden';
|
||
}
|
||
sidebar_toggle.checked = sidebar === 'visible';
|
||
body.classList.remove('sidebar-visible');
|
||
body.classList.add("sidebar-" + sidebar);
|
||
</script>
|
||
|
||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||
<div class="sidebar-scrollbox">
|
||
<ol class="chapter"><li class="chapter-item affix "><a href="title-page.html">The Element-Call book</a></li><li class="chapter-item affix "><a href="foreword.html">Foreword</a></li><li class="chapter-item affix "><a href="ch00-00-introduction.html">Introduction</a></li><li class="chapter-item affix "><li class="part-title">Getting started</li><li class="chapter-item "><a href="ch01-00-getting-started.html"><strong aria-hidden="true">1.</strong> Getting Started</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="ch01-01-building-blocks.html"><strong aria-hidden="true">1.1.</strong> The building blocks</a></li><li class="chapter-item "><a href="ch01-02-element-call-hello.html"><strong aria-hidden="true">1.2.</strong> Hello Element-Call!</a></li></ol></li><li class="chapter-item expanded "><a href="ch02-00-installation.html" class="active"><strong aria-hidden="true">2.</strong> Installation</a></li><li class="chapter-item "><a href="ch09-00-element-call-examples.html"><strong aria-hidden="true">3.</strong> Element-Call Examples</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="ch09-01-element-call-hello.html"><strong aria-hidden="true">3.1.</strong> ELement-Call-Hello!</a></li></ol></li><li class="chapter-item "><a href="appendix-00.html"><strong aria-hidden="true">4.</strong> Appendix</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="appendix-01-keywords.html"><strong aria-hidden="true">4.1.</strong> A - Keywords</a></li><li class="chapter-item "><a href="appendix-02-operators.html"><strong aria-hidden="true">4.2.</strong> B - Operators and Symbols</a></li><li class="chapter-item "><a href="appendix-03-derivable-traits.html"><strong aria-hidden="true">4.3.</strong> C - Derivable Traits</a></li><li class="chapter-item "><a href="appendix-04-translation.html"><strong aria-hidden="true">4.4.</strong> D - Translations of the Book</a></li></ol></li></ol>
|
||
</div>
|
||
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
|
||
<div class="sidebar-resize-indicator"></div>
|
||
</div>
|
||
</nav>
|
||
|
||
<!-- Track and set sidebar scroll position -->
|
||
<script>
|
||
var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');
|
||
sidebarScrollbox.addEventListener('click', function(e) {
|
||
if (e.target.tagName === 'A') {
|
||
sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);
|
||
}
|
||
}, { passive: true });
|
||
var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');
|
||
sessionStorage.removeItem('sidebar-scroll');
|
||
if (sidebarScrollTop) {
|
||
// preserve sidebar scroll position when navigating via links within sidebar
|
||
sidebarScrollbox.scrollTop = sidebarScrollTop;
|
||
} else {
|
||
// scroll sidebar to current active section when navigating via "next/previous chapter" buttons
|
||
var activeSection = document.querySelector('#sidebar .active');
|
||
if (activeSection) {
|
||
activeSection.scrollIntoView({ block: 'center' });
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<div id="page-wrapper" class="page-wrapper">
|
||
|
||
<div class="page">
|
||
<div id="menu-bar-hover-placeholder"></div>
|
||
<div id="menu-bar" class="menu-bar sticky">
|
||
<div class="left-buttons">
|
||
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
|
||
<i class="fa fa-bars"></i>
|
||
</label>
|
||
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
|
||
<i class="fa fa-paint-brush"></i>
|
||
</button>
|
||
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
||
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
|
||
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
||
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
||
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
||
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
||
</ul>
|
||
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
||
<i class="fa fa-search"></i>
|
||
</button>
|
||
</div>
|
||
|
||
<h1 class="menu-title">The Element-Call Book</h1>
|
||
|
||
<div class="right-buttons">
|
||
<a href="print.html" title="Print this book" aria-label="Print this book">
|
||
<i id="print-button" class="fa fa-print"></i>
|
||
</a>
|
||
<a href="https://gitea.networkx.de/rzerres/element-call/tree/main/book/{path}" title="Git repository" aria-label="Git repository">
|
||
<i id="git-repository-button" class="fa fa-github"></i>
|
||
</a>
|
||
<a href="https://gitea.networkx.de/rzerres/element-call/tree/main/book/src/ch02-00-installation.md" title="Suggest an edit" aria-label="Suggest an edit">
|
||
<i id="git-edit-button" class="fa fa-edit"></i>
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div id="search-wrapper" class="hidden">
|
||
<form id="searchbar-outer" class="searchbar-outer">
|
||
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
|
||
</form>
|
||
<div id="searchresults-outer" class="searchresults-outer hidden">
|
||
<div id="searchresults-header" class="searchresults-header"></div>
|
||
<ul id="searchresults">
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
|
||
<script>
|
||
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
|
||
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
|
||
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
|
||
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
|
||
});
|
||
</script>
|
||
|
||
<div id="content" class="content">
|
||
<main>
|
||
<h2 id="installation"><a class="header" href="#installation">Installation</a></h2>
|
||
<p>The first step is to install Rust. This is described in depth following
|
||
<a href="https://github.com/rust-lang/book/blob/master/src/ch01-01-installation.md">Rust book Chapter 1</a></p>
|
||
<p>When creating a OrbTk application, we define the needed dependencies to the
|
||
OrbTk crates in the Cargo.toml file of our project. The complile process
|
||
will resolve the references and download the source as needed.</p>
|
||
<blockquote>
|
||
<h3 id="command-line-notation"><a class="header" href="#command-line-notation">Command Line Notation</a></h3>
|
||
<p>In this chapter and throughout the book, we’ll show some commands used in the
|
||
terminal. Lines that you should enter in a terminal all start with <code>$</code>. You
|
||
don’t need to type in the <code>$</code> character; it indicates the start of each
|
||
command. Lines that don’t start with <code>$</code> typically show the output of the
|
||
previous command. Additionally, PowerShell-specific examples will use <code>></code>
|
||
rather than <code>$</code>.</p>
|
||
</blockquote>
|
||
<h3 id="troubleshooting"><a class="header" href="#troubleshooting">Troubleshooting</a></h3>
|
||
<blockquote>
|
||
<p><em><strong>WIP</strong></em>: What are the most common culprits? Can we provide some general, basic solutions</p>
|
||
</blockquote>
|
||
<h3 id="local-documentation"><a class="header" href="#local-documentation">Local Documentation</a></h3>
|
||
<p>OrbTk offers the option to install its documentation locally, so you can read it
|
||
offline.</p>
|
||
<p>Any time a type, a function, a method or a crate is reference by the toolkit
|
||
and you’re not sure what it does or how to use it, have a look at its application
|
||
programming interface <a href="https://docs.rs/orbtk">API documentation</a> to find out!</p>
|
||
<!-- [API documentation]: https://www.redox-os.org/orbtk/doc/en -->
|
||
<!-- [API documentation]: https://github.com/redox-os/orbtk -->
|
||
<h3 id="install-rust-on-linux-or-macos"><a class="header" href="#install-rust-on-linux-or-macos">Install Rust on Linux or macOS</a></h3>
|
||
<p>If you are using Linux or macOS open up an terminal and copy and paste the text below and hit the enter key on your keyboard:</p>
|
||
<pre><code class="language-bash">curl https://sh.rustup.rs -sSf | sh
|
||
</code></pre>
|
||
<h3 id="install-rust-on-windows"><a class="header" href="#install-rust-on-windows">Install Rust on Windows</a></h3>
|
||
<p>Download and run the Rust windows installer from https://www.rust-lang.org/tools/install.</p>
|
||
<h3 id="install-redoxer-redox-os"><a class="header" href="#install-redoxer-redox-os">Install Redoxer (Redox OS)</a></h3>
|
||
<p>If you want build and run your Rust application on a <a href="https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine">KVM</a> capable OS for Redox you can use <a href="https://gitlab.redox-os.org/redox-os/redoxer">redoxer</a>.</p>
|
||
<p>To install Redoxer you have to first install the rust toolchain. After that open up an terminal and copy and paste the text below and hit the enter key on your keyboard:</p>
|
||
<pre><code class="language-bash">cargo +nightly install redoxer
|
||
</code></pre>
|
||
<p>To compile and run your application on Redox OS you should check the Redox OS Book.</p>
|
||
<h3 id="editor-and-ide-integration"><a class="header" href="#editor-and-ide-integration">Editor and IDE integration</a></h3>
|
||
<p>A wide range of editors and IDE’s are providing support for Rust code like</p>
|
||
<ul>
|
||
<li>like syntax-highlighting</li>
|
||
<li>auto-completion</li>
|
||
<li>linting</li>
|
||
<li>lsp support</li>
|
||
</ul>
|
||
<h4 id="vs-code"><a class="header" href="#vs-code">VS Code</a></h4>
|
||
<p>There is a big community that rely on the visualstudio implementation
|
||
to handle their code base. Following are the steps needed to expand
|
||
your installation to support <code>VS Code for Rust</code> development:</p>
|
||
<ol>
|
||
<li>Download VS Code <a href="https://code.visualstudio.com/download">from</a>.</li>
|
||
<li>Install <a href="https://marketplace.visualstudio.com/items?itemName=rust-lang.rust">Rust Language Server plugin</a> (the
|
||
Rust Language Server).</li>
|
||
</ol>
|
||
<h4 id="alternative-editors-and-ides"><a class="header" href="#alternative-editors-and-ides">Alternative Editors and IDEs</a></h4>
|
||
<p>If you perefer other solution, you will find in depth help inside the
|
||
context of this inclomplete links:</p>
|
||
<ul>
|
||
<li><a href="https://atom.io/packages/language-rust">Atom</a></li>
|
||
<li><a href="https://intellij-rust.github.io">Intellij IDEA</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust.vim">Vim</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-mode">Emacs</a></li>
|
||
<li><a href="https://github.com/eclipse/corrosion">Eclipse</a></li>
|
||
</ul>
|
||
|
||
</main>
|
||
|
||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||
<!-- Mobile navigation buttons -->
|
||
<a rel="prev" href="ch01-02-element-call-hello.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||
<i class="fa fa-angle-left"></i>
|
||
</a>
|
||
|
||
<a rel="next prefetch" href="ch09-00-element-call-examples.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||
<i class="fa fa-angle-right"></i>
|
||
</a>
|
||
|
||
<div style="clear: both"></div>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
|
||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||
<a rel="prev" href="ch01-02-element-call-hello.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||
<i class="fa fa-angle-left"></i>
|
||
</a>
|
||
|
||
<a rel="next prefetch" href="ch09-00-element-call-examples.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||
<i class="fa fa-angle-right"></i>
|
||
</a>
|
||
</nav>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<script>
|
||
window.playground_line_numbers = true;
|
||
</script>
|
||
|
||
<script>
|
||
window.playground_copyable = true;
|
||
</script>
|
||
|
||
<script src="ace.js"></script>
|
||
<script src="editor.js"></script>
|
||
<script src="mode-rust.js"></script>
|
||
<script src="theme-dawn.js"></script>
|
||
<script src="theme-tomorrow_night.js"></script>
|
||
|
||
<script src="elasticlunr.min.js"></script>
|
||
<script src="mark.min.js"></script>
|
||
<script src="searcher.js"></script>
|
||
|
||
<script src="clipboard.min.js"></script>
|
||
<script src="highlight.js"></script>
|
||
<script src="book.js"></script>
|
||
|
||
<!-- Custom JS scripts -->
|
||
<script src="ferries.js"></script>
|
||
|
||
|
||
</div>
|
||
</body>
|
||
</html>
|