greenrefactor-js
v0.5.0
Published
GreenRefactor JavaScript SDK (WS + HTTP fallback) — spans & session
Downloads
18
Maintainers
Readme
GreenRefactor JavaScript SDK
GreenRefactor JS, web ve Node.js uygulamalarınızın enerji tüketimini ve karbon ayak izini ölçmenizi sağlayan hafif bir SDK'dır. greenrefactor backend servisi ile WebSocket veya HTTP üzerinden haberleşir.
🚀 Özellikler
- Universal: Node.js ve Tarayıcı (React, Vue, vb.) ortamlarında çalışır.
- Gerçek Zamanlı: WebSocket bağlantısı ile anlık veri akışı.
- Fallback: WebSocket başarısız olursa HTTP üzerinden çalışmaya devam eder.
- Resource Tracking: CPU ve RAM kullanımını otomatik raporlar.
- Kolay Entegrasyon: Decorator veya wrapper fonksiyonlar ile mevcut kodunuza kolayca eklenir.
📦 Kurulum
npm install greenrefactor-jsNot: Sunucuyu başlatmak için Docker gereklidir. Docker Desktop'ın kurulu ve çalışır durumda olduğundan emin olun.
Not: Node.js ortamında WebSocket kullanmak istiyorsanız
wspaketini de yüklemeniz önerilir:npm install ws
🏁 Hızlı Başlangıç
1. Backend Servisini Başlatın
Öncelikle GreenRefactor sunucusunun çalıştığından emin olun:
# NPM üzerinden sunucuyu başlatın (Docker gerektirir)
npx greenrefactor server2. SDK'yı Başlatın
Uygulamanızın giriş noktasında (entry point) SDK'yı yapılandırın:
import { init, CarbonClient } from "greenrefactor-js";
// SDK konfigürasyonu
init({
host: "127.0.0.1", // Backend host
httpPort: 8123, // HTTP port
wsPort: 8124 // WebSocket port
});
// Session başlatma
const session = new CarbonClient({ service: "my-app", version: "1.0.0" });
await session.start();3. İşlemleri Ölçün (Span Kullanımı)
Belirli bir işin ne kadar enerji tükettiğini ölçmek için carbonSpan kullanın:
import { carbonSpan } from "greenrefactor-js";
// Bir fonksiyonu sarmalayarak ölçümleme
const heavyTask = carbonSpan("database.query", async () => {
// CPU yoğun veya uzun süren işlemler...
await db.query("SELECT * FROM huge_table");
return "done";
});
await heavyTask();🌐 React / Frontend Örneği
React uygulamanızda useEffect içinde session başlatabilirsiniz:
import { useEffect } from 'react';
import { init, CarbonClient, carbonSpan } from 'greenrefactor-js';
function App() {
useEffect(() => {
init({ host: 'localhost', httpPort: 8123, wsPort: 8124 });
const session = new CarbonClient({ service: 'frontend-app' });
session.start();
return () => { session.end(); };
}, []);
const handleProcess = async () => {
await carbonSpan('user-action', async () => {
// İşlem mantığı
await fetch('/api/process');
})();
};
return <button onClick={handleProcess}>İşlemi Başlat</button>;
}⚙️ Konfigürasyon
init fonksiyonu aşağıdaki parametreleri alır:
| Parametre | Tip | Varsayılan | Açıklama |
|-----------|------|------------|----------|
| host | string | 127.0.0.1 | GreenRefactor sunucu adresi |
| httpPort | number | 8123 | HTTP API portu |
| wsPort | number | 8124 | WebSocket portu |
| secure | boolean | false | HTTPS/WSS kullanımı |
📄 Lisans
MIT License - RmkodTech
