Rust Coreutils, el reemplazo de GNU Coreutils en Rust va a toda máquina

El esfuerzo para escribir un reemplazo basado en Rust para GNU Coreutils está empezando a dar sus frutos, pues hace poco se anunció que el proyecto está en camino de realizar mejoras significativas sobre la implementación anterior de C. Rust Coreutils también continúa aumentando su nivel de compatibilidad con GNU Coreutils.

El proyecto uutils, también conocido como Rust Coreutils, tiene como objetivo reescribir en Rust todas las utilidades individuales incluidas en el proyecto GNU Coreutils. Creado originalmente por Jordi Boggiano en 2013, el proyecto tiene como objetivo proporcionar reemplazos inmediatos para los programas Coreutils, agregando la protección de concurrencia y la seguridad de la memoria que brinda Rust.

Rust Coreutils incluye los programas básicos de manipulación de archivos, procesos y texto que se supone que existen en todos los sistemas operativos basados ​​en GNU.

El proyecto Coreutils se creó para consolidar tres conjuntos de herramientas que anteriormente se ofrecían por separado, Fileutils, Textutils y Shellutils, junto con otras utilidades diversas. Muchos de los programas incluidos en el proyecto, como rm, du, ls y cat, existen desde hace décadas y, aunque existen otras implementaciones, estas utilidades no están disponibles para plataformas como Windows en su forma original.

Colectivamente, los programas Coreutils se ven como fruta madura para la cual se podría producir una versión funcional basada en Rust en un tiempo razonable. Los requisitos para cada utilidad son claros y muchos de ellos son conceptualmente simples, lo que no significa que el trabajo sea fácil.

Según los autores, el uso de Rust en este proyecto ayudará a acelerar este proceso, ya que se eliminan por completo muchos errores de memoria y otros comportamientos indefinidos. También abre la puerta al uso de subprocesos múltiples eficientes y sin concurrencia.

Esto podría acelerar algunos programas bajo ciertas condiciones. Rust Coreutils también brinda la oportunidad no solo de volver a implementar Coreutils, sino también de mejorar la funcionalidad de algunas utilidades para brindar una mejor experiencia de usuario, manteniendo la compatibilidad con las versiones de GNU.

Por ejemplo, las solicitudes de funciones que se han rechazado durante mucho tiempo en el proyecto Coreutils, como agregar una opción de barra de progreso para utilidades como mv y cp, se están abordando actualmente en esta reescritura del lenguaje Rust.

Actualmente, hay docenas de colaboradores que aportan más de 400 correcciones a este esfuerzo cada mes y que ademas se continúan con el desafío de cerrar la brecha de compatibilidad de estas utilidades con los comandos GNU ascendentes.

El único binario restante para implementar es «stty», que además de su trabajo de optimización y compatibilidad, los desarrolladores también trabajarán para permitir que Debian y Ubuntu cambien fácilmente a Rust Coreutils de forma predeterminada sin necesidad de ajustes o configuraciones especiales.

Aunque se ha avanzado mucho para llevar las uutils a un estado utilizable, llevará algún tiempo alcanzar la estabilidad y madurez de GNU Coreutils. Además, un aspecto importante del proyecto uutils a tener en cuenta es su licencia. Todas las utilidades del proyecto están bajo la licencia MIT permisiva, en lugar de la licencia GNU Coreutils GPLv3.

La decisión de utilizar la licencia del MIT no está exenta de críticas; algunos de los que comentaron sobre esta elección hubieran preferido que se aplicara una licencia copyleft a un proyecto de este tipo.

La principal crítica se hace eco de los argumentos sobre las licencias de software libre en el pasado:

«una licencia sin copyleft es perjudicial para las libertades de los usuarios finales, ya que permite que una persona u organización incorpore cualquier parte del proyecto en un dispositivo o en la distribución de otros». software sin proporcionar el código fuente, por lo que es imposible estudiarlo, modificarlo o mejorarlo».

También existe la preocupación de que la elección de la licencia se haga para maximizar el uso de Rust sin considerar otros efectos; Algunos consideran que reemplazar las herramientas con licencia GPL por alternativas con una licencia más permisiva es un paso atrás.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.