• Stars
    star
    103
  • Rank 326,171 (Top 7 %)
  • Language
    Rust
  • License
    Mozilla Public Li...
  • Created about 5 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Core utils re-implementation for UNIX/UNIX-like systems written in Rust

Coreutils in Rust

Hits-of-Code Build Status FOSSA Status

An in-progress safe implementation of coreutils aiming for a minimal and yet complete set of utilities. This project aims at the POSIX specification basic requirements, plus common and useful features present in other implementations of the utility.

This project has no intent to be 100% compatible with GNU's coreutils, like Uutils' coreutils, but if it happens to be, it's okay too.

Minimum Rust Version Policy

This project's minimum supported rustc version (MSRV) is 1.58.0.

This will not be conservative until we get to a 1.0 version. So it can be changed at any point in time.

Compilation tests guarantees

The compilation is tested for Rust Tier 1 and Tier 2 x86_64 Unix/Unix-like platforms (except Redox), with CI.

All platforms are tested on MSRV and stable Rust, and Tier 1 platforms are also tested on beta and nightly Rust (Tier 2 and 3 only guarantee stable full capacity).

Also, note that Tier 3 Rust tests can fail before it hits the compilation check, since my only option is to use a Linux system, add the target, and do cargo check --target, and they often are not available as a target for any Tier 1 platforms. If you use one of these platforms and have the right MSRV requirements and it build successfully, let me know, if it fails, open an issue with the compilation error.

Platform Tier CI Status Manual Status
Linux Tier 1 Linux Passing (Manjaro Linux 5.3.2 - 2019-10-28) (8695863)
MacOS Tier 1 MacOS -
FreeBSD Tier 2 FreeBSD Passing (FreeBSD 12.0 - 2019-10-28) (8695863)
NetBSD Tier 2 NetBSD - (system without minimal version)
Illumos Tier 2 Illumos - (system without minimal version)
Solaris Tier 2 Solaris - (system without minimal version)
Fuchsia Tier 2 Fuchsia -
OpenBSD Tier 3 OpenBSD Passing (OpenBSD 6.6 Current - 2019-10-28) (8695863)
DragonflyBSD Tier 3 DragonflyBSD Passing (DragonflyBSD 5.6.2 - 2019-10-28) (8695863)
Haiku Tier 3 Haiku -

Compilation

Since not all targets provide full Unix API coverage (they aren't Unix or lack libc crate support), some can provide a Cargo.toml that have all utilities that should work on the target.

Compilation example for

cp <PLATFORM>.toml Cargo.toml
cargo build --release

Tools

Name Not Started Started Done
basename X
cat X
chgrp X
chmod X
chown X
chroot X
clear X
comm X
cp X
csplit X
cut X
date X
dd X
df X
diff X
dirname X
du X
echo X
env X
expand X
expr X
false X
groups X
hash X
head X
id X
install X
join X
link X
ln X
logname X
ls X
mkdir X
mktemp X
mkfifo X
mv X
nice X
nl X
nohup X
od X
paste X
patch X
printf X
pwd X
rm x
rmdir X
sed X
seq X
sort X
sleep X
split X
stat X
stty X
tail X
tee X
test X
time X
touch X
tr X
true X
tsort X
tty X
uname X
unexpand X
uniq X
unlink X
uptime X
users X
wc X
who X
whoami X
yes X

Licensing

This software is licensed under the Mozilla Public License, v. 2.0 (MPL). If a copy of the MPL was not distributed with this file, you can obtain one at http://mozilla.org/MPL/2.0/.

Contributing

We appreciate contributions, please check CONTRIBUTING.md for guidelines on how to contribute to the project with issue reports, git commits messages, etc.

The document also gives orientation on where to start if you wanna implement a pending tool from scratch.

Contributors

Without them, this project would not be what it is today.

More Repositories

1

sugars

Syntatic sugar Rust macros
Rust
80
star
2

janetrs

Rust high level bindings for Janet
Rust
55
star
3

tree-sitter-zig

Tree-sitter package for the Zig programming language
C
21
star
4

tree-sitter-janet

A tree-sitter grammar parser for Janet
C
17
star
5

algos

A collection of algorithms in rust
Rust
16
star
6

rust-janet-module-template

A template of a native Janet module written in Rust
Janet
12
star
7

janet-str-ext

Janet module with extra functions for strings and buffers
Rust
8
star
8

configs

My linux configs files
Lua
7
star
9

manjaro-grayjack

Shell
6
star
10

language-janet

Atom plugin for Janet lang
CoffeeScript
6
star
11

tree-sitter-carp

Tree-sitter package for Carp language
C
5
star
12

gat

Rust General Associated Types emulation together with functional style traits
Rust
4
star
13

language-python-treesitter

Atom package to support Python using tree-sitter
4
star
14

language-carp

Carp language support for Atom text editor
4
star
15

FerrousOS

My first OS - Toy project
Rust
4
star
16

language-rust-treesitter

Tree Sitter atom package for rust
Julia
3
star
17

language-elm-treesitter

Atom language package for elm powered by tree-sitter-elm
3
star
18

rbitset

A fork of cbitset
Rust
3
star
19

monokai-grayjack-vscode

My own take on classic/famous themes for VSCode
3
star
20

carp-book

Carp book (wip)
Shell
3
star
21

Bisect-K-Means

K-Means and Bisecting K-Means comparison
Jupyter Notebook
2
star
22

Mergesort-carp

Mergesort implementation in carp lang
2
star
23

language-zig

Atom package for Zig programming language
2
star
24

Advent-Of-Code

My implementation of the Advent of Code Challenge
Rust
2
star
25

oxibot

A Discord bot made with Rust
Rust
1
star