เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ 20 เจตเจพเจฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ WebAssembly เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ 20 เจตเจพเจฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ WebAssembly เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€

เจ‡เจน เจฒเฉ‡เจ– WebAssembly เจจเจพเจฒ JavaScript เจ—เจฃเจจเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจ•เฉ‡ เจ‡เฉฑเจ• เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฎเจพเจฎเจฒเฉ‡ เจฆเฉ€ เจšเจฐเจšเจพ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

WebAssembly - เจ‡เจน เจ•เฉ€ เจนเฉˆ?

เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš, เจ‡เจน เจ‡เฉฑเจ• เจธเจŸเฉˆเจ•-เจ…เจงเจพเจฐเจฟเจค เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจฒเจˆ เจ‡เฉฑเจ• เจฌเจพเจˆเจจเจฐเฉ€ เจนเจฆเจพเจ‡เจค เจซเจพเจฐเจฎเฉˆเจŸ เจนเฉˆเฅค Wasm (เจ›เฉ‹เจŸเจพ เจจเจพเจฎ) เจจเฉ‚เฉฐ เจ…เจ•เจธเจฐ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจชเจฐ เจ…เจœเจฟเจนเจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจนเจฆเจพเจ‡เจค เจซเจพเจฐเจฎเฉˆเจŸ เจจเฉ‚เฉฐ JavaScript เจฆเฉ‡ เจจเจพเจฒ เจฌเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจšเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เจน เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ เจ•เจฟ WebAssembly เจจเฉ‚เฉฐ C/C++, Rust, Go เจตเจฐเจ—เฉ€เจ†เจ‚ เจญเจพเจธเจผเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจฅเฉ‡ เจ…เฉฐเจ•เฉœเจพ เจŸเจพเจˆเจชเจฟเฉฐเจ— เจ…เจคเฉ‡ เจ…เจ–เฉŒเจคเฉ€ เจซเจฒเฉˆเจŸ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฎเจพเจกเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ•เฉ‹เจก, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เฉฑเจชเจฐ เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจฌเจพเจˆเจจเจฐเฉ€ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจœเจฟเฉฐเจจเจพ เจคเฉ‡เจœเจผ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจนเจจเจพเจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจจเฉ‡ WebAssembly เจฆเฉ€ เจชเฉเจฐเจธเจฟเฉฑเจงเฉ€ เจตเจฟเฉฑเจš เจตเจพเจงเจพ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ เจฏเจพเจฆ เจฆเจฟเจตเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚: "Habr" เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจชเจพเจ เจ•เจพเจ‚ เจฒเจˆ - "Habr" เจชเฉเจฐเจšเจพเจฐ เจ•เฉ‹เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจ•เจฟเฉฑเจฒเจฌเจพเจ•เจธ เจ•เฉ‹เจฐเจธ เจตเจฟเฉฑเจš เจฆเจพเจ–เจฒเจพ เจฒเฉˆเจฃ เจตเฉ‡เจฒเฉ‡ 10 เจฐเฉ‚เจฌเจฒ เจฆเฉ€ เจ›เฉ‹เจŸเฅค

เจธเจ•เจฟเฉฑเจฒเจฌเจพเจ•เจธ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ: เจชเฉเจฐเฉˆเจ•เจŸเฉ€เจ•เจฒ เจ•เฉ‹เจฐเจธ "เจฎเฉ‹เจฌเจพเจˆเจฒ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจชเฉเจฐเฉ‹".

เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš, Wasm เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจกเฉ‚เจฎ 3 เจตเจฐเจ—เฉ€เจ†เจ‚ เจ—เฉ‡เจฎเจพเจ‚ เจคเฉ‹เจ‚ เจฒเฉˆ เจ•เฉ‡ เจ†เจŸเฉ‹เจ•เฉˆเจก เจ…เจคเฉ‡ เจซเจฟเจ—เจฎเจพ เจตเจฐเจ—เฉ€เจ†เจ‚ เจตเฉˆเฉฑเจฌ-เจชเฉ‹เจฐเจŸเจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจตเฉˆเจธเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจ•เฉฐเจชเจฟเจŠเจŸเจฟเฉฐเจ— เจตเจฐเจ—เฉ‡ เจ–เฉ‡เจคเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉ€ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ‡เจน เจฒเฉ‡เจ– เจ‡เฉฑเจ• เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจตเฉˆเฉฑเจฌ เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ Wasm เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจธเจชเจธเจผเจŸเจคเจพ เจฒเจˆ, เจ…เจธเฉ€เจ‚ C เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ€ เจ‡เฉฑเจ• เจ•เจพเจฐเจœเจ•เจพเจฐเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจˆ, เจœเจฟเจธเจจเฉ‚เฉฐ WebAssembly เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจจเจคเฉ€เจœเจพ JS เจฆเฉ‡ เจ˜เฉฑเจŸ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจพเจฒเฉ‡ เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจชเจฐเจฟเจตเจฐเจคเจจ

เจ‰เจฆเจพเจนเจฐเจจ fastq.bio เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจธเฉ‡เจตเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‡เจ—เฉ€, เจœเฉ‹ เจ•เจฟ เจœเฉˆเจจเฉ‡เจŸเจฟเจ•เจธ เจฒเจˆ เจนเฉˆเฅค เจŸเฉ‚เจฒ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเฉ€เจเจจเจ เจ•เฉเจฐเจฎ (เจกเจฟเจธเฉ€เจซเจฐเจฟเฉฐเจ—) เจฆเฉ€ เจ—เฉเจฃเจตเฉฑเจคเจพ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจฅเฉ‡ เจ•เจพเจฐเจœ เจตเจฟเฉฑเจš เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจนเฉˆ:

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ 20 เจตเจพเจฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ WebAssembly เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€

เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ‡ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจœเจพเจฃ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจ—เฉˆเจฐ-เจฎเจพเจนเจฟเจฐเจพเจ‚ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจนเจจ, เจชเจฐ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš, เจตเจฟเจ—เจฟเจ†เจจเฉ€ เจ‰เจชเจฐเฉ‹เจ•เจค เจ‡เจจเจซเฉ‹เจ—เฉเจฐเจพเจซเจฟเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ‡เจน เจธเจฎเจเจฃ เจฒเจˆ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ เจ•เจฟ เจ•เฉ€ เจกเฉ€เจเจจเจ เจ•เฉเจฐเจฎ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจธเฉเจšเจพเจฐเฉ‚ เจขเฉฐเจ— เจจเจพเจฒ เจšเจฒเฉ€ เจ—เจˆ เจ…เจคเฉ‡ เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจชเฉˆเจฆเจพ เจนเฉ‹เจˆเจ†เจ‚เฅค

เจ‡เจธ เจธเฉ‡เจตเจพ เจตเจฟเฉฑเจš เจตเจฟเจ•เจฒเจช, เจกเฉˆเจธเจ•เจŸเจพเจช เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจนเจจเฅค เจชเจฐ fastq.bio เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจ•เจฒเจชเจจเจพ เจ•เจฐเจ•เฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจนเฉ‹เจฐ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจธเจพเจฐเฉ‡ เจœเฉˆเจจเฉ‡เจŸเจฟเจ•เจธ เจ•เฉ‹เจฒ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจ…เจจเฉเจญเจต เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจธเจญ เจ•เฉเจ เจธเจงเจพเจฐเจจ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ. เจ‡เฉฐเจชเฉเฉฑเจŸ เจ‡เฉฑเจ• เจŸเฉˆเจ•เจธเจŸ เจซเจพเจˆเจฒ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจกเฉ‡เจŸเจพ เจนเฉˆเฅค เจ‡เจน เจซเจพเจˆเจฒ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจจเฉเจ•เฉเจฐเจฎเจฃ เจธเจพเจงเจจเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจกเฉ€เจเจจเจ เจ•เฉเจฐเจฎเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉ‚เจšเฉ€ เจ…เจคเฉ‡ เจนเจฐเฉ‡เจ• เจจเจฟเจŠเจ•เจฒเฉ€เจ“เจŸเจพเจˆเจก เจฒเจˆ เจ‡เฉฑเจ• เจ—เฉเจฃเจตเฉฑเจคเจพ เจธเจ•เฉ‹เจฐ เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค เจซเจพเจˆเจฒ เจซเจพเจฐเจฎเฉˆเจŸ .fastq เจนเฉˆ, เจœเจฟเจธ เจ•เจพเจฐเจจ เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ เจ‡เจธเจฆเจพ เจจเจพเจฎ เจฎเจฟเจฒเจฟเจ† เจนเฉˆเฅค

