Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rust [2020/02/27 21:43] – Rewrite TobiasKortkamprust [2022/10/25 00:37] (current) – Move ToC post-intro, add named first section KubilayKocak
Line 1: Line 1:
-====== Rust on FreeBSD ======+===== Rust =====
  
-We take care of Rust and Rust-related ports in the %%FreeBSD%% Ports Collection.+The %%FreeBSD%% Rust team takes care of [[https://www.rust-lang.org/|Rust Programming Language]] and Rust %%FreeBSD%% [[Ports]] and Packages.
  
-  * [[https://www.freshports.org/lang/rust|lang/rust]] is tracking Rust Stable and is updated every 6 weeks.  It uses the bootstraps we create with ''%%lang/rust-bootstrap%%''. +  * [[https://www.freshports.org/lang/rust|lang/rust]] tracks Rust Stable and is updated every 6 weeks. It uses ''%%lang/rust-bootstrap%%'' to bootstrap.
-  * [[https://www.freshports.org/lang/rust-nightly|lang/rust-nightly]] is tracking Rust Nightly and is updated every week.  It uses the prebuilt bootstraps provided by upstream. As such it is currently limited to amd64 and i386. +
-  * [[https://www.freshports.org/lang/rust-bootstrap|lang/rust-bootstrap]] creates cross-compiled bootstraps for all supported architecture which are later used to build ''%%lang/rust%%''. +
-  * Cargo integration is available in the ports framework via ''%%USES=cargo%%''+
  
-We currently maintain [[https://www.freshports.org/lang/rust|lang/rust]] for the following architecture and release combinations:+  * [[https://www.freshports.org/lang/rust-nightly|lang/rust-nightly]] tracks Rust Nightly and is updated weekly. It uses prebuilt bootstraps provided by upstream, which are currently limited to ''%%amd64%%'' and ''%%i386%%'' architectures. 
 +  * [[https://www.freshports.org/lang/rust-bootstrap|lang/rust-bootstrap]] creates cross-compiled bootstraps for all supported architectures which are later used to build ''%%lang/rust%%''. 
 +  * Cargo integration is available in the ports framework via ''%%USES=cargo%%'' (Mk/Uses/cargo.mk)
  
-  * aarch64: 12.1+ (< 12.1 not supported due to a bug in rtld) +===== Support =====
-  * amd64: 11.3+ +
-  * armv6: 11.3+ +
-  * armv7: 12.0+ +
-  * i386: 11.3+ +
-  * powerpc64 ELFv1: 12.1 (13.0 will use the new ELFv2 ABI) +
-  * powerpc64 ELFv2: 13.0++
  
-===== Links =====+We currently maintain [[https://www.freshports.org/lang/rust|lang/rust]] for the following architecture and release combinations:
  
-  * [[https://www.rust-lang.org/|Rust Programming Language website]] +  * %%FreeBSD%% 11.4+ for i386, amd64, armv6 
-  * [[https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=New&bug_status=Open&bug_status=In%20Progress&email1=rust%40FreeBSD.org&emailtype1=exact&f1=assigned_to&f2=assigned_to&j_top=OR&list_id=39597&o1=equals&o2=equals&order=bug_status%2Cpriority%2Cbug_severity&product=Base%20System&product=Community&product=Documentation&product=Ports%20%26%20Packages&product=Services&query_based_on=&query_format=advanced&v1=rust%40FreeBSD.org&v2=freebsd-rust%40FreeBSD.org|Open Rust issues]] +  * %%FreeBSD%% 12.1+ additionally for: armv7, aarch64 (arm64) ((< 12.1 not supported due to a bug in rtld)), powerpc64 ELFv1 ((13.0 will use the new ELFv2 ABI)) 
-  * [[https://www.freshports.org/search.php?stype=depends_build&method=match&query=lang%2Frust&num=500&orderby=category&orderbyupdown=asc&search=Search&format=html&branch=head|Ports using lang/rust]] +  * %%FreeBSD%% 13.0+ additionally for: powerpc64 Big Endian ELFv2, powerpc64 Little Endian ELFv2, riscv64 ((requires custom kernel with COMPAT_FREEBSD11))
-  * [[https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/building.html#using-cargo|Porter's Handbook chapter on how to port Cargo based applications]]+
  
-===== Contact =====+===== Rust in the FreeBSD Kernel =====
  
-rust@%%FreeBSD%%.org+Johannes Lundberg((https://github.com/johalun)) created a [[https://github.com/johalun/rustkpi/tree/master/rust/kmod-rustkpi|RustKPI FreeBSD Kernel Module]]) and [[https://github.com/johalun/rustkpi/tree/master/rust/kmod-e1000|e1000 Rust FreeBSD Network Driver example]] and [[https://github.com/johalun/rustkpi/tree/master/rust/kmod-helloworld|Hello World Example]] as part of his Masters Thesis on [[https://github.com/johalun/rustkpi/blob/master/thesis.pdf|Safe Kernel Programming with Rust (2018, PDF)]].
  
-Bugs and feature requests should be submitted via [[https://bugs.freebsd.org]].+Anatol Ulrich((https://github.com/spookyvision)) wrote a [[https://github.com/spookyvision/hello-freebsd-rust|Hello world FreeBSD kernel module in Rust]]. (github.com, 2021)
  
-Patches via [[https://reviews.freebsd.org|Phabricator]] (invite #rust as reviewers).+In August 2022, David Young((https://github.com/sciguy16)) of NCCGroup posted a [[https://research.nccgroup.com/2022/08/31/writing-freebsd-kernel-modules-in-rust/|Writing FreeBSD Kernel Modules in Rust research article]] and accompanying [[https://github.com/nccgroup/freebsd-kernel-module-rust|BSD-Licensed code repository]], based on Johannes Lundberg's original work, updated to target Rust 2021.
  
-===== Members =====+===== Rust Team =====
  
   * TobiasKortkamp   * TobiasKortkamp
 +  * PiotrKubaj
   * MikaelUrankar   * MikaelUrankar
  
-===== Inactive members =====+===== Contact =====
  
-  * WillAndrews +  * Email: <rust@FreeBSD.org> 
-  * %%JeanS%%ébastienPédron +  * Bug Reports & Feature Requests via [[https://bugs.freebsd.org|Bugzilla]]. [[https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=New&bug_status=Open&bug_status=In%20Progress&email1=rust%40FreeBSD.org&emailtype1=exact&f1=assigned_to&f2=assigned_to&j_top=OR&list_id=39597&o1=equals&o2=equals&order=bug_status%2Cpriority%2Cbug_severity&product=Base%20System&product=Community&product=Documentation&product=Ports%20%26%20Packages&product=Services&query_based_on=&query_format=advanced&v1=rust%40FreeBSD.org&v2=freebsd-rust%40FreeBSD.org|Open Rust issues]] 
-  * ThomasZander+  * Patches & Pull Requests via [[https://reviews.freebsd.org|Phabricator]] (add ''%%#rust%%'' as reviewer). 
 + 
 +===== Links ===== 
 + 
 +  * [[https://www.freshports.org/search.php?stype=depends_build&method=match&query=lang%2Frust&num=500&orderby=category&orderbyupdown=asc&search=Search&format=html&branch=head|Ports using lang/rust]] 
 +  * [[https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/building.html#using-cargo|Porter's Handbook chapter on how to port Cargo based applications]]
  
 ---- ----
  
-{{tag>Ports Team}}+{{tag>Ports}} 
 +{{tag>Team}}
  
  • rust.1582839824.txt.gz
  • Last modified: 2020/02/27 21:43
  • by TobiasKortkamp