컴퓨터/Rust
-
Meilisearch: Rust로 작성된 ElasticSearch컴퓨터/Rust 2024. 7. 12. 16:45
[메일리서치] meili는 노르드 신화 (Norse god)에 나오는 신 이름, "사랑스러운 사람"을 뜻https://github.com/meilisearch/MeiliSearch/issues/1182 GitHub - meilisearch/meilisearch: A lightning-fast search API that fits effortlessly into your apps, websites, and workflowA lightning-fast search API that fits effortlessly into your apps, websites, and workflow - meilisearch/meilisearchgithub.com Rust언어로 작성된 오픈 소스 검색 엔진이다.이 링크에서 다른..
-
Rust: 스타크래프트1 멀티 실행기 만들기 (windows api)컴퓨터/Rust 2024. 4. 22. 14:25
GitHub - somersby10ml/sc_multiloader Contribute to somersby10ml/sc_multiloader development by creating an account on GitHub. github.com 위 프로젝트를 보고, Rust로 windows-rs API는 개발이 잘되어가는지 궁금해서 위 앱을 Rust로 만들어보았다. (CLI + GUI) windows-rs API 문서 따위 아직 없다. 그냥 알아서 필요한거 찾아서 쓰고, 없는 건 만들어 써야 한다. docs.rs의 검색 기능 때문에 원하는 구조체, 함수 등 찾기는 쉽다. https://microsoft.github.io/windows-docs-rs/ microsoft.github.io 우선 "핸들" 이라는..
-
Rust: 비동기 리팩토링 tokio::task::JoinSet컴퓨터/Rust 2024. 4. 6. 00:37
GitHub - Alfex4936/cargo-depsize: Rust cargo utility that calculates and displays the total size of each dependency in your Rust Rust cargo utility that calculates and displays the total size of each dependency in your Rust project. - Alfex4936/cargo-depsize github.com cargo depsize라는 툴은 Rust 프로젝트에서 쓰고 있는 라이브러리들의 파일 크기를 구하는 간단한 유틸리티이다. 리팩토링 하다가, 비동기로 만들어 놓고 각각 계산을 비동기로 돌리면 되는데 하나씩 기다리고 있었다. 우선 원..
-
Rust: OAuth2 구글, Github, 카카오, 네이버 로그인컴퓨터/Rust 2023. 8. 6. 12:58
로그인 만든 것: 사이트 내 회원가입 (편의상 내부 Vector), 로그인 (내부 db, 구글, Github, 카카오, 네이버), 프로필 spring boot으로 처음 로그인을 만들어보다가 스프링 설정이 너무 어색해서 자주 사용하던 Rust로 간단히 만들어 보기로 했다. (Rust yew 프론트엔드 + actix-rs 백엔드) OAuth2 간단히 각 플랫폼마다 로그인하고 유저 정보를 조회하는 방법이다. Google OAuth2 클라이언트 아이디와 리다이렉트 경로가 필요하다. https://accounts.google.com/o/oauth2/v2/auth 에 forward, 코드 요청하고 (params: redirect_uri, client_id, access_type, response_type, prom..
-
Rust: 카카오 소셜 로그인 하기 (JWT, actix-rs, react.js)컴퓨터/Rust 2023. 7. 10. 18:55
소개: 이 글에서는 React.js 프트엔드에서 간단하게 카카오 로그인을 구현한 예제이다. 프론트만으로 해결하려 했으나 redirect 등의 문제로 백엔드를 Rust로 구현하게 되었다. (React.js + Actix-rs) 왜냐하면 vercel로 배포했기 때문에 프론트만 업로드 되어있다...프론트+백엔드 같이 배포하면 더 쉬워진다. 백엔드는 fly.io와 같은 사이트를 이용해서 퍼블릭 주소로 서비스 해준다. 일단 https://developers.kakao.com/console/app 에서 앱을 만들고 카카오 로그인 기능을 켜준다. 그다음 아래에 REDIRECT URI에 개발 홈페이지 주소를 적어준다. https://developers.kakao.com/docs/latest/ko/kakaologin/r..
-
Rust: WASM async fn + 카카오맵 API 사용하기컴퓨터/Rust 2023. 6. 26. 12:05
소개 이 글에선 위와 같은 웹을 만들어 볼 것이다. 카카오맵 키워드 검색 함수를 Rust로 만들고 WASM으로 변환한다. Rust WASM으로 유명한 wasm-bindgen 라이브러리는 Rust와 JavaScript 간의 상호 운용성을 향상해, Rust에서 작성된 코드를 WASM으로 컴파일하고 JavaScript에서 이를 호출하게 할 수 있다. Rust에서 WASM으로 컴파일하는 기본 단계는 다음과 같다: Rust에서 원하는 기능(여기서는 카카오맵 키워드 검색과 같은 것)을 구현 wasm-bindgen을 사용하여 WASM과 JavaScript 간의 상호 운용성을 설정 wasm-pack 또는 비슷한 도구를 사용하여 Rust 코드를 WASM으로 컴파일 컴파일된 WASM 코드를 웹 페이지에 로드하고 JavaS..
-
Rust: actix-rs + React.js컴퓨터/Rust 2023. 6. 2. 19:53
소개: actix-rs (백엔드)에서 React.js (프론트엔드)를 간단하게 사용하는 방법이다. 우선 프론트엔드 폴더에서 프로젝트를 빌드하고 yarn build 백엔드를 아래처럼 수정한다. 1. 터미널에서 cargo add actix-files 2. main.rs actix_files로 파일 임베딩을 하는 법이다. 현재 백엔드 프로젝트 폴더가 A/ 라고 할 때 프론트엔드 빌드 결과물이 A/google-clone/build 에 있고 그 안에 index.html을 사용한다. ... use actix_files as fs; ... #[actix_web::main] async fn main() -> std::io::Result { ... // Start the HTTP server HttpServer::new..
-
Rust 문법: Box컴퓨터/Rust 2023. 5. 13. 22:47
Box 이해하기 Rust의 Box는 언어의 메모리 관리 모델에서 핵심 개념입니다. 이는 값들을 힙에 할당하는 방법을 제공하여 더 유연한 메모리 사용을 가능하게 합니다. Rust에서의 Box 타입은 힙 할당을 위한 스마트 포인터입니다. 단순한 스택 할당과 달리, Box를 사용하면 대량의 데이터를 저장하거나 값을 오랫동안 메모리에 유지하거나 런타임에서만 알 수 있는 타입의 값을 저장할 수 있습니다. Box란 무엇인가? Box는 특정 타입 T의 힙 할당을 고유하게 소유하는 포인터 타입입니다. 값이 Box에 들어가면 힙으로 이동되고 소유권이 Box로 이전됩니다. Box가 범위를 벗어날 때 소멸자가 호출되며 힙 메모리가 해제되고 값이 삭제됩니다. Box가 제공하는 메서드 Box는 생성, 사용 및 메모리 관리를 위..