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 เท่านั้น

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น