JavaScript เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ

fastq.bio เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเจพ เจชเจนเจฟเจฒเจพ เจ•เจฆเจฎ เจนเฉˆ เจขเฉเจ•เจตเฉ€เจ‚ เจซเจพเจˆเจฒ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเจพเฅค เจซเจพเจˆเจฒ เจ†เจฌเจœเฉˆเจ•เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจ‡เฉฑเจ• เจฌเฉ‡เจคเจฐเจคเฉ€เจฌเฉ‡ เจจเจฎเฉ‚เจจเฉ‡ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจธ เจฌเฉˆเจš เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเฉ€ เจนเฉˆ. เจ‡เฉฑเจฅเฉ‡ JavaScript เจฆเจพ เจ•เฉฐเจฎ เจธเจงเจพเจฐเจจ เจธเจŸเฉเจฐเจฟเฉฐเจ— เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจ‡เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ– เจตเฉฑเจ– เจกเฉ€เจเจจเจ เจฆเฉ‡ เจŸเฉเจ•เฉœเจฟเจ†เจ‚ เจ‰เฉฑเจคเฉ‡ เจจเจฟเจŠเจ•เจฒเฉ€เจ“เจŸเจพเจˆเจกเจธ เจ, เจธเฉ€, เจœเฉ€ เจ…เจคเฉ‡ เจŸเฉ€ โ€‹โ€‹เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจนเฉˆเฅค

เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจธเฉ‚เจšเจ•เจพเจ‚ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ Plotly.js เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจตเจฟเจœเจผเฉ‚เจ…เจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจธเฉ‡เจตเจพ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจกเฉ‡เจŸเจพ เจจเจฎเฉ‚เจจเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจšเฉฐเจ•เจฟเฉฐเจ— UX เจฆเฉ€ เจ—เฉเจฃเจตเฉฑเจคเจพ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เฉเจ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจซเฉเจฐเฉ€เจœเจผ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เฉ€, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เฉเจฐเจฎ เจฆเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจตเจพเจฒเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจธเฉˆเจ‚เจ•เฉœเฉ‡ เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจซเจพเจˆเจฒ เจธเจชเฉ‡เจธ เจฒเฉˆเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ. เจธเฉ‡เจตเจพ 0,5 เจคเฉ‹เจ‚ 1 MB เจคเฉฑเจ• เจฆเฉ‡ เจ†เจ•เจพเจฐ เจฆเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจŸเฉเจ•เฉœเฉ‡ เจฒเฉˆเจ‚เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เจฆเจฎ เจฆเจฐ เจ•เจฆเจฎ, เจ—เฉเจฐเจพเจซเจฟเจ•เจฒ เจกเฉ‡เจŸเจพ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ:

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ 20 เจตเจพเจฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ WebAssembly เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€

เจฒเจพเจฒ เจ†เจ‡เจค เจตเจฟเฉฑเจš เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจธเจคเจฐ เจชเจฐเจฟเจตเจฐเจคเจจ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค เจ‡เจน เจธเฉ‡เจตเจพ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจ—เจฃเจจเจพเจคเจฎเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจคเฉ€เจฌเจฐ เจนเจฟเฉฑเจธเจพ เจนเฉˆเฅค เจ‡เจธเจจเฉ‚เฉฐ Wasm เจจเจพเจฒ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉˆเฅค

เจตเฉˆเฉฑเจฌ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ

