DotHyphen y DoHy: De ASCII a Morse y de Morse a ASCII usando Rust
Escrito por una persona el y actualizado el
Ésta es la primera de una serie de anotaciones en las que iré explicando cómo usar una librería desarrollada en Rust desde otros lenguajes. Esta interoperabilidad con otros lenguajes es conocida como FFI (Foreign Function Interface).
- DotHyphen y DoHy: De ASCII a Morse y de Morse a ASCII usando Rust.
- DotHyphen WebAssembly: De ASCII a Morse y de Morse a ASCII usando WebAssembly (I).
- DotHyphen WebAssembly: De ASCII a Morse y de Morse a ASCII usando WebAssembly (II).
- DotHyphen C: De ASCII a Morse y de Morse a ASCII usando C/C++.
Puesto que no soy ningún experto en la materia aviso que este escrito puede contener errores. Como sigo estudiando y aprendiendo lo iré corrigiendo y ampliando. También aviso que he simplificado algunas secciones para facilitar alguna explicación y mi propio entendimiento.
Quiero saber cómo utilizar Rust como lenguaje principal para desarrollar librerías que puedan ser utilizadas desde otros lenguajes. Como necesitaba tener “algo” con lo que probar esta interoperabilidad he desarrollado un sencillo transformador de ASCII a código Morse y de código Morse a ASCII, al que he llamado DotHyphen. Mi intención no es desarrollar un gran crate para trabajar con código Morse, esta es la pieza menos importante del proyecto. Lo que me interesa realmente es cómo usarlo desde otros lenguajes y diferentes ecosistemas. A todo este proyecto le he llamado Samuel.
DotHyphen
dothyphen
es un crate sencillo de tipo lib que tiene toda la lógica de transformación expuesta mediante las funciones públicas translate::to_morse
y translate::to_ascii
.
pub fn to_morse(input: &str) -> String
pub fn to_ascii(input: &str) -> String
Recursos
DoHy
dohy
es un CLI para dothyphen
.
~ dohy --translate "Hello world" --output morse
~ dohy --translate ".... . .-.. .-.. --- / .-- --- .-. .-.. -.." --output ascii