코드 액션
그래프만으로 부족할 때는 Code 박스가 스크립트를 실행합니다.
7 개 언어를 사용할 수 있으며, 모두 내장된 WebAssembly 샌드박스 안에서 실행됩니다. 사용하는 컴퓨터에 인터프리터를 설치할 필요가 없고, 스크립트는 파일 시스템에 접근하지 못합니다.
| 언어 | 엔진 |
|---|---|
| TypeScript | QuickJS(타입은 컴파일 시점에 제거됩니다) |
| JavaScript | QuickJS |
| Python | Pyodide(WebAssembly로 컴파일한 CPython) |
| Lua | WebAssembly 상의 Lua 5.4 |
| Ruby | WebAssembly 상의 CRuby |
| R | WebR |
| C# | Roslyn을 갖춘 WebAssembly 상의 .NET |
기본 언어는 TypeScript입니다.
어떤 언어를 쓰더라도 박스가 드러내는 것은 동일합니다.
| 입력 | value (input이라는 이름), code (문자열) |
| 출력 | result |
| 설정 | language, code, timeout, packages |
input— 입력 포트로 받은 값입니다.vars— 실행 변수입니다.- 각 언어의 표준 출력(
console.log,print,puts,cat,Console.WriteLine)은 실행 로그로 흘러갑니다. - 반환된 값은
result포트로 나갑니다. 오류나 시간 초과는error포트로 나갑니다.
timeout 은 초 단위로, 기본값은 5, 최대값은 60입니다. 이를 넘긴
스크립트는 중단되고 실행은 error 포트로 진행됩니다.
외부 패키지
Section titled “외부 패키지”packages 필드는 { name, version } 의 목록을 받습니다. 정확한 버전이 캐시
키가 됩니다. 의존성은 첫 실행 때 해석되어 캐시에 저장되고, 이후의 모든
실행에서는 오프라인으로 마운트됩니다. CI에서도 마찬가지입니다.
| 언어 | 출처 |
|---|---|
| TypeScript / JavaScript | npm(전체를 한 번에 묶습니다) |
| Python | PyPI의 순수 Python 휠 |
| Lua | LuaRocks(순수 Lua 소스) |
| Ruby | 순수 Ruby gem |
| R | CRAN, WebR의 WebAssembly 저장소를 경유 |
| C# | 없음 — .NET 표준 라이브러리만 사용 |
코드를 쓰지 않아도 되는 경우
Section titled “코드를 쓰지 않아도 되는 경우”많은 요구는 이미 전용 박스로 해결됩니다. 그편이 더 읽기 쉽고 더 빠릅니다.
| 필요한 일 | 박스 |
|---|---|
| 응답에서 값 하나 꺼내기 | 링크 셀렉터 |
| 문자열 서식 맞추기 | 변환 |
| 목록 필터링, 정렬, 집계 | 목록 |
| 해시, 인코딩, 서명 | 인코딩 |
| 구조 검증 | Schema validate |
Code 박스는 정말로 고유한 로직을 위해 남겨 두십시오.