Rust (6) 썸네일형 리스트형 tauri, command 와 event 예제 [1. 개요] tauri 에서 command 는 js 에서 rust 함수를 호출하게 할 수 있다. 반대로, rust 에서 js 함수를 직접 호출하게 할 수는 없지만(?) js 에서 listen 중인 event 를 발생시켜, rust 에서 원하는 시점에 js 에 함수를 간접적으로 호출하게 할 수 있다. [2. 예제] js 에서 rust 함수 호출하기 app 에서 버튼 클릭 시, rust 에서 필요 시, js 로 event 발생 mkdir tauri-test cd tauri_test cargo tauri init # 적절히 입력. # 아래 그림 참조. mkdir ui 이 과정을 거치면 프로젝트는 아래와 같은 구조가 된다. tauri-test\ src-tauri\ ui\ 이제 ui 폴더에 아래와 같은 파일과 .. encoding, decoding 관련 crate [1. 개요] [2. 예제] [3. 참조] https://crates.io/crates/encoding_rs https://docs.rs/encoding_rs/latest/encoding_rs/ std::process::Command 관련 [1. 개요] rust 에서 윈도우/리눅스 명령어를 사용하고, 그 결과 등을 캡쳐 할 필요가 있을 때 std::process::Command 를 사용하여 원하는 작업을 할 수 있다. 여기서는 ssh2 에서 처럼 작업을 수행하고, 블로킹 되는 것 없이, 현재 진행 중인 작업 중인 로그를 출력하고, 자식 프로세스의 Exit code 를 받아오도록 한다. [2. 예제] [3. 참조] https://doc.rust-lang.org/std/process/struct.Command.html ssh2 관련 [1. 개요] rust 에서 ssh 라이브러리 사용 시, 필요 했던 점 정리한다. 필요한 기능 ssh 로 원격 작업 수행 블로킹 되는 것 없이, 실행 로그를 실시간 출력 원격 작업 종료 후, Exit code 를 받는 것 까지 [2. 예제] [3. 참조] https://crates.io/crates/ssh2 https://docs.rs/ssh2/latest/ssh2/ Rust, tauri 개발 환경 설정 [1. 개요] Rust 로 gui 애플리케이션이 만들필요가 있을 때, 유용함. 공식 사이트에 소개된 tauri 장점 https://tauri.app/ 다중 플랫폼 배포를 위한 최적화되어 있고, 안전하며, 프론트엔드 독립적인 앱을 구축가능. 운영체제의 기본 웹 렌더러를 사용하여 Tauri 앱의 크기는 600KB보다 작아질 수 있습니다. Rust로 구축 가능 [2. 개발 환경 설정] Windows 를 기반으로 정리 rust 는 이미 설치되었다고 가정. cargo install create-tauri-app --locked # cargo-create-tauri-app.exe 가 Rust 가 설치된 곳에 위치하게 된다. # os 에 맞는 prerequisites 를 설치 # https://tauri.app/v1.. Rust. 프로젝트 구조 [1. 개요] Rust 로 application 작성 시, 규모가 커질 경우 당연하게도 소스 코드를 모듈 별로 분리할 필요가 있다. 여기서는 소스코드로 분리하는 방법을 정리한다. [2. 개념] cargo 를 이용하여 두가지 형태의 프로젝트를 생성 할 수 있다. executable library executable 형태에서는 main.rs 가 진입점이고, library 형태에서는 lib.rs 가 진입점이다. main.rs 를 기준으로 같은 디렉터리에 있는 소스코드의 경우, 파일 이름명이 바로 module 이 된다. main.rs 를 기준으로 하위 디렉터리에 있는 소스코드 중 mod.rs 는 해당 디렉터리의 상위 모듈이 되고, 그 디렉터리내 소스코드의 파일명이 하위 모듈이 된다. main.rs 에서는 키워드.. 이전 1 다음