Привет, мир
Первый пост — о том зачем я завёл этот блог и что планирую писать.
Тестовая страница в блоге для демонстрации возможностей
Интерактивные примеры
Можно запускать код прямо в браузере — нажми Run или Ctrl+Enter:
const langs = ['JavaScript', 'Python', 'SQLite'];
langs.forEach((lang, i) => {
console.log(`${i + 1}. ${lang}`);
}); Код редактируемый — можно менять и запускать снова.
Python тоже поддерживается через WASI runtime — при первом запуске загрузится ~26 MB:
nums = [1, 2, 3, 4, 5]
print(f"Сумма: {sum(nums)}")
print(f"Среднее: {sum(nums) / len(nums)}") Server runtime
Следующие блоки работают через self-hosted codapi-сервер (engine=server). Требует запущенного локально или задеплоенного инстанса.
def fib(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
for i in range(10):
print(f"fib({i}) = {fib(i)}") Rust 🦀
fn main() {
let primes: Vec<u32> = (2..30)
.filter(|&n| (2..n).all(|i| n % i != 0))
.collect();
println!("{:?}", primes);
} Даже Zig 🦎 у нас работает (в теории):
const std = @import("std");
fn printOut(io: std.Io, comptime fmt: []const u8, args: anytype) !void {
const stdout = std.Io.File.stdout();
var buf: [0]u8 = .{};
var writer = stdout.writer(io, &buf);
try writer.interface.print(fmt, args);
}
pub fn main(init: std.process.Init) !void {
const stdout = std.Io.File.stdout();
try stdout.writeStreamingAll(init.io, "Хеллоу World!\n");
try printOut(init.io, "x = {d}, s = {s}\n", .{ 42, "( ͡° ͜ʖ ͡°)" });
} Всё благодаря открытой библиотеке 👉 codapi