Papermake - เซิร์ฟเวอร์สร้างเอกสาร PDF แบบโฮสต์เองได้บนพื้นฐาน Typst
(github.com/rkstgr)Papermake เป็นเซิร์ฟเวอร์สร้างเอกสารบน HTTP ที่สร้าง PDF โดยใช้เทมเพลต Typst
วัตถุประสงค์
- การจัดการเทมเพลต Typst แบบรวมศูนย์
- การสร้าง PDF ผ่าน REST API
- การจัดการเวอร์ชันของเทมเพลต
- การจัดการประวัติการสร้าง (Audit Trail)
- ให้บริการคลังเทมเพลตที่คล้ายกับ Docker Registry
ฟีเจอร์หลัก
- เทมเพลตที่จัดการเป็นโค้ด (Templates as Code)
- เทมเพลตรองรับทั้งเวอร์ชันที่เปลี่ยนแปลงไม่ได้ (Immutable) และแท็กที่เปลี่ยนแปลงได้ (Mutable)
- ตัวอย่างเช่น
invoice:v1.0.0เมื่อถูกสร้างแล้วจะไม่เปลี่ยนแปลง ส่วนinvoice:latestสามารถอัปเดตให้ชี้ไปยังเวอร์ชันล่าสุดได้
- การเรนเดอร์ฝั่งเซิร์ฟเวอร์ (Server-side Rendering)
- ไม่จำเป็นต้องติดตั้ง Typst ในสภาพแวดล้อมของไคลเอนต์
- เพียงเรียก HTTP API ก็สามารถให้เซิร์ฟเวอร์เรนเดอร์ PDF แล้วส่งกลับมาได้
- ที่เก็บข้อมูลแบบอ้างอิงตามเนื้อหา (Content-addressable Storage)
- จัดเก็บเทมเพลตโดยอิงจากแฮช SHA-256
- เทมเพลตที่เหมือนกันจะไม่ถูกจัดเก็บซ้ำ และจัดการพื้นที่จัดเก็บอย่างมีประสิทธิภาพในลักษณะคล้าย Git
- การติดตามตรวจสอบอย่างครบถ้วน (Audit Trail)
- บันทึกแฮชของข้อมูลอินพุตและผลลัพธ์เอาต์พุตสำหรับงานเรนเดอร์ทั้งหมด
- PDF ทุกไฟล์ที่สร้างขึ้นสามารถติดตามได้อย่างแม่นยำว่าสร้างจากเทมเพลตใดและข้อมูลใด
- โฮสต์เองได้ (Self-hostable)
- สามารถสร้างและดำเนินการระบบเองได้ด้วยไฟล์ปฏิบัติการเดี่ยวที่เขียนด้วย Rust, อ็อบเจกต์สตอเรจที่เข้ากันได้กับ S3 และ ClickHouse เท่านั้น
ยังไม่มีความคิดเห็น