원문 캡처 · github.com
원문 캡처 · github.com

Lissic은 .NET 8.0 이상에서 사용할 수 있는 웹·텍스트 템플릿 엔진이다. 제작자는 버퍼에 렌더링할 때 기본적으로 메모리 할당이 없고, 리플렉션이나 dynamic을 쓰지 않아 AOT와 호환된다고 소개한다.

패키지는 NuGet에서 제공한다. 설치 명령은 다음과 같다.

bash
dotnet add package Lissic

템플릿은 코드에 직접 정의하거나 파일에서 가져올 수 있다. 태그에 맞춰 소스 생성기가 DTO를 만들며, 제작자는 이를 통해 컴파일 시점에 안전성을 제공한다고 설명한다. 파일 기반 템플릿은 디버그 모드에서 핫 리로드를 지원한다. 사용법은 문서와 시작 안내에서 확인할 수 있다.

csharp
[TemplateText("Hello {{ name <upper> }}!")]
public partial class LissicExample {}

// Automatically transforms the partial class into a DTO, with a property for each tag
LissicExample myTemplate = new() { name = "John" };

// LissicProcessor retrieved from Dependency Injection (see Getting Started)
lissicProcessor.RenderToBuffer(myTemplate, HttpResponse.BodyWriter);

// Writes "Hello JOHN!" to the HTTP response body

LissicProcessor는 범위 지정 또는 일시적 수명으로 사용해야 한다. 생성과 폐기 비용은 적지만 스레드 안전하지 않다고 안내한다.

제작자가 공개한 벤치마크는 HTML 목록에 서식이 적용된 행 100개를 만드는 Fluid 표준 작업을 기준으로 한다. BenchmarkDotNet으로 측정했으며, 32GB 메모리를 탑재한 9800X3D에서 2026년 10월 20일 기준 각 라이브러리의 최신 버전을 사용했다. 아래 수치는 원문에 제시된 평균 시간과 할당량이다.

방법평균 시간할당량
Lissic_Render_ToString8.814 us18072 B
Lissic_Render_ToBuffer8.482 us0 B
Fluid_Render15.593 us37128 B
Fluid_SourceGenerated_Render24.045 us49128 B
Scriban_Render70.985 us144025 B
DotLiquid_Render173.521 us674928 B
Handlebars_Render21.944 us122176 B

이는 제작자가 제시한 측정 결과이며, 원문에는 벤치마크의 오차와 비율 등 다른 항목도 함께 실려 있다.