Rust 로그를 Android Logcat에 출력하는 방법

배경 Rust에서 println!을 사용해 로그를 출력하면 표준 출력(stdout)으로 전송됩니다. 그러나 Android Logcat은 애플리케이션 로그 정보를 처리하고 표시하는 전용 시스템으로, Android 환경에서는 표준 출력 구현이 재정의됩니다. 따라서 Rust 로그가 Logcat에 나타나지 않는 문제가 발생합니다. android_logger는 Android의 로깅 시스템과 직접 연동되어 로그 정보가 Lo ...

7월 29일 20:43에 게시됨

async-await 구현: Rust로 만든 간단한 런타임

Rust의 런타임이 어떻게 작동하는지 이해하기 위해 최소한의 외부 의존성 없이 간단한 런타임을 구현했습니다. 이 런타임은 복잡한 스케줄링 알고리즘 없이 단일 전역 작업 큐를 사용합니다. 다음 코드는 멀티 프로듀서, 멀티 컨슈머(MPMC) 부분만 crossbeam 크레이트를 사용하고 나머지는 직접 작성했습니다. 예제 코드: fn main() { let runtime = SimpleRuntime::ne ...

7월 24일 17:58에 게시됨

Rust 선언형 매크로를 이용한 구문 분석

이전 글에서 Rust 선언형 매크로의 메타변수에 대해 다룬 내용을 바탕으로, 이번에는 Rust의 다양한 아이템 구문을 분석하는 방법을 살펴봅니다. Rust 크레이트(crate)는 여러 아이템(item)으로 구성되며, fn, struct, enum, impl, mod 등 각 정의가 하나의 아이템이 됩니다. 이 글에서는 Function과 struct 아이템의 구문 분석에 초점을 맞춥니다. 함수 아이템 분석 가 ...

7월 17일 03:07에 게시됨

Rust로 작성된 경량 코드 편집기 Lapce 설치 및 사용 가이드

Rust로 작성된 경량 코드 편집기 Lapce 설치 및 사용 가이드 Lapce는 Rust 프로그래밍 언어로 개발된 고성능 코드 편집기입니다. 빠른 계산 성능과优美的한 그래픽 렌더링 capabilities를 갖추고 있습니다. 이 가이드에서는 설치 과정, 디렉토리 구조, 주요 설정 파일에 대해详细介绍하겠습니다. 1. 프로젝트 디렉토리 구조 Lapce의 소스 코드 디렉토리 구조는 다음과 ...

7월 14일 23:12에 게시됨

Rust로 구현하는 간단한 플래피 버드 게임

프로젝트 개요 bracket-lib 라이브러리를 활용한 간단한 플래피 버드 게임 구현 프로젝트이다. 스페이스바를 통해,玩家를 조작하며,P 키로 게임 일시정지 및 재개가 가능하다. 프로젝트 구조 . ├── Cargo.lock ├── Cargo.toml ├── src/ │ ├── main.rs │ ├── player/ │ │ ├── player.rs │ │ └── mod.rs │ ├── game/ │ │ ├── game.rs │ │ └── mod.r ...

7월 13일 20:32에 게시됨

금융 시스템에서의 rust-decimal 활용: 거래 처리부터 리포팅까지

금융 시스템에서 십진수 계산库的 필요성 금융 분야에서는 극소수의 계산 오차도 심각한 손실을 초래할 수 있습니다. 전통적인 부동소수점 연산(f64)은 이진 표현의 한계로 인해 정밀도 손실 문제가 발생합니다. rust-decimal은 고정 정밀도 십진수 계산을 통해 이 문제를 완벽하게 해결하며, 모든 거래와 정산 과정의 정확성을 보장합니다. 이 글에서는 rust-decimal이 ...

7월 13일 16:05에 게시됨

HTTP 응답 처리의 유연한 설계

깃허브 프로젝트 소스코드 내가 대학 3학년 시절 웹 개발에서 자주 간과되지만 중요한 요소로 여겨진 HTTP 응답 처리에 대해 깊이 탐구하게 되었다. 우수한 응답 처리 시스템은 다양한 데이터 형식을 지원하고 유연한 전송 메커니즘을 갖춰야 한다. 최근 Rust 기반의 웹 프레임워크를 연구하며, HTTP 응답 처리에 대한 혁신적인 설계 방식에 대해 새로운 인사이트를 얻게 ...

7월 12일 23:32에 게시됨

PNG/BMP 투명 채널 이미지를 Framebuffer에叠加하는 방법

서론 PNG 파일 형식은 가장 널리 사용되는 투명 이미지를 위한 포맷이다. PNG-32 형식이 가장 일반적인데, 이는 RGBA-8-8-8-8 형식, 즉 32비트 트루컬러 픽셀을 의미한다. 여기서 A는 Alpha 투명 채널을 나타낸다. BMP 프레임 파싱 BMP는 가장 단순한 이미지 파일 형식으로, 파일 저장을 위해 최소한의 헤더만 추가되어 있다. 위키피디아의 BMP 파일 형식 테이블을 참고하 ...

7월 11일 01:11에 게시됨

Rust 기반 Sentry Relay 개발 및 디버깅 환경 설정 가이드

개발 환경 구성 Sentry Relay는 최신 안정 버전의 Rust로 빌드되며, 워크스페이스 내 다수의 크레이트(crate)로 분리되어 있습니다. 따라서 빌드나 테스트 시 --all 및 --all-features 플래그를 함께 사용하는 것이 중요합니다. 특히 processing 기능을 활성화하려면 C 컴파일러와 CMake도 필요합니다. 빌드 전 librdkafka 라이브러리가 시스템 경로에 설치되어 있어야 합 ...

7월 9일 22:46에 게시됨

메모리 페이징 원리와 구현: Rust를 이용한 효율적 운영체제 메모리 관리 시스템 구축 7단계

메모리 페이징 원리와 구현: Rust를 이용한 효율적 운영체제 메모리 관리 시스템 구축 7단계 메모리 페이징은 현대 운영체제에서 효율적인 메모리 관리를 구현하는 핵심 기술로, 가상 메모리와 물리 메모리를 고정된 크기의 블록(페이지와 프레임)으로 분할하여 메모리 단편화 문제를 해결하고 메모리 격리 기능을 제공합니다. 본문에서는 'Rust로 운영체제 작성' 프로젝트 ...

7월 8일 19:08에 게시됨