SwiftSyntax 기반의 Swift 코드 생성기로, 템플릿을 사용해 mock, Equatable, Codable 코드 같은 보일러플레이트를 생성합니다.
dtolnay/proc-macro-workshop
각각 구현할 스켈레톤과 trybuild 테스트 스위트가 포함된 Rust 프로시저 매크로 프로젝트 5개의 실습 워크숍입니다.
- 스타
- 4,873
- 포크
- 1,216
- 열린 이슈
- 3
- 마지막 커밋
- 3개월 전
어떤 프로젝트인가요?
이 저장소는 컴파일 시점에 Rust 코드를 생성하는 Rust 함수인 프로시저 매크로 작성법을 배우는 워크숍입니다. 빌더 패턴용 derive 매크로, 필드별로 서식 문자열을 받도록 사용자 지정할 수 있는 Debug derive, 코드의 인덱스별 복사본을 생성하는 함수형 매크로 seq!, 정렬되지 않은 enum 변형을 컴파일 오류로 보고하는 #[sorted] 어트리뷰트 매크로, 그리고 구조체 필드를 바이트 배열에 패킹하고 getter와 setter를 생성하는 #[bitfield] 어트리뷰트 등 다섯 가지 프로젝트가 들어 있습니다.
각 프로젝트는 스켈레톤 코드와 함께 제공되며, tests 디렉터리에 테스트 스위트가 있습니다. 테스트는 trybuild로 실행하며, 성공적으로 확장되는 경우와 컴파일에 실패해야 하는 코드의 정확한 컴파일러 오류 메시지를 모두 확인합니다. 워크숍에서는 derive(Builder)부터 시작한 다음, trait bound, 사용자 지정 입력 파싱, 진단 중 무엇에 집중하고 싶은지에 따라 나머지 프로젝트를 선택하는 학습 순서를 제안합니다.
또한 cargo expand를 사용하거나 생성된 토큰 스트림을 stderr에 출력하는 등 매크로 디버깅 기법도 설명합니다.
핵심 기능
- 01derive, 함수형, 어트리뷰트 매크로를 다루는 단계별 프로젝트 5개.
- 02컴파일러 오류 출력을 정확히 확인하는 trybuild 기반 테스트 스위트.
- 03각 프로젝트의 스켈레톤 코드와 단계별 테스트 활성화 과정.
- 04cargo expand와 토큰 스트림 출력을 활용한 디버깅 안내.
- 05관심사에 따른 추천 학습 순서.
활용 사례
- 안내형 실습으로 Rust 프로시저 매크로를 처음 배우는 경우.
- 제네릭 derive 매크로에서 trait bound 처리를 연습하는 경우.
- Rust 라이브러리의 사용자 지정 컴파일 시점 진단 기능을 구현할 준비를 하는 경우.
- 매크로로 비트 패킹 구조체 API를 생성하는 방법을 학습하는 경우.
빠른 시작
- 1
저장소를 clone하고 builder와 같은 프로젝트 디렉터리로 이동합니다
- 2
해당 프로젝트의 테스트 스위트를 실행합니다
cargo test
토픽
자주 묻는 질문
- proc-macro-workshop은(는) 무엇인가요?
- 각각 구현할 스켈레톤과 trybuild 테스트 스위트가 포함된 Rust 프로시저 매크로 프로젝트 5개의 실습 워크숍입니다. 이 저장소는 컴파일 시점에 Rust 코드를 생성하는 Rust 함수인 프로시저 매크로 작성법을 배우는 워크숍입니다. 빌더 패턴용 derive 매크로, 필드별로 서식 문자열을 받도록 사용자 지정할 수 있는 Debug derive, 코드의 인덱스별 복사본을 생성하는 함수형 매크로 seq!, 정렬되지 않은 enum 변형을 컴파일 오류로 보고하는 #[sorted] 어트리뷰트 매크로, 그리고 구조체 필드를 바이트 배열에 패킹하고 getter와 setter를 생성하는 #[bitfield] 어트리뷰트 등 다섯 가지 프로젝트가 들어 있습니다.
- proc-macro-workshop은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- proc-macro-workshop은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- proc-macro-workshop은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. proc-macro-workshop의 마지막 커밋은 2026년 8월 6일입니다.
- proc-macro-workshop은(는) 어디에 사용할 수 있나요?
- 안내형 실습으로 Rust 프로시저 매크로를 처음 배우는 경우. 제네릭 derive 매크로에서 trait bound 처리를 연습하는 경우. Rust 라이브러리의 사용자 지정 컴파일 시점 진단 기능을 구현할 준비를 하는 경우. 매크로로 비트 패킹 구조체 API를 생성하는 방법을 학습하는 경우.
- proc-macro-workshop는 어떻게 설치하나요?
- 저장소를 clone하고 builder와 같은 프로젝트 디렉터리로 이동합니다 해당 프로젝트의 테스트 스위트를 실행합니다: cargo test
- proc-macro-workshop은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/dtolnay/proc-macro-workshop
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Claude API를 기반으로 파일, 셸, 검색 도구를 하나씩 추가하며 코딩 에이전트를 만드는 과정을 알려주는 단계별 Go 워크숍입니다.
Amazon Bedrock의 파운데이션 모델로 생성형 AI 앱을 만드는 방법을 배우는 실습형 Jupyter 노트북 워크숍입니다.
공식 Rust 책과 함께 풀며 Rust 코드 읽기와 쓰기를 익힐 수 있는 짧은 연습 문제 모음입니다.
교육용으로 Rust로 구현한 고전 알고리즘과 자료 구조 모음입니다.
mdBook으로 빌드해 무료 온라인판을 제공하는 《The Rust Programming Language》의 공식 소스입니다.