3.4 KiB
Hızlı Başlangıç
Bu kılavuz, D programlama dilini kullanarak Pumpkin sunucu eklentileri yazmaya başlamanıza yardımcı olacaktır.
Pumpkin için D eklentileri, resmi pumpkin-api-d bağlamaları kullanılarak WebAssembly (Wasm) bileşenleri olarak derlenir.
Ön Koşullar
Başlamadan önce aşağıdaki araçların kurulu olduğundan emin olun:
- LDC: Sürüm 1.43 veya üzeri (LLVM tabanlı D derleyicisi).
addon-wasi: LDC için WASI hedef paketi.- DUB: D paket ve derleme aracı (genellikle LDC ile birlikte gelir).
1. Projeyi Kurma
Eklenti projeniz için yeni bir dizin oluşturun ve bir dub.json yapılandırma dosyası ekleyin:
mkdir my-d-plugin
cd my-d-plugin
Proje kökünde dub.json dosyasını oluşturun:
{
"name": "my-d-plugin",
"description": "D ile geliştirilmiş minimal bir Pumpkin eklentisi.",
"license": "proprietary",
"authors": ["Adınız"],
"copyright": "Copyright © 2026, Adınız",
"dependencies": {
"pumpkin-api-d": "~>0.1.0"
},
"targetType": "executable",
"dflags": ["-Xcc=-mexec-model=reactor"],
"buildTypes": {
"debug": {
"buildOptions": ["debugMode", "debugInfo"]
},
"release": {
"buildOptions": ["optimize", "inline"],
"dflags": ["-L-S"]
}
}
}
Note
-Xcc=-mexec-model=reactorbayrağı, eklentinin bir CLI yürütülebilir programı yerine giriş noktaları dışa aktaran bir bileşen (reaktör) olarak bağlanması için WebAssembly bağlayıcısı tarafından zorunlu kılınmıştır.
2. Eklentiyi Yazma
source dizinini oluşturun ve kodunuzu source/app.d içine ekleyin:
module plugin;
import wit.pumpkin.plugin.plugin;
import wit.common;
import pumpkin.register;
struct MyPlugin {
@GetMetadata PluginMetadata getMetadata()
{
immutable(WitString)[$] authors = [
"Adınız".witList
];
return (immutable PluginMetadata(
name: "my-d-plugin".witList,
version_: "0.1.0".witList,
authors: authors.witList,
description: "D dilinde örnek bir eklenti.".witList,
dependencies: WitList!WitString(),
permissions: WitList!WitString()
)).witClone;
}
@OnLoad
Result!(void, WitString) onLoad(Context ctx)
{
scope (exit)
ctx.witDrop; // Gelen kaynaklar kullanıldıktan sonra serbest bırakılmalıdır
log(Level.info, "D eklentisinden merhaba!".witList);
return ok!WitString;
}
}
mixin RegisterPlugin!MyPlugin;
3. Eklentiyi Derleme
Eklentinizi wasm32-wasip2 mimarisini hedefleyen bir WebAssembly bileşeni olarak derleyin:
dub build -b release -a wasm32-wasip2
Bu komut proje kök dizininizde my-d-plugin.wasm dosyasını oluşturacaktır.
4. Eklentiyi Çalıştırma
- Derlenen
.wasmdosyasını Pumpkin sunucunuzunplugins/dizinine kopyalayın:cp my-d-plugin.wasm /yol/pumpkin/plugins/ - Pumpkin sunucusunu başlatın veya yeniden başlatın:
./pumpkin - Eklentinin yüklendiğini doğrulamak için sunucu günlüklerini kontrol edin:
[INFO] D eklentisinden merhaba!