표준 라이브러리 레퍼런스

개요

Vais 표준 라이브러리는 74개의 모듈로 구성되어 있으며, 시스템 프로그래밍부터 웹 개발까지 다양한 용도를 지원합니다. 모든 모듈은 std/ 디렉토리에 위치하며, U std::{module} 또는 U {module} 구문으로 임포트할 수 있습니다.

Quick Start

U std::vec      # 동적 배열
U std::hashmap  # 해시맵
U std::file     # 파일 I/O

F main() {
    v := Vec::new()
    v.push(42)
    println("Hello, Vais!")
}

카테고리별 모듈 목록

Core Types

기본 타입 및 에러 처리를 위한 핵심 모듈.

모듈설명API Reference
optionOption<T> — 값의 유무를 나타내는 타입API
resultResult<T,E> — 성공/실패를 나타내는 타입API
string불변 문자열 (&str) 유틸리티API
owned_string소유 문자열 (String) 구현API
bytebuffer동적 바이트 버퍼API
box힙 할당 스마트 포인터 Box<T>API
rc참조 카운팅 스마트 포인터 Rc<T>API
fmt포매팅 유틸리티API
error에러 처리 트레이트 및 유틸리티API

Collections

데이터 컬렉션 및 반복자를 위한 모듈.

모듈설명가이드API Reference
vec동적 배열 Vec<T>가이드API
hashmap해시맵 HashMap<K,V>가이드API
stringmap문자열 키 전용 해시맵API
btreemapB-트리 기반 정렬된 맵API
set집합 자료구조 Set<T>API
deque양방향 큐 Deque<T>API
priority_queue우선순위 큐API
collections컬렉션 트레이트 및 공통 인터페이스API
iter반복자 트레이트 및 어댑터API

주요 컬렉션 메서드

Vec<T> 추가 메서드

메서드시그니처설명
get_optget_opt(index: i64) -> Option<T>인덱스의 값을 Option으로 반환 (범위 밖이면 None)
foldfold(init: U, f: |U, T| -> U) -> U누적 연산
anyany(pred: |T| -> bool) -> bool하나라도 조건 만족하면 true
allall(pred: |T| -> bool) -> bool모두 조건 만족하면 true
findfind(pred: |T| -> bool) -> Option<T>조건을 만족하는 첫 번째 요소
filterfilter(pred: |T| -> bool) -> Vec<T>조건 만족 요소만 수집
mapmap(f: |T| -> U) -> Vec<U>각 요소에 함수 적용
containscontains(val: T) -> bool값 존재 여부
swapswap(i: i64, j: i64)두 인덱스의 값 교환

HashMap<K, V> 추가 메서드

메서드시그니처설명
get_optget_opt(key: K) -> Option<V>키의 값을 Option으로 반환
keyskeys() -> Vec<K>모든 키 반환
valuesvalues() -> Vec<V>모든 값 반환
removeremove(key: K) -> Option<V>키-값 쌍 제거
clearclear()모든 항목 제거

I/O & Filesystem

파일 시스템 및 입출력 작업을 위한 모듈.

모듈설명가이드API Reference
io입출력 트레이트 (Read, Write)API
file파일 읽기/쓰기가이드API
filesystem파일 시스템 조작 (생성/삭제/이동)API
path경로 조작 유틸리티API

Networking & Web

네트워크 통신 및 웹 서비스를 위한 모듈.

모듈설명가이드API Reference
netTCP/UDP 소켓가이드API
httpHTTP 프로토콜 공통 타입API
http_clientHTTP 클라이언트API
http_serverHTTP 서버API
websocketWebSocket 프로토콜API
tlsTLS/SSL 암호화 통신API
urlURL 파싱 및 생성API

Concurrency

멀티스레딩 및 비동기 프로그래밍을 위한 모듈.

모듈설명가이드API Reference
thread스레드 생성 및 관리가이드API
sync동기화 프리미티브 (Mutex, RwLock, Atomic)가이드API
channel스레드 간 메시지 패싱가이드API
futureFuture 타입 및 combinatorsAPI
asyncAsync 런타임 프리미티브 (Barrier, Semaphore, WaitGroup)API
runtimeAsync 런타임 스케줄러API
async_reactor비동기 이벤트 reactorAPI
async_io비동기 I/O 추상화API
async_net비동기 네트워크 (TCP/UDP)API
async_http비동기 HTTP 서버API

Data Processing

데이터 직렬화, 정규표현식, 압축 등을 위한 모듈.

모듈설명가이드API Reference
jsonJSON 파싱 및 직렬화가이드API
regex정규표현식 엔진가이드API
base64Base64 인코딩/디코딩API
template텍스트 템플릿 엔진API
compress압축/해제 (gzip, deflate)API
hash해시 함수 (SHA-256, SHA-512)API
crc32CRC32 체크섬API

Databases

데이터베이스 연동을 위한 모듈.

모듈설명API Reference
sqliteSQLite 바인딩API
postgresPostgreSQL 클라이언트API
ormORM (Object-Relational Mapping)API

Security & Crypto

암호화 및 로깅을 위한 모듈.

모듈설명가이드API Reference
crypto암호화 알고리즘 (AES, RSA, ECDSA)가이드API
log구조화된 로깅API

Memory Management

메모리 할당 및 관리를 위한 모듈.

모듈설명API Reference
memory메모리 할당자 인터페이스API
allocator커스텀 할당자 구현API
arenaArena 할당자API
gc가비지 컬렉터 (선택적)API

참고: boxrc는 Core Types 섹션을 참조하세요.

System & Runtime

시스템 인터페이스, 시간, 테스트 등을 위한 모듈.

모듈설명API Reference
time시간 측정 및 타이머API
datetime날짜/시간 파싱 및 포매팅API
process프로세스 생성 및 관리API
signalUnix 시그널 처리API
env환경 변수 접근API
args커맨드라인 인자 파싱API
random난수 생성기API
uuidUUID 생성API
math수학 함수 (sin, cos, sqrt 등)API
profiler성능 프로파일러API
test유닛 테스트 프레임워크API
proptestProperty-based 테스트API
contractDesign-by-Contract (사전조건/사후조건)API

GPU & WASM

GPU 컴퓨팅 및 WASM 런타임을 위한 모듈.

모듈설명API Reference
gpuGPU 연산 (CUDA/Metal/OpenCL/WebGPU)API
wasmWASM 런타임 인터페이스 (WASI)API
webWeb API (Console/Timer/DOM/Fetch/Storage)API
hotHot reloading 지원API
dynload동적 모듈 로딩API

사용 예제

Core Types

U std::option
U std::result

F divide(a: i64, b: i64) -> Result<i64, String> {
    I b == 0 {
        R Err("Division by zero")
    }
    R Ok(a / b)
}

F main() {
    M divide(10, 2) {
        Ok(v) => println(~"Result: {v}"),
        Err(e) => println(~"Error: {e}")
    }
}

Collections

U std::vec
U std::hashmap

F main() {
    # Vec 예제
    nums := Vec::new()
    nums.push(1)
    nums.push(2)
    nums.push(3)

    # HashMap 예제
    map := HashMap::new()
    map.insert("key", 42)
    println(~"Value: {map.get("key")!}")
}

Concurrency

U std::thread
U std::channel

F main() {
    ch := channel::new()

    thread::spawn(|| {
        ch.send(42)
    })

    value := ch.recv()
    println(~"Received: {value}")
}

추가 리소스

  • 표준 라이브러리 가이드 목록
  • API Reference 전체 목록
  • Vais 언어 레퍼런스