프로젝트에서 Crux를 사용하는 방법을 배우십시오.
GitHub의 프로젝트 저장소에서 ReadMe를 따르십시오.
API 문서를 읽으십시오
런던에서 열린 최근 Rust Nation 2023 컨퍼런스에서 입문 연설을보십시오.
Zulip 채널에서 친절한 대화에 참여할 수도 있습니다.
Crux는 실험적이고 현재 활발한 개발 중이며 (아직 생산 앱에 사용할 준비가되지 않았을 것입니다). 그러나 마스터 브랜치는 항상 잘 작동해야하며, 우리는 예제와 문서를 최신 상태로 유지하려고 노력할 것입니다. 우리는 API가 이제 정착했다고 생각 합니다 . :-)
기본 건축 개념은 부작용을 유발하는 작업에서 순수한 계산 작업을 엄격하게 분리하는 것입니다. 이것은 Elm의 작동 방식과 비슷합니다.
위의 다이어그램에서 내부 "코어"는 편집되어 각 플랫폼의 외부 "쉘"에 연결됩니다.
실제로 WASM (WebAssembly)은 컴파일 대상 중 하나이기 때문에 WASM 런타임 환경의 샌드 박스 특성으로 인해 코어는 부작용이 없어야 합니다 .
따라서, 핵심은 외부 API에 액세스 할 수 없으므로 소프트웨어 공급망 공격에 대해 완전히 고립되고 안전합니다. 순수한 계산을 수행하고 내부 상태를 유지하기 만하면됩니다.
ELM 아키텍처에 이어 코어는 응용 프로그램 내에서 주요 구성 요소 유형을 정의합니다.
Event - 코어가 처리 할 수있는 이벤트를 설명하는 enumModel - 응용 프로그램의 내부 상태를 설명합니다ViewModel - 사용자에게 표시 해야하는 정보를 나타냅니다. 전 두 사람은 Elm, Redux 또는 기타 이벤트 소싱 아키텍처에서 친숙한 update 기능에 의해 함께 묶여 있으며 현재이 유형의 서명이 있습니다.
fn update (
& self ,
event : Event ,
model : & mut Model ,
capabilities : & Capabilities ,
) update 기능의 작업은 Event 처리하고 모델을 그에 따라 업데이트하며 기능을 사용하여 일부 부작용을 요청하는 것입니다.
Enclosing Platform Native "Shell"은 플랫폼에 적합한 언어를 사용하여 작성되며 모든 비 퓨어 작업이 수행되는 런타임 환경 역할을합니다. 코어의 관점에서 볼 때 쉘은 코어가 실행되는 플랫폼입니다.
ELM 아키텍처에 이어 코어와의 인터페이스는 메시지 기반입니다. 이것은 코어가 순수한 계산 이외의 것을 수행 할 수 없음을 의미합니다. 부작용을 생성하는 모든 작업 (예 : HTTP 호출 또는 임의 번호 생성)을 수행하려면 코어가 쉘에서 요청해야합니다.
핵심에는 공통 부작용을위한 재사용 가능한 인터페이스 등 기능 개념이 있습니다.
유일한 내장 기능은 Render 입니다. 그러나이 저장소에는 다양한 성숙 단계에서 몇 가지 기능이 포함되어 있으며 원하는 경우 쉽게 쓸 수 있습니다.
Render (viewmodel을 렌더링하도록 요청)-소스, crux_core 에 내장 된 소스, 요청 만 요청Http (SURF API를 기반으로 한 전체 HTTP 구현) - 소스, 상자, 요청/응답KeyValue (기본 키 값 스토어 API)-소스, 상자, 요청/응답Time (현재 시간 받기, 시간 후 알림, 즉시 알림) - 소스, 상자, 요청/응답Platform (현재 플랫폼 받기) - 소스, 상자, 요청/응답SSE (기본 서버 entent 이벤트)-소스, 요청/스트리밍PubSub (스트리밍이 포함 된 Pub Sub) - 소스, 요청/응답/스트리밍Timer (타이머 시작, 완료, 취소) - 소스, 요청/응답/스트리밍Delay - 책의 튜토리얼의 일부Red Badger는 Blue Chips와 Global Brands가 신뢰하는 디지털 제품 컨설팅입니다. 당사의 제품 설계 및 기술 가계도를 통해 고객이 원하는 고 충격적인 디지털 제품을 제작할 수 있습니다. 우리는 현대 엔지니어링 접근법을 사용하여 지속 가능한 변화를 제공합니다. 지속적인 혁신을 강화하기위한 디지털 기능을 포함시킵니다.
Zulip은 라이브 및 비동기 대화를 모두 정리하도록 설계된 오픈 소스 현대 팀 채팅 앱입니다.
Zulip Sponsor Crux Zulip 서버를 제공합니다. 감사합니다 Zulip!