Wasm เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฒเจˆ, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจŸเฉ€เจฎ เจจเฉ‡ fastq เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ QC เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ (QC - เจ—เฉเจฃเจตเฉฑเจคเจพ เจจเจฟเจฏเฉฐเจคเจฐเจฃ) เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจนเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจเฉ€ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ€เฅค เจ–เฉ‹เจœ C, C++ เจœเจพเจ‚ Rust เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ‡ เจŸเฉ‚เจฒเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจคเจพเจ‚ เจœเฉ‹ เจ•เฉ‹เจก เจจเฉ‚เฉฐ WebAssembly เจตเจฟเฉฑเจš เจชเฉ‹เจฐเจŸ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ‹ เจธเจ•เฉ‡เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจธเฉฐเจฆ "เจ•เฉฑเจšเจพ" เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ; เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจœเจฟเจธเจฆเฉ€ เจตเจฟเจ—เจฟเจ†เจจเฉ€เจ†เจ‚ เจฆเฉเจ†เจฐเจพ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€เฅค

เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจšเฉ‹เจฃ เจฆเฉ‡ เจนเฉฑเจ• เจตเจฟเฉฑเจš เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€ seqtk. เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ•เจพเจซเจผเฉ€ เจฎเจธเจผเจนเฉ‚เจฐ เจนเฉˆ, เจ‡เจน เจ“เจชเจจ-เจธเฉ‹เจฐเจธ เจนเฉˆ, เจธเจฐเฉ‹เจค เจญเจพเจธเจผเจพ เจธเฉ€.

Wasm เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจกเฉˆเจธเจ•เจŸเฉŒเจช เจฒเจˆ seqtk เจฆเฉ‡ เจธเฉฐเจ•เจฒเจจ เจธเจฟเจงเจพเจ‚เจค เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจฃ เจนเฉˆเฅค เจฎเฉ‡เจ•เจซเจพเจˆเจฒ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจ‡เฉฑเจฅเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ€ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

# Compile to binary
$ gcc seqtk.c 
   -o seqtk 
   -O2 
   -lm 
   -lz

เจธเจฟเจงเจพเจ‚เจค เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ Emscripten เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ seqtk เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจœเฉ‡เจ•เจฐ เจ‡เจน เจ‰เฉฑเจฅเฉ‡ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ.

$ docker pull robertaboukhalil/emsdk:1.38.26
$ docker run -dt --name wasm-seqtk robertaboukhalil/emsdk:1.38.26

เจœเฉ‡ เจฒเฉ‹เฉœเฉ€เจฆเจพ เจนเฉ‹เจตเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจ‡เจ•เฉฑเจ เจพ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจ‡เจธ เจจเฉ‚เฉฐ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ, เจคเฉเจธเฉ€เจ‚ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ gcc เจฆเฉ‡ เจตเจฟเจ•เจฒเจช เจตเจœเฉ‹เจ‚ emcc เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

# Compile to WebAssembly
$ emcc seqtk.c 
    -o seqtk.js 
    -O2 
    -lm 
    -s USE_ZLIB=1 
    -s FORCE_FILESYSTEM=1

เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจฌเจฆเจฒเจพเจ…:

เจ‡เฉฑเจ• เจฌเจพเจˆเจจเจฐเฉ€ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฌเจœเจพเจ, Emscripten เจซเจพเจˆเจฒเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ .wasm เจ…เจคเฉ‡ .js เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ WebAssemby เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

USE_ZLIB เจซเจฒเฉˆเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ zlib เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ‡ เจธเจฎเจฐเจฅเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ WebAssembly เจตเจฟเฉฑเจš เจชเฉ‹เจฐเจŸ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ Emscripten เจ‡เจธเจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

