CKN Core

ฐานเดียว ใช้ได้ทั้ง Node และ browser

CKN Core คือไลบรารีพื้นฐานที่รวมงานซ้ำๆ ของระบบธุรกิจไว้ที่เดียว ตั้งแต่ตารางข้อมูล เรียก API ส่งข้อความ real-time ไปจนถึงการคำนวณและ security โดยไม่พึ่ง dependency ภายนอก ทุก package อื่นใน CKN สร้างบนฐานนี้ ทำให้ทีมของคุณเขียนโค้ดน้อยลง ตรวจสอบง่ายขึ้น และเป็นเจ้าของ stack ได้เต็มที่

0runtime dependency ภายนอก
5entry point แยกตามงาน (root, utils, structures, crdt, extensions)
43ไฟล์ test ที่ตรวจทุก release
138ตัวอย่างโค้ดใน guide ที่ถูกรันตรวจจริง
ความสามารถ

สิ่งที่ CKN Core ทำได้

01

ตารางข้อมูลและ model

จัดการข้อมูลแบบตารางในหน่วยความจำได้เหมือนเขียน SQL เบาๆ และแปลงเป็น model สำหรับ API และ database ได้ทันที

  • Table: where, join, groupBy, pivot, aggregate
  • ส่งออก CSV, Markdown, HTML แบบแบ่ง chunk
  • Model พร้อม audit field แปลง camelCase กับ snake_case
  • อ่าน CSV, XML และตรวจ JSON Schema ในตัว
02

เชื่อมต่อระบบภายนอก

client สำหรับ HTTP และ WebSocket ที่มี timeout, retry และเพดานขนาดข้อมูลให้เลือกใช้ ระบบจึงไม่ค้างเมื่อปลายทางมีปัญหา

  • Api: GET, POST, PUT, PATCH, DELETE พร้อม bearer token
  • retry แบบ backoff รองรับ Retry-After
  • Socket: reconnect อัตโนมัติและ queue ที่กำหนดขนาดได้
  • อ่าน streaming และ server-sent events
03

ปลอดภัยตั้งแต่ค่าเริ่มต้น

กันความเสี่ยงที่พบบ่อยตั้งแต่ชั้นล่างสุด เช่น เรียก URL ที่ไม่ปลอดภัย หรือ secret หลุดเข้า log

  • assertSafeUrl กัน private network และ protocol ที่ไม่อนุญาต
  • redactSecrets ซ่อนค่า token และรหัสผ่านใน log
  • sha256, hmacSha256 และ UUID ผ่าน crypto มาตรฐาน
  • Semaphore, Mutex, RateLimiter คุมการทำงานพร้อมกัน
04

คำนวณธุรกิจและรูปแบบไทย

เครื่องมือคำนวณที่งานโรงงาน บัญชี และโลจิสติกส์ใช้บ่อย พร้อมการจัดรูปแบบวันที่ เงิน และข้อความภาษาไทย

  • matrix, regression, แตก BOM และ allocate ต้นทุนแบบ reciprocal
  • แปลงหน่วยด้วย createUnitConverter
  • formatCurrency และ formatDate รองรับ th-TH และ time zone
  • cron expression พร้อม time zone และ DST
05

ค้นหา วิเคราะห์ และข้อมูลไบนารี

โครงสร้างข้อมูลสำหรับงานค้นหาและวิเคราะห์ขนาดใหญ่ เขียนเองทั้งหมด ไม่ต้องพึ่งไลบรารีภายนอก

  • ค้นหาเอกสารคล้ายกันด้วย VectorBatch และ HnswIndex
  • ค้นหาข้อความไทยและอังกฤษด้วย BM25 (InvertedIndex)
  • Graph สำหรับเส้นทางและ dependency, ColumnFrame สำหรับข้อมูลหลายล้านแถว
  • RunningStats, StreamingQuantile และ format ไบนารี CKNB
06

แก้ไขเอกสารร่วมกันแบบ real-time

โมเดลเอกสารแบบ CRDT ให้หลายคนแก้ไฟล์เดียวกันพร้อมกัน แม้บางคนออฟไลน์ แล้วข้อมูลรวมกันได้ตรงกันทุกเครื่อง

  • DocumentModel: text, list, map, register, counter
  • ข้อความ rich text ด้วย mark เช่น ตัวหนา
  • สิทธิ์เขียนรายฟิลด์ด้วย canWrite
  • ทดสอบการรวมข้อมูลด้วย fuzz test แบบสุ่ม
