{"id":147854,"date":"2025-11-10T11:12:10","date_gmt":"2025-11-10T09:12:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-rust-coreutils-0-4-rashozhdenie-povedeniya-utility-du-v-uutils-i-gnu-coreutils"},"modified":"2025-11-10T11:12:10","modified_gmt":"2025-11-10T09:12:10","slug":"vypusk-rust-coreutils-0-4-rashozhdenie-povedeniya-utility-du-v-uutils-i-gnu-coreutils","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-rust-coreutils-0-4-rashozhdenie-povedeniya-utility-du-v-uutils-i-gnu-coreutils","title":{"rendered":"Release of Rust Coreutils 0.4. Discrepancy in the behavior of the du utility in uutils and GNU Coreutils.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>The release of the uutils coreutils project 0.4.0 (Rust Coreutils) has been published, developing an alternative to the GNU Coreutils package, written in Rust. The coreutils package includes over a hundred utilities, including sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, and ls. The goal of the project is to create a cross-platform alternative implementation of Coreutils, capable of functioning on Windows, Redox, and Fuchsia platforms, among others.     <\/p>\n<p>Rust Coreutils is utilized by default in the Ubuntu 25.10 release and is applied in the AerynOS (Serpent OS) and Apertis (developed by Collabora) distributions. Unlike GNU Coreutils, the Rust implementation is distributed under the permissive MIT license, instead of the copyleft GPL license. Additionally, the same team of developers is working on Rust-based analogs of the util-linux, diffutils, findutils, and procps utility sets, as well as the sed and login programs.          <\/p>\n<p>In the new version of Rust Coreutils:  <\/p>\n<ul>\n<li class=\"l\"> Compatibility with the reference test suite of GNU Coreutils has been improved, with 544 tests successfully completed, which is 12 more than in the previous version (532). 56 (68) tests failed, and 33 (33) tests were skipped. A compatibility level of 85.80% has been claimed (up from 83.91%).\n<li class=\"l\"> The data utility has improved compatibility with GNU date when processing time zones (the ability to specify abbreviated time zone names in the --set option has been added).\n<li class=\"l\"> In the factor utility, the num_prime package has been utilized to accelerate the factorization of u64\/u128 types.\n<li class=\"l\"> In the tsort utility, the DFS traversal algorithm has been changed from a recursive approach to an iterative method to prevent stack overflow.\n<li class=\"l\"> The cksum utility now supports sha2 and sha3 hashes. Tests have been added to track changes in the performance of cksum. The functionality of hashsum has been migrated to cksum.\n<li class=\"l\"> In the mkdir utility, a stack overflow that caused crashes when creating a large number (over 200) of nested directories has been fixed.\n<li class=\"l\"> Support for the OpenBSD platform has been implemented in the stdbuf and uptime utilities.\n<li class=\"l\"> Building and testing on the FreeBSD platform has been improved.\n<li class=\"l\"> General improvements have been made to enhance portability.\n<li class=\"l\"> Capabilities have been expanded, issues fixed, and missing options added for the base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc utilities.      <\/ul>\n<p>Additionally, there is a discrepancy in the behavior of the 'du' utility between uutils and GNU Coreutils, which emerged after Ubuntu 25.10 switched to uutils. The developers have yet to decide whether to interpret this discrepancy as a bug, since, on one hand, there is logic in the behavior of uutils and the GNU Coreutils test suite does not reveal problems, but on the other hand, incompatibilities with GNU Coreutils are supposed to be treated as errors, and Busybox's behavior aligns with GNU Coreutils.    <\/p>\n<p>Different behavior is observed when specifying multiple directories as arguments to the 'du' utility when some of the directories are subdirectories of others (for example, \/var and \/var\/log). Uutils shows the actual size of each individual directory and displays the total size of all specified directories in the final line. GNU Coreutils shows in the final line the actual size that the specified directories occupy on disk, but lists the sizes of each directory separately excluding nested directories, resulting in smaller sizes than the actual ones. Additionally, the values output by GNU Coreutils and Busybox change depending on the order in which the directories are specified.       <\/p>\n<p>For example, when checking the sizes of the directories '\/var\/log' and '\/var', with actual sizes of 1540 and 35495 bytes respectively, GNU Coreutils will output:         du -smc \/var\/log \/var     1540    \/var\/log     33955   \/var # less than actual     35495   total       du -smc \/var \/var\/log      35495   \/var # only \/var is shown and \/var\/log is not displayed     35495   total      <\/p>\n<p>In uutils:       du -smc \/var\/log \/var     1540    \/var\/log     35495   \/var     37033   total # more than actual, but matches the sum of \/var and \/var\/log       du -smc \/var \/var\/log     35495   \/var       1540    \/var\/log     37033   total # more than actual, but matches the sum of \/var and \/var\/log      <\/p>\n<p>In Busybox:       du -smc \/var\/log \/var     1540    \/var\/log     33955   \/var # less than actual     35495   total       du -smc \/var \/var\/log     35495   \/var # only \/var shown and \/var\/log not shown     35495   total<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=64214\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 uutils coreutils 0.4.0 (Rust Coreutils), \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u043f\u0430\u043a\u0435\u0442\u0430 GNU Coreutils, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 coreutils \u0432\u0445\u043e\u0434\u0438\u0442 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430 \u0443\u0442\u0438\u043b\u0438\u0442, \u0432\u043a\u043b\u044e\u0447\u0430\u044f sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln \u0438 ls. \u0426\u0435\u043b\u044c\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 Coreutils, \u0441\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 Windows, Redox [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-147854","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 uutils coreutils 0.4.0 (Rust Coreutils), \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u043f\u0430\u043a\u0435\u0442\u0430 GNU Coreutils, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-rust-coreutils-0-4-rashozhdenie-povedeniya-utility-du-v-uutils-i-gnu-coreutils\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a Rust Coreutils 0.4. \u0420\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u044b du \u0432 uutils \u0438 GNU Coreutils | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 uutils coreutils 0.4.0 (Rust Coreutils), \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u043f\u0430\u043a\u0435\u0442\u0430 GNU Coreutils, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-rust-coreutils-0-4-rashozhdenie-povedeniya-utility-du-v-uutils-i-gnu-coreutils\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-11-10T09:12:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-11-10T09:12:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Release of Rust Coreutils 0.4. Discrepancy in the behavior of the du utility in uutils and GNU Coreutils | ProHoster","description":"The release of the uutils coreutils 0.4.0 project (Rust Coreutils) has been published, developing an analog of the GNU Coreutils package, written in Rust.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-rust-coreutils-0-4-rashozhdenie-povedeniya-utility-du-v-uutils-i-gnu-coreutils","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a Rust Coreutils 0.4. \u0420\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u044b du \u0432 uutils \u0438 GNU Coreutils | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 uutils coreutils 0.4.0 (Rust Coreutils), \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u043f\u0430\u043a\u0435\u0442\u0430 GNU Coreutils, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-rust-coreutils-0-4-rashozhdenie-povedeniya-utility-du-v-uutils-i-gnu-coreutils","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-11-10T09:12:10+00:00","article:modified_time":"2025-11-10T09:12:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"147854","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 15:51:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 15:51:19","updated":"2026-01-23 15:51:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/147854","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=147854"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/147854\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=147854"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=147854"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=147854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}