Emscriptten เจตเจฐเจšเฉเจ…เจฒ เจซเจพเจ‡เจฒ เจธเจฟเจธเจŸเจฎ เจธเจฐเจ—เจฐเจฎ เจนเฉˆเฅค เจ‡เจน POSIX-เจตเจฐเจ—เฉ‡ FS, เจฌเจฐเจพเจŠเจœเจผเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ RAM เจตเจฟเฉฑเจš เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจชเฉฐเจจเจพ เจคเจพเจœเจผเจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจธเจพเจซเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ‡เจน เจธเจฎเจเจฃ เจฒเจˆ เจ•เจฟ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจฒเฉ‹เฉœ เจ•เจฟเจ‰เจ‚ เจนเฉˆ, เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจฆเฉเจ†เจฐเจพ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ WebAssembly เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจคเฉ‹เจ‚ seqtk เจšเจฒเจพเจ‰เจฃ เจฆเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจจ เจฏเฉ‹เจ— เจนเฉˆเฅค

# On the command line
$ ./seqtk fqchk data.fastq
 
# In the browser console
> Module.callMain(["fqchk", "data.fastq"])

เจตเจฐเจšเฉเจ…เจฒ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจซเจพเจˆเจฒ เจ‡เฉฐเจชเฉเฉฑเจŸ เจฆเฉ€ เจฌเจœเจพเจ เจธเจคเจฐ เจฒเจˆ seqtk เจจเฉ‚เฉฐ เจฎเฉเฉœ เจจเจพ เจฒเจฟเจ–เจฟเจ† เจœเจพเจตเฉ‡เฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจกเฉ‡เจŸเจพ เจซเจฐเฉˆเจ—เจฎเฉˆเจ‚เจŸ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• data.fastq เจซเจพเจˆเจฒ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจตเจฐเจšเฉเจ…เจฒ FS เจตเจฟเฉฑเจš เจฎเฉเฉฑเจ–() seqtk เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจจ เจฆเฉ‡ เจจเจพเจฒ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจฅเฉ‡ เจจเจตเจพเจ‚ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจนเฉˆ:

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ 20 เจตเจพเจฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ WebAssembly เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€

เจšเจฟเฉฑเจคเจฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจฎเฉเฉฑเจ– เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจฅเฉเจฐเฉˆเจก เจตเจฟเฉฑเจš เจ—เจฃเจจเจพ เจฆเฉ€ เจฌเจœเจพเจ, เจตเฉˆเจฌเจตเจฐเจ•เจฐเจธ. เจ‡เจน เจตเจฟเจงเฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจœเจตเจพเจฌเจฆเฉ‡เจนเฉ€ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจฌเฉˆเจ•เจ—เฉเจฐเจพเจŠเจ‚เจก เจฅเจฐเจฟเฉฑเจก เจตเจฟเฉฑเจš เจ—เจฃเจจเจพ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ–เฉˆเจฐ, เจตเฉˆเจฌเจตเจฐเจ•เจฐ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจตเจฐเจ•เจฐ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจฎเฉเฉฑเจ– เจฅเฉเจฐเฉˆเฉฑเจก เจฆเฉ‡ เจจเจพเจฒ เจ‡เจธเจฆเฉ‡ เจชเจฐเจธเจชเจฐ เจชเฉเจฐเจญเจพเจต เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

seqtk เจ•เจฎเจพเจ‚เจก เจฎเจพเจŠเจ‚เจŸ เจ•เฉ€เจคเฉ€ เจซเจพเจˆเจฒ เจ‰เฉฑเจคเฉ‡ เจตเจฐเจ•เจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจšเจฒเจพเจˆ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจชเฉ‚เจฐเจพ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจตเจฐเจ•เจฐ เจตเจพเจ…เจฆเฉ‡ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจคเฉ€เจœเจพ เจชเฉˆเจฆเจพ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจฎเฉเฉฑเจ– เจฅเฉเจฐเฉˆเจก เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจจเจคเฉ€เจœเจพ เจ—เฉเจฐเจพเจซเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจชเจกเฉ‡เจŸ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เจˆ เจฆเฉเจนเจฐเจพเจ“ เจตเจฟเฉฑเจš.

WebAssembly เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฌเจพเจฐเฉ‡ เจ•เฉ€?

เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฒเจˆ, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจŸเฉ€เจฎ เจจเฉ‡ เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฐเฉ€เจก เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€เฅค เจ‡เฉฐเจŸเจฐเจเจ•เจŸเจฟเจต เจ—เฉเจฐเจพเจซเจผ เจฌเจฃเจพเจ‰เจฃ เจตเจฟเฉฑเจš เจฒเฉฑเจ—เจฃ เจตเจพเจฒเฉ‡ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจฐเฉฑเจ–เจฟเจ† เจ—เจฟเจ† เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฆเฉ‹เจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ JavaScript เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจ†เจŠเจŸ-เจ†เจซ-เจฌเจพเจ•เจธ เจนเฉฑเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจฟเฉฑเจš เจตเจพเจงเจพ เจจเฉŒเจ‚ เจ—เฉเจฃเจพ เจธเฉ€เฅค

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ 20 เจตเจพเจฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ WebAssembly เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€

เจ‡เจน เจ‡เฉฑเจ• เจธเจผเจพเจจเจฆเจพเจฐ เจจเจคเฉ€เจœเจพ เจนเฉˆ, เจชเจฐ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ, เจ‡เจธ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจ‡เฉฑเจ• เจฎเฉŒเจ•เจพ เจตเฉ€ เจนเฉˆ. เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ QC เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจฆเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจ—เจฟเจฃเจคเฉ€ seqtk เจฆเฉเจ†เจฐเจพ เจจเจนเฉ€เจ‚ เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€, เจ‡เจธเจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ. เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ…เจœเจฟเจนเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจจเจคเฉ€เจœเจพ JS เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ 13 เจ—เฉเจฃเจพ เจตเจง เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ 20 เจตเจพเจฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ WebAssembly เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€

เจ‡เจน เจธเจฟเจฐเจซเจผ printf() เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเฉ‚เฉฐ เจŸเจฟเฉฑเจชเจฃเฉ€ เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค

เจชเจฐ เจ‡เจน เจธเจญ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจธ เจชเฉœเจพเจ… 'เจคเฉ‡, fastq.bio เจตเฉฑเจ–-เจตเฉฑเจ– C เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจ•เฉ‡ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจฐ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจ†เจชเจฃเฉ‡ เจธเฉˆเฉฑเจŸ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจœเฉ‹ เจซเจพเจˆเจฒ เจฆเฉ‡ เจนเจฐเฉ‡เจ• เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจฆเฉ‹ เจตเจพเจฐ เจชเฉœเฉเจนเจฟเจ† เจœเจพ เจธเจ•เฉ‡เฅค

เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ, เจฆเฉ‹ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจ‰เจคเจชเจพเจฆเจ•เจคเจพ 20 เจ—เฉเจฃเจพ เจตเจง เจ—เจˆ.

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ 20 เจตเจพเจฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ WebAssembly เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€

เจ‡เจน เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฏเฉ‹เจ— เจนเฉˆ เจ•เจฟ เจ…เจœเจฟเจนเจพ เจธเจผเจพเจจเจฆเจพเจฐ เจจเจคเฉ€เจœเจพ เจนเจฎเฉ‡เจธเจผเจพ เจชเฉเจฐเจพเจชเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ. เจ•เฉเจ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš, เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ˜เจŸ เจœเจพเจตเฉ‡เจ—เจพ, เจ‡เจธเจฒเจˆ เจ‡เจน เจนเจฐเฉ‡เจ• เจ•เฉ‡เจธ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฏเฉ‹เจ— เจนเฉˆเฅค

เจธเจฟเฉฑเจŸเฉ‡ เจตเจœเฉ‹เจ‚, เจ…เจธเฉ€เจ‚ เจ•เจนเจฟ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ Wasm เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เจฐเจจ เจฆเจพ เจ‡เฉฑเจ• เจฎเฉŒเจ•เจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ เจธเจฎเจเจฆเจพเจฐเฉ€ เจจเจพเจฒ เจตเจฐเจคเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจธเจ•เจฟเฉฑเจฒเจฌเจพเจ•เจธ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ:

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