Skip to content

Penggunaan Cepat

Inisialisasi LightVM sangat fleksibel dan memungkinkan Anda untuk mengkonfigurasi kapabilitas dan fitur debugging sesuai dengan kebutuhan aplikasi Anda.

Menggunakan TypeScript

Untuk proyek berbasis TypeScript, Anda dapat mengkonfigurasi instance VM dengan pola builder yang intuitif sebelum mengakses antarmuka tools utama.

ts
import { LightVM, Capability } from 'lightvm';

const vm = new LightVM({ caps: [Capability.Observe, Capability.Control] })
  .withNightly(false) // To allow nightly features (default: false)
  .withBacktrace(false) // To display backtrace details in error messages (default: false)
  .withExplain(false) // To display a more detailed hint in the error message (default: false)
  .withHint(true); // To display a hint on error messages (default: true)

const tools = vm.tools();
ts
import { LightVM, Capability } from 'lightvm';

const vm = new LightVM({
  caps: [Capability.Observe, Capability.Control],
  runtimeConfig: {
    nightly: false, // To allow nightly features (default: false)
  },
  errorOptions: {
    backtrace: false, // To display backtrace details in error messages (default: false)
    explain: false, // To display a more detailed hint in the error message (default: false)
    hint: true, // To display a hint on error messages (default: true)
  },
});

const tools = vm.tools();

Menggunakan Rust

Bagi pengguna Rust, konfigurasi dilakukan melalui VmConfig. Anda dapat mengatur kemampuan VM secara deklaratif sebelum mengeksekusi bytecode.

rust
use lightvm::LightVM;
use lightvm::types::{vmconfig::VmConfig, capability::Capability};

fn main() {
  let mut vm = LightVM::new(VmConfig {
    caps: vec![Capability::Control, Capability::Observe],
    ..Default::default()
  })
  .with_nightly(false) // To allow nightly features (default: false)
  .with_backtrace(false) // To display backtrace details in error messages (default: false)
  .with_explain(false) // To display a more detailed hint in the error message (default: false)
  .with_hint(true); // To display a hint on error messages (default: true)
  
  let tools = vm.tools();
}
rust
use lightvm::LightVM;
use lightvm::types::{
  vmconfig::VmConfig,
  runtime_config::RuntimeConfig,
  error_options::ErrorOptions,
  capability::Capability
};

fn main() {
  let mut vm = LightVM::new(VmConfig {
    caps: vec![Capability::Control, Capability::Observe],
    runtime_config: RuntimeConfig {
      nightly: false // To allow nightly features (default: false)
    },
    error_options: ErrorOptions {
      backtrace: false, // To display backtrace details in error messages (default: false)
      explain: false, // To display a more detailed hint in the error message (default: false)
      hint: true // To display a hint on error messages (default: true)
    }
  });
  
  let tools = vm.tools();
}

TIP

Dapatkan antarmuka alat. Simpan ini sebagai konstanta agar dapat digunakan kembali untuk semua tugas yang akan datang.

Kapabilitas

Keamanan dan perilaku LightVM dikelola melalui sistem kapabilitas yang tangguh. Gunakan tabel berikut untuk memahami izin apa yang diperlukan untuk kasus penggunaan spesifik Anda:

KapabilitasLevelDeskripsi
ControlRendahMemberikan izin untuk memulai/menghentikan eksekusi dan fungsi ekspor.
ObserveSedangMemungkinkan host untuk memeriksa status internal, tumpukan variabel, dan metrik.
DebugTinggiMembuka akses ke log internal yang detail dan status tersembunyi untuk keperluan pemecahan masalah.
UnsafeKritisMenghilangkan pengaman, memungkinkan penghentian manual dan akses langsung ke memori/proses.

Pemberitahuan Keamanan

Selalu patuhi Prinsip Hak Akses Minimal. Aktifkan hanya kemampuan spesifik yang dibutuhkan aplikasi Anda untuk memastikan lingkungan eksekusi yang aman dan dapat diprediksi.

Dirilis di bawah Lisensi Apache-2.0.