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-pluginProje 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=reactor bayrağı, 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-wasip2Bu 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:bashcp my-d-plugin.wasm /yol/pumpkin/plugins/ - Pumpkin sunucusunu başlatın veya yeniden başlatın:bash
./pumpkin - Eklentinin yüklendiğini doğrulamak için sunucu günlüklerini kontrol edin:text
[INFO] D eklentisinden merhaba!