Category/Programming-language/rust

From Free Software Directory
ย 
Jump to: navigation, search

Broaden your selection: Category/Programming-language

Category/Programming-language Search icon.png

rust (25)



AElhometta
Archaic attempt at autonomous non-sandboxed distributed artificial life of assembler automaton type, it features: separation of descriptive and executive data that provides branches and loops without jump instructions, publish-subscribe interaction with other instances over Tor, input/output through ordinary files associated with external sensors and actuators, and built-in shell.
Afrim
Afrim is an input method designed to protect the native language of various local dialects and is a universal phonetic-based input method platform. Features ๐ŸŒ Support for all sequential codification codes. ๐ŸŽจ Easy to use CLI interface. ๐Ÿ“š Customizable dictionary. ๐Ÿ’ป Support for both desktop and web platform. Support for the Rhai scripting language. ๐Ÿ“ Auto-suggestion / Auto-correction / Auto-completion. โ˜๏ธ Full immersion mode for non-latin languages. (๐Ÿšง Experimental ๐Ÿšง)
Alacritty
Launched in 2017, Alacritty is a terminal emulator that uses Rust (a memory-safe language) and OpenGL for rendering everything, aiming for perfomance, security, configurability, and simplicity. A list of Alacritty's features can be found here. Alacritty is currently in beta, but is already used as a daily driver by many people. It is also the default terminal emulator for Sway, a Wayland-native WM. Another Wayland-native, GPU-accelerated terminal emulator is kitty.
Bustd
* Features

Insignificant memory usage!

bustd seems to use less memory than some other lean daemons such as earlyoom.

Also quite insignificant CPU usage

Much like earlyoom and nohang, bustd uses adaptive sleep times during its memory polling. Unlike these two, however, bustd does not read from /proc/meminfo, instead opting for the sysinfo syscall. This approach has its up- and downsides. The amount of free RAM that sysinfo reads does not account for cached memory, while MemAvailable in /proc/meminfo does. The sysinfo syscall is one order of magnitude faster, at least according to this kernel patch: https://sourceware.org/legacy-ml/libc-alpha/2015-08/msg00512.html (granted, from 2015). As bustd can't solely rely on the free RAM readings of sysinfo, we check for memory stress through Pressure Stall Information.

bustd locks all pages mapped into its address space

Much like earlyoom, bustd uses mlockall to avoid being sent to swap, which allows the daemon to remain responsive even when the system memory is under heavy load and susceptible to thrashing.

Checks for Pressure Stall Information

The Linux kernel, since version 4.20 (and built with CONFIG_PSI=y), presents canonical new pressure metrics for memory, CPU, and IO. In the words of Facebook Incubator:

PSI stats are like barometers that provide fair warning of impending resource
shortages, enabling you to take more proactive, granular, and nuanced steps
when resources start becoming scarce.
More specifically, bustd checks for how long, in microseconds, processes have stalled in the last 10 seconds. By default, bustd will kill a process when processes have stalled for 25 microseconds in the last ten seconds.
Env encryption tool
env_encryption_tool ยฉ๏ธ Project Goals & Info Purpose: the goal for this project is to encrypt .env files for a given Rust application and store them in an encrypted state, then decrypt them at runtime using an OS-based environment variable and pass them to the application. This requires any potential/illicit attacker to breach the operating system's security and access its environment variables before any application-level environment variables can be compromised. Disclaimer: this project is brand-new. It's stable and can be used in production environments, but SLA-based support won't be offered until we're at v1.0. Installation Instructions Install Rust ๐ŸŒŽ Clone/fork the env_encryption_tool repo โšก Modify the encryption key in main.rs to your desired content ๐Ÿ”’ Run "cargo build --release" - this outputs a binary in the target folder โœจ Run the binary in the same folder as your .env file - this outputs a .env.enc file ๐ŸŽŠ Integrate the included decrypt_config.rs file and its crates into your Rust project โญ Set an OS-level environment variable named "DECRYPTION_KEY" ( ๐ŸŒŽ for Linux, ๐ŸŒ for Windows, ๐ŸŒ for MacOS) to the same value you placed in main.rs. Copy the .env.enc file to the same folder your Rust binary runs in and voila! You have encrypted environment variables provided to your application at runtime. ๐ŸŽ‰ Contributing We welcome contributions from the community! A simple guide to get started: Fork the repository to your Github account (a.k.a create a branch). Clone your forked repo/branch to your favorite IDE (VS Code is our editor of choice) and make changes (or use the command-line: git checkout -b feature/your-feature). Thoroughly test and debug your changes, then commit and push them to your forked repo/branch. Open a pull request to have your changes reviewed and reintegrated into the main branch. Contributors are strongly encouraged to read our CONTRIBUTING.md file before opening a pull request. License env_encryption_tool is licensed under the AGPL-3.0 license, making it free to use, modify, and distribute as long as the source code remains open-source. Using a modified version of this software without disclosing its source code is not in compliance with the AGPL-3.0 license. Acknowledgments Special thanks to contributors, open-source enthusiasts, and supporters of env_encryption_tool's vision. Terms of Service Please read our Terms of Service before using our software. Violators of these Terms are not supported by the community or contributors. Privacy Policy Please also read our Privacy Policy to understand how we handle your personal information. Contact Have questions or suggestions? Reach out to us at [email protected]. Thank you and happy coding! :)
Ffsend
ffsend allows you to easily and securely share encrypted files from the command line.
Fractal
Fractal is an instant messaging client and collaboration software for the GNOME desktop based on the Matrix protocol.
Gcc Heckert gnu.tiny.png
GCC is the GNU Compiler Collection. It provides compiler front-ends for several languages, including C, C++, Objective-C, Fortran, Ada, and Go. It also includes runtime support libraries for these languages. GCC provides many levels of source code error checking traditionally provided by other tools (such as lint), produces debugging information, and can perform many different optimizations to the resulting object code. GCC supports many different architectures and operating systems.
Gnuzilla
Outdated official binary release