ประสิทธิภาพ

ตัวเลขที่วัดจริง

ตัวเลขทั้งหมดวัดจริงบน Node 24 จากเอกสารของ package ผลจะแตกต่างตามเครื่องและข้อมูลของคุณ

แบ่งหน้าตาราง 100,000 แถว (skip 10, take 10)
0.1 ms
เทียบกับ 152 ms เมื่อใช้ chain แบบ eager ที่คัดลอกทุกแถว
กรอง เรียง และเอา 20 แถวแรกจาก 100,000 แถว
17 ms
เทียบกับ 371 ms แบบ eager
ค้นหาเอกสารคล้ายกัน ในชุดข้อมูล 100,000 รายการ (384 มิติ)
0.5 ms
ค้นเจอประมาณ 99% ของคำตอบที่ถูกต้อง (recall 0.99) เทียบกับ exact search ที่ใช้ราว 35 ms
ค้นหาข้อความ BM25 ในเอกสาร 100,000 ฉบับ
22 ms
ต่อหนึ่งคำค้น รองรับข้อความไทยและอังกฤษ
แตก BOM 10,000 รายการที่มีชิ้นส่วนใช้ร่วมกัน
13 ms
เก็บเฉพาะความสัมพันธ์ของชิ้นส่วน จึงเร็วและใช้หน่วยความจำน้อย
เพิ่มตัวอักษรกลางเอกสารที่ยาว 1 ล้านตัวอักษร (collaborative)
0.02 ms
ลบ 10 ตัวอักษรใช้ 0.16 ms และอ่านช่วง 200 ตัวอักษรใช้ 0.07 ms

ตัวเลขจากชุดทดสอบและ benchmark ภายในของ CKN ผลจริงขึ้นกับเครื่องและปริมาณข้อมูลของแต่ละระบบ

คุณค่าต่อธุรกิจ

ธุรกิจของคุณได้อะไร

ต้นทุนและการเป็นเจ้าของ

ไม่มี dependency ภายนอกใน runtime จึงไม่มีค่า license ต่อเนื่องจากไลบรารีเบื้องหลัง ไม่ต้องรอคนอื่นแก้บั๊ก และไม่ต้องเสี่ยงว่าไลบรารีจะถูกเลิกพัฒนา ซอร์สอยู่ในมือเราและคุณแก้ไขต่อยอดได้

ส่งมอบเร็วขึ้น

งานที่ทีมต้องเขียนซ้ำทุกโปรเจกต์ เช่น ตาราง รายงาน เรียก API และ retry มีให้พร้อมใช้ และโค้ดชุดเดียวกันทำงานได้ทั้งฝั่ง server และ browser ทีมจึงใช้เวลากับกฎธุรกิจของคุณมากกว่างานพื้นฐาน

ความเสี่ยงต่ำลง

ระบบมี timeout, เพดานขนาดข้อมูล และการป้องกัน URL กับ secret ในตัว พร้อมชุด test 43 ไฟล์และตัวอย่างใน guide ที่รันตรวจทุกครั้ง ผลคือระบบที่ค้างหรือหลุดข้อมูลได้ยากขึ้น

สำหรับนักพัฒนา

ตัวอย่าง: เรียก API แล้วสรุปยอดรายภูมิภาค

ใช้งานอยู่ในส่วนต่าง ๆ ของ CKN stack

  • เป็นฐานของ package อื่นใน CKN Technology ทั้ง data, server, ui, ai และ providers
  • ใช้ในบริการธุรกิจและบริการแพลตฟอร์มของ CKN
  • รองรับแอปที่ต้องแก้เอกสารร่วมกันและค้นหาข้อมูลขนาดใหญ่
import { Api, Table } from "@ckn-technology/core";

const api = new Api("https://api.example.com/v1/orders", { cache: false, timeoutMs: 10_000, retries: 2 });
api.setBearerToken(token).setQuery({ status: "open" });

const result = await api.get();
if (!result.ok) throw new Error(`HTTP ${result.status}`);

const orders = Table.toTable(result.data);
for (const [region, group] of orders.groupBy("region")) {
  console.log(region, group.count(), group.sum("amount"));
}
const page = orders.query().where((r) => r.amount > 1000).orderByDesc("amount").take(20).toTable();
CKN Technology

ดู package อื่นในชุดเดียวกัน

อยากเห็น CKN Core ทำงานกับระบบของคุณ

ติดต่อเรา →