표준 라이브러리 레퍼런스
개요
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 |
|---|---|---|
option | Option<T> — 값의 유무를 나타내는 타입 | API |
result | Result<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 | |
btreemap | B-트리 기반 정렬된 맵 | API | |
set | 집합 자료구조 Set<T> | API | |
deque | 양방향 큐 Deque<T> | API | |
priority_queue | 우선순위 큐 | API | |
collections | 컬렉션 트레이트 및 공통 인터페이스 | API | |
iter | 반복자 트레이트 및 어댑터 | API |
주요 컬렉션 메서드
Vec<T> 추가 메서드
| 메서드 | 시그니처 | 설명 |
|---|---|---|
get_opt | get_opt(index: i64) -> Option<T> | 인덱스의 값을 Option으로 반환 (범위 밖이면 None) |
fold | fold(init: U, f: |U, T| -> U) -> U | 누적 연산 |
any | any(pred: |T| -> bool) -> bool | 하나라도 조건 만족하면 true |
all | all(pred: |T| -> bool) -> bool | 모두 조건 만족하면 true |
find | find(pred: |T| -> bool) -> Option<T> | 조건을 만족하는 첫 번째 요소 |
filter | filter(pred: |T| -> bool) -> Vec<T> | 조건 만족 요소만 수집 |
map | map(f: |T| -> U) -> Vec<U> | 각 요소에 함수 적용 |
contains | contains(val: T) -> bool | 값 존재 여부 |
swap | swap(i: i64, j: i64) | 두 인덱스의 값 교환 |
HashMap<K, V> 추가 메서드
| 메서드 | 시그니처 | 설명 |
|---|---|---|
get_opt | get_opt(key: K) -> Option<V> | 키의 값을 Option으로 반환 |
keys | keys() -> Vec<K> | 모든 키 반환 |
values | values() -> Vec<V> | 모든 값 반환 |
remove | remove(key: K) -> Option<V> | 키-값 쌍 제거 |
clear | clear() | 모든 항목 제거 |
I/O & Filesystem
파일 시스템 및 입출력 작업을 위한 모듈.
| 모듈 | 설명 | 가이드 | API Reference |
|---|---|---|---|
io | 입출력 트레이트 (Read, Write) | API | |
file | 파일 읽기/쓰기 | 가이드 | API |
filesystem | 파일 시스템 조작 (생성/삭제/이동) | API | |
path | 경로 조작 유틸리티 | API |
Networking & Web
네트워크 통신 및 웹 서비스를 위한 모듈.
| 모듈 | 설명 | 가이드 | API Reference |
|---|---|---|---|
net | TCP/UDP 소켓 | 가이드 | API |
http | HTTP 프로토콜 공통 타입 | API | |
http_client | HTTP 클라이언트 | API | |
http_server | HTTP 서버 | API | |
websocket | WebSocket 프로토콜 | API | |
tls | TLS/SSL 암호화 통신 | API | |
url | URL 파싱 및 생성 | API |
Concurrency
멀티스레딩 및 비동기 프로그래밍을 위한 모듈.
| 모듈 | 설명 | 가이드 | API Reference |
|---|---|---|---|
thread | 스레드 생성 및 관리 | 가이드 | API |
sync | 동기화 프리미티브 (Mutex, RwLock, Atomic) | 가이드 | API |
channel | 스레드 간 메시지 패싱 | 가이드 | API |
future | Future 타입 및 combinators | API | |
async | Async 런타임 프리미티브 (Barrier, Semaphore, WaitGroup) | API | |
runtime | Async 런타임 스케줄러 | API | |
async_reactor | 비동기 이벤트 reactor | API | |
async_io | 비동기 I/O 추상화 | API | |
async_net | 비동기 네트워크 (TCP/UDP) | API | |
async_http | 비동기 HTTP 서버 | API |
Data Processing
데이터 직렬화, 정규표현식, 압축 등을 위한 모듈.
| 모듈 | 설명 | 가이드 | API Reference |
|---|---|---|---|
json | JSON 파싱 및 직렬화 | 가이드 | API |
regex | 정규표현식 엔진 | 가이드 | API |
base64 | Base64 인코딩/디코딩 | API | |
template | 텍스트 템플릿 엔진 | API | |
compress | 압축/해제 (gzip, deflate) | API | |
hash | 해시 함수 (SHA-256, SHA-512) | API | |
crc32 | CRC32 체크섬 | API |
Databases
데이터베이스 연동을 위한 모듈.
| 모듈 | 설명 | API Reference |
|---|---|---|
sqlite | SQLite 바인딩 | API |
postgres | PostgreSQL 클라이언트 | API |
orm | ORM (Object-Relational Mapping) | API |
Security & Crypto
암호화 및 로깅을 위한 모듈.
Memory Management
메모리 할당 및 관리를 위한 모듈.
| 모듈 | 설명 | API Reference |
|---|---|---|
memory | 메모리 할당자 인터페이스 | API |
allocator | 커스텀 할당자 구현 | API |
arena | Arena 할당자 | API |
gc | 가비지 컬렉터 (선택적) | API |
참고:
box와rc는 Core Types 섹션을 참조하세요.
System & Runtime
시스템 인터페이스, 시간, 테스트 등을 위한 모듈.
| 모듈 | 설명 | API Reference |
|---|---|---|
time | 시간 측정 및 타이머 | API |
datetime | 날짜/시간 파싱 및 포매팅 | API |
process | 프로세스 생성 및 관리 | API |
signal | Unix 시그널 처리 | API |
env | 환경 변수 접근 | API |
args | 커맨드라인 인자 파싱 | API |
random | 난수 생성기 | API |
uuid | UUID 생성 | API |
math | 수학 함수 (sin, cos, sqrt 등) | API |
profiler | 성능 프로파일러 | API |
test | 유닛 테스트 프레임워크 | API |
proptest | Property-based 테스트 | API |
contract | Design-by-Contract (사전조건/사후조건) | API |
GPU & WASM
GPU 컴퓨팅 및 WASM 런타임을 위한 모듈.
| 모듈 | 설명 | API Reference |
|---|---|---|
gpu | GPU 연산 (CUDA/Metal/OpenCL/WebGPU) | API |
wasm | WASM 런타임 인터페이스 (WASI) | API |
web | Web API (Console/Timer/DOM/Fetch/Storage) | API |
hot | Hot 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 언어 레퍼런스