Since 2019, IceCat is maintained only as source code. The last IceCat binary release was version 60.7.0, and is no longer supported. Guix and Parabola have up-to-date IceCat binaries. Please ask your distro to package IceCat.
GNU IceCat (originally GNU IceWeasel) is part of GNUzilla (the GNU version of the Mozilla Application Suite). GNU IceCat is based on the the current Firefox Extended Support Release (ESR), with removal of trademarked name, trademarked artwork, and proprietary components, and enhanced privacy settings.

However, IceCat is not a straight fork of Firefox ESR; instead, it is a parallel effort that works closely with and re-bases in synchronization on the latest Firefox ESR as the upstream supplier, with patches merged upstream whenever possible; although it should be noted that additional security updates are customized to IceCat occasionally.

Differences between IceCat and Firefox ESR

Important differences between Mozilla's Firefox and GNU IceCat is that IceCat has a focus on freedom and privacy (see settings.js for details).

  • Encrypted Media Extensions (EME) is not implemented: Whereas Firefox are being created such that they support Digital Restrictions Management (DRM) systems through their implementation of the Encrypted Media Extension (EME), GNU IceCat doesn't include an EME implementation as it opposes efforts to popularize and ease the dissemination of DRM technology.
    • Widevine Content Decryption Module provided by Google Inc. is not installed in about:addons > Plugins
    • The Play DRM-controlled content option (used to download and enable Widevine Content Decryption Module provided by Google Inc.) has been removed from about:preferences > Content
  • "Accept third-party cookies: Never"
  • WebRTC is enabled like in Firefox but prevent leaking the LAN ip. (Test WebRTC)
  • The proprietary web chat IRC client Mibbit has been removed.
  • Telemetry is disabled.
  • DuckDuckGo is the default search engine, which means that you can run "!Bangs" keywords in the location bar to use any search engine.

Philosophy

"We will always make IceCat block non-free JavaScript by default. If you want to permit nonfree software to run, you can easily disable LibreJS." - Richard Stallman

Customized add-ons

  • SpyBlock (Adblock Plus fork) to block privacy trackers.

History

GNU IceCat was formerly known as GNU IceWeasel but changed its name in 2008 to avoid confusion with Debian IceWeasel (who was rebranded back to Firefox in 2017 after Debian was being granted special permission from Mozilla ref).

The GNU IceCat developers dropped support for IceCatMobile on Replicant after version 38.6.0 because these builds are already provided by F-Droid. See Collection:Replicant for more information about IceCatMobile in the F-Droid repository.

GNU IceCat developers dropped support for macOS, and Windows, after version 38.8.0 in 2016: "Note that building binary packages for Windows and macOS currently requires non-free software, so we no longer distribute binary releases for those platforms."

See also

Gossip-nostr-client
Gossip is a GUI client that allows users to post microblogs, follow other users, and host private chats using Nostr. It is very snappy and performant as it is written in Rust. It is highly configurable; there are 64 configuration options. Unlike other Nostr clients, Gossip strives to avoid web browser technologies like JavaScript to reduce bloat.

... further results



Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.