PageSourceSearch

http://luajit.io/posts/

html luajit.io collected 2026-10-03 23:35:07 UTC 38,742 bytes, 780 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3    <head prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article#">
3<script src="/livereload.js?mindelay=10&amp;v=2&amp;port=80&amp;path=livereload" data-no-instant defer></script>
3
4    <meta charset="UTF-8" />
5
6    <meta name="generator" content="Hugo 0.110.0"><meta name="theme-color" content="#fff" />
7    <meta name="color-scheme" content="light dark">
8
9    
10    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11    
12    <meta name="format-detection" content="telephone=no, date=no, address=no, email=no" />
13    
14    <meta http-equiv="Cache-Control" content="no-transform" />
15    
16    <meta http-equiv="Cache-Control" content="no-siteapp" />
17
18    <title>Posts | Jinhua Blog</title>
19
20    <link rel="stylesheet" href="/css/meme.min.1086e29acbc490654176e7c2b583a0cb5e86675ecec538c544ef90ead886b504.css"/>
21
22    
23    
24        
24<script src="https://cdn.jsdelivr.net/npm/[email protected]/lunr.min.js" defer></script>
24<script src="/js/meme.min.305b3bc5fd0cf013c19bcf759329887f2806f56ff26901dd47e274623c68a0d4.js"></script>
24
25
26    
27
28    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
29
30        <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM&#43;Plex&#43;Serif:ital,wght@0,400;0,500;0,700;1,400;1,700&amp;family=Source&#43;Code&#43;Pro:ital,wght@0,400;0,700;1,400;1,700&amp;family=Comfortaa:wght@700&amp;display=swap" media="print" onload="this.media='all'" />
31        <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM&#43;Plex&#43;Serif:ital,wght@0,400;0,500;0,700;1,400;1,700&amp;family=Source&#43;Code&#43;Pro:ital,wght@0,400;0,700;1,400;1,700&amp;family=Comfortaa:wght@700&amp;display=swap" /></noscript>
32
33    <meta name="author" content="jinhualuo" /><meta name="description" content="MemE is a powerful and highly customizable GoHugo theme for personal blogs." />
34
35    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
36    <link rel="mask-icon" href="/icons/safari-pinned-tab.svg" color="#2a6df4" />
37    <link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon.png" />
38    <meta name="apple-mobile-web-app-capable" content="yes" />
39    <meta name="apple-mobile-web-app-title" content="Jinhua Blog" />
40    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
41    <meta name="mobile-web-app-capable" content="yes" />
42    <meta name="application-name" content="Jinhua Blog" />
43    <meta name="msapplication-starturl" content="../" />
44    <meta name="msapplication-TileColor" content="#fff" />
45    <meta name="msapplication-TileImage" content="../icons/mstile-150x150.png" />
46    <link rel="manifest" href="/manifest.json" />
47
48    
49    
50
51    
52    <link rel="canonical" href="//luajit.io:80/posts/" />
53    
54
55<script type="application/ld+json">
56    {
57        "@context": "https://schema.org",
58        "@type": "WebPage",
59        "datePublished": "2022-10-01T20:17:43+00:00",
60        "dateModified": "2026-01-02T11:12:14+08:00",
61        "url": "//luajit.io:80/posts/",
62        "name": "Posts",
63        "description": "MemE is a powerful and highly customizable GoHugo theme for personal blogs.",
64        "image": "//luajit.io:80/icons/apple-touch-icon.png",
65        "license": "[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en)",
66        "publisher": {
67            "@type": "Organization",
68            "name": "Jinhua Blog",
69            "logo": {
70                "@type": "ImageObject",
71                "url": "//luajit.io:80/icons/apple-touch-icon.png"
72            },
73            "url": "//luajit.io:80/"
74        },
75        "mainEntityOfPage": {
76            "@type": "WebSite",
77            "@id": "//luajit.io:80/"
78        }
79    }
80</script>
80
81
82    
83
84<meta name="twitter:card" content="summary" />
85
86<meta name="twitter:site" content="@kingluo" />
87<meta name="twitter:creator" content="@kingluo" />
88
89    
90
91
92
93<meta property="og:title" content="Posts" />
94<meta property="og:description" content="MemE is a powerful and highly customizable GoHugo theme for personal blogs." />
95<meta property="og:url" content="//luajit.io:80/posts/" />
96<meta property="og:site_name" content="Jinhua Blog" />
97<meta property="og:locale" content="en" /><meta property="og:image" content="//luajit.io:80/icons/apple-touch-icon.png" />
98    <meta property="og:type" content="website" />
99
100        <link rel="preconnect" href="https://www.google-analytics.com" crossorigin />
vendor: 85 bytes, lines 100-106
100
101
102        
103
104
105    
106    <script async src="https://www.googletagmanager.com/gtag/js?id=
106G-THPHBYK4JK
vendor: 16 bytes, lines 106-107
106"></script>
107    
107<script>
108        
vendor: 152 bytes, lines 108-112
108window.dataLayer = window.dataLayer || [];
109        function gtag(){dataLayer.push(arguments);}
110        gtag('js', new Date());
111
112        gtag('config', '
112G-THPHBYK4JK
vendor: 8 bytes, lines 112-113
112');
113    
113</script>
113
114
115
116
117
118    
119    
120
121    
122</head>
123
124    <body>
125        <div class="container">
126            
127    <header class="header">
128        
129            <div class="header-wrapper">
130                <div class="header-inner list">
131                    
132    <div class="site-brand">
133        
134            <a href="/" class="brand">Jinhua Blog</a>
135        
136    </div>
137
138                    <nav class="nav">
139    <ul class="menu" id="menu">
140        
141            
142        
143        
144        
145        
146            
147                <li class="menu-item active"><a href="/posts/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="icon archive"><path d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"/></svg><span class="menu-item-name">Posts</span></a>
148                </li>
149            
150        
151            
152                <li class="menu-item"><a href="/categories/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="icon th"><path d="M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"/></svg><span class="menu-item-name">Categories</span></a>
153                </li>
154            
155        
156            
157                <li class="menu-item"><a href="/tags/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512" class="icon tags"><path d="M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"/></svg><span class="menu-item-name">Tags</span></a>
158                </li>
159            
160        
161            
162                <li class="menu-item"><a href="/about/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" class="icon user-circle"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"/></svg><span class="menu-item-name">About</span></a>
163                </li>
164            
165        
166            
167                
168                    
169                    
170                        <li class="menu-item">
171                            <a id="theme-switcher" href="#"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="icon theme-icon-light"><path d="M193.2 104.5l48.8-97.5a18 18 0 0128 0l48.8 97.5 103.4 -34.5a18 18 0 0119.8 19.8l-34.5 103.4l97.5 48.8a18 18 0 010 28l-97.5 48.8 34.5 103.4a18 18 0 01-19.8 19.8l-103.4-34.5-48.8 97.5a18 18 0 01-28 0l-48.8-97.5l-103.4 34.5a18 18 0 01-19.8-19.8l34.5-103.4-97.5-48.8a18 18 0 010-28l97.5-48.8-34.5-103.4a18 18 0 0119.8-19.8zM256 128a128 128 0 10.01 0M256 160a96 96 0 10.01 0"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="icon theme-icon-dark"><path d="M27 412a256 256 0 10154-407a11.5 11.5 0 00-5 20a201.5 201.5 0 01-134 374a11.5 11.5 0 00-1
1715 13"/></svg></a>
172                        </li>
173                    
174                
175            
176        
177            
178                
179            
180        
181            
182                <li class="menu-item search-item">
183                        <form id="search" class="search" role="search">
184    <label for="search-input"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="icon search-icon"><path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg></label>
185    <input type="search" id="search-input" class="search-input">
186</form>
187
188<template id="search-result" hidden>
189    <article class="content post">
190        <h2 class="post-title"><a class="summary-title-link"></a></h2>
191        <summary class="summary"></summary>
192        <div class="read-more-container">
193            <a class="read-more-link">Read More »</a>
194        </div>
195    </article>
196</template>
197
198                    </li>
199                
200            
201        
202    </ul>
203</nav>
204
205                    
206                </div>
207            </div>
208            
209    <input type="checkbox" id="nav-toggle" aria-hidden="true" />
210    <label for="nav-toggle" class="nav-toggle"></label>
211    <label for="nav-toggle" class="nav-curtain"></label>
212
213
214        
215    </header>
216
217
218
219
220            
221            
222        <main class="main list" id="main">
223            <div class="main-inner">
224                <div class="content list-group">
225                    
226                        
227                            <h1 class="list-title">Posts</h1>
228                        
229                        
230                    
231
232                    
233
234                    
235                    
236                        
237                        
238                            
239                            
240                                
241                                    
242                                
243                            
244                                
245                                    
246                                
247                            
248                                
249                                    
250                                
251                            
252                                
253                                    
254                                
255                            
256                                
257                                    
258                                
259                            
260                                
261                                    
262                                
263                            
264                                
265                                    
266                                
267                            
268                                
269                                    
270                                
271                            
272                                
273                                    
274                                
275                            
276                                
277                                    
278                                
279                            
280                                
281                                    
282                                
283                            
284                                
285                                    
286                                
287                            
288                                
289                                    
290                                
291                            
292                                
293                                    
294                                
295                            
296                                
297                                    
298                                
299                            
300                                
301                                    
302                                
303                            
304                                
305                                    
306                                
307                            
308                                
309                                    
310                                
311                            
312                                
313                                    
314                                
315                            
316                                
317                                    
318                                
319                            
320                                
321                                    
322                                
323                            
324                                
325                                    
326                                
327                            
328                        
329                    
330
331                    
332
333                    
334                    
335
336                    
337                    
338                    
339                        
340                        
341                            
342                            
343                        
344                        
345                        
346                        
347                            
348                        
349                        
350                        <h2 class="list-year">2026<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" class="icon chinese-zodiac"><path d="M455 526q-1-23-23-28 0-21 10-21 8 0-9-10-27-18-45-18-14 0-2-15 9-13 18-13 9-1-17-16t-39-15q-15 1-5-15 7-11 15-13 7-1-10-9-38-22-51-21 0 3 4 22 4 18 15 49 12 31 28 58 16 28 46 48 30 19 65 17zm440 320q-8-3-18-3-11 0-17-1t-9-3-5-10-10-26q-9-17-22-35-13-19-23-34-11-16-18-19-6-3-12-23-6-18-17-52-10-32-20-52-5-9-13-15-9-6-19-10t-25-7q-16-3-31-4t-37-1q-21 0-43-2h-48q-29 0-53-1-42-1-76-27-34-27-54-61-21-33-33-72t-19-61q-6-21-5-25-1-5-10-7-5 1-8 10t-4 18-2 9q-1 3-27 21-62 20-87 59-12 13-18 33-7 21-1 37 5 16 20 19t31-5q15-8 23-18 3-4 9-10 10 3 24 0 14-4 24-8 3-1 9-4 16 3 24 35 9 32 10 64v30q-3 5-9 21-3 11-11 35-6 19-10 36-4 18-8 30-2 4-4 12-15 12-44 36-30 25-53 48-22 24-27 27-7 9-10 16-4 8-5 20v1q0 11 15 15 21 10 38 1 16-8 27-24 12-17 17-30t5-18q-1-2 2-3t6-4q3-2 7-1t7-1h2q21-3 42-13 22-10 37-21 16-12 29-25t19-20q3-3 8-9 27 22 87 23 59 
3501 101-7t46-11q81 57 171 68 13 41 60 87 45 43 63 43h2q10-1 15-17 3-9 3-18 0-8-2-15-4-16-16-21zM237 402q-4 4-11 2t-11-5-9-8q4-8 11-13h4q13 3 18 10 4 7-2 14zm590 184q1 1 3 4l7 7q2 1 8 7 6 5 11 6t12 5q17 2 18-16 1-19-14-24-10-3-11-20-1-18-2-20-3-3-17-1-8 1-25 3-10 1-17-5-2-1-4-6t-4-6-7 0q-4 1-11 6-10 6-25 12-9 4-26 10-3 1-10 4-2 17 15 25t39 8q21 0 40 1 18 1 20 0z"/></svg></h2>
351                        
352                            
353                                
354                                
355                                    
356                                
357                                
358                                <h3 class="list-month">January</h3>
359                                <ul class="list-part">
360        
361            <li class="list-item">
362                <a href="/posts/coco-cpp20-coroutine/" class="list-item-title">coco: a simple stackless, single-threaded, and header-only C++20 coroutine library</a>
363                <time datetime="2026-01-02T00:00:00&#43;00:00" class="list-item-time">January 2</time>
364            </li>
365        
366        
367    </ul>
368
369
370                            
371                        
372                    
373                        
374                        
375                            
376                            
377                        
378                        
379                        
380                        
381                            
382                        
383                        
384                        <h2 class="list-year">2024<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" class="icon chinese-zodiac"><path d="M673 556q-10 0-31 7-20 7-39 14-18 7-30 5-5 0-11-3t-9-9-9-13q-6-8-8-15-2-4-6-13 8 0 20-2t16-2h13q4 2 13 9t14 12q3 3 9 10 5 1 17 2t22-11q11-11 3-30-8-23-2-38l15 15q2-5 8-19 10 3 42 12-1-4-5-17 5 0 8-2t4-6l12 6q0-22-21-39 20-4 23-9 3-4 4-9t-1-11-14-8q4-2 7-5t7-5q2-2 5-7 2 1 5 1t7-2 4-6q5-14-20-22 11-14 31-41 11-19 11-26 0-3-2-4t-6-2-17 5-26 22q-1 0-2-1t-4-1h-9q-4 0-4 2-19 15-26 35-10-2-31-8 2-1 6-6 3-4 12-14t14-20q5-9 13-18 7-9 5-13 0-13-14-13-23-1-46 35-7 0-9-14t-13 6q-1 2-2 5-4-15-11-28-6-12-14-21t-16-16q-8-8-18-14-9-6-17-8t-16-6q-9-4-14-3t-8-1q-1-1-3-1 4 14 15 57-12 1-49 2 1 2 1 6t3 14q3 9 4 18t1 15q0 7-1 10t-53 7q-22 2-4 7 2 1 7 2 14 4 28 14 13 11 18 18 2 2 6 7 5 15 2 28-3 12-18 22t-33 19q-17 8-43 12-25 4-48 9-22 5-48 5t-44 7q-19 7-25 16-6 8-11 16-3 5-3 9 0 2 1 3 0 2 1 6 5 0 22-2 3 7 12 27 4-5 15-21 6 5 22 21 2-5 7-11 3-4 9-11 4-6 10-10t9-8q0-1 2-2 3 7 13 22 10 14 19 23 3 4 9 10 2 25 12 47 10 23 20 36 11 14 23 26t18 15q3 2 8 5-4 2-8 9-4 6-6 13t-3 15-3 16q-2 7-1 14t-1 9v3q-68 36-49 80 1 3 5 8-4-10 3-24t16 2q7 10 12 12t7 2q1-1 3-2 5-12 8-16t5-3q3 1 8 5 7 4 14 6 12 3 15-12 3-16 0-29-1-6-2-16-2-15 12-33 15-19 33-26t37 16q28 31 1 75t-99 78q-92 44-29 75-15 19-21 33-5 13-4 19t9 6q7 0 14-1t16-5q7-3 20-9 6 25 18 25 15 0 39-37 11-19 11-20 10 14 18 19 8 4 16-5 8-8 13-15 6-7 11-22 2-7 6-20 0-2 2-8 28 15 33-33 3-23 1-50 36-20 45-77 9-56 2-103-4-23 0-38t9-22q2-1 6-5 9 5 36 21v-33q8 3 33 12l-8-40q6-2 25-11-37-28-59-18-23 9-32 23-9 15-10 20zm-7-155h-1q13-6 23 3-3 2-9 7h-11q-13-3-2-10zm-49-13q8 0 12 3t5 8q-2 1-6 4-3 2-7 3-5 1-5 0t-2-5q0-8 3-13z"/></svg></h2>
385                        
386                            
387                                
388                                
389                                    
390                                
391                                
392                                <h3 class="list-month">December</h3>
393                                <ul class="list-part">
394        
395            <li class="list-item">
396                <a href="/posts/coco-cpp11-coroutine/" class="list-item-title">coco: a simple stackless, single-threaded, and header-only C++11 coroutine library</a>
397                <time datetime="2024-12-22T00:00:00&#43;00:00" class="list-item-time">December 22</time>
398            </li>
399        
400        
401    </ul>
402
403
404                            
405                                
406                                
407                                    
408                                
409                                
410                                <h3 class="list-month">February</h3>
411                                <ul class="list-part">
412        
413            <li class="list-item">
414                <a href="/posts/envoy-async-http-filter-lua-resty-ffi-vs-golang/" class="list-item-title">envoy asynchronous HTTP filter: lua-resty-ffi vs golang filter</a>
415                <time datetime="2024-02-04T00:00:00&#43;00:00" class="list-item-time">February 4</time>
416            </li>
417        
418        
419    </ul>
420
421
422                            
423                                
424                                
425                                    
426                                
427                                
428                                <h3 class="list-month">January</h3>
429                                <ul class="list-part">
430        
431            <li class="list-item">
432                <a href="/posts/asynchronous-lua-filter-for-nginx-response/" class="list-item-title">Asynchronous nginx response header/body filter</a>
433                <time datetime="2024-01-04T00:00:00&#43;00:00" class="list-item-time">January 4</time>
434            </li>
435        
436            <li class="list-item">
437                <a href="/posts/a-simple-http3-testing-framework-based-on-bash-and-curl/" class="list-item-title">burl: A simple but flexible HTTP/3 testing framework based on bash and curl</a>
438                <time datetime="2024-01-01T00:00:00&#43;00:00" class="list-item-time">January 1</time>
439            </li>
440        
441        
442    </ul>
443
444
445                            
446                        
447                    
448                        
449                        
450                            
451                            
452                        
453                        
454                        
455                        
456                            
457                        
458                        
459                        <h2 class="list-year">2023<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" class="icon chinese-zodiac"><path d="M655 927q1-3 11-8 9-5 18-15t8-27q1-34-53-30-2 1-5 1-13-24 4-41 8 4 19 7 12 3 20 6 3 0 8 1 21-7 2-52-18-45-36-58-4-2-9-6-3-2-9-7-4-3-7-8t-6-7q-4-2-7-7-1-2-5-6 30-13 44-38 15-24 15-49 0-24-5-47-6-22-11-37-2-4-7-13 22-45 37-84t19-66q3-16 8-49 3-22-1-35-5-14-6-24t-6-12q-1-2-3-4-32 7-59 35-28 29-44 64-17 35-28 69-11 33-17 57-2 7-5 22h-35q1-3 4-15 18-42 29-80 10-38 12-61 2-24-1-45-3-22-9-32-7-10-12-21-5-10-10-10-2-1-5-3-39 28-65 67-25 39-34 75-10 37-13 69t0 53q3 22 5 23t3 5q0 2 2 7 1 3 1 7t1 7v3q-24 19-35 39-11 21-11 38 0 18 7 33t14 27q7 11 17 19 11 8 10 11 4 6 1 16h-1q-10 4-38 16-62 29-72 71-8 27 12 37 11 4 24-2 49-20 51-10-2 19-7 55-80-21-83 16-2 23 22 42 5 3 10 5 28 14 6 19-90 6-89 33v2q2 10 10 17 27 6 52 8 26 2 45 2 20 0 37-2 18-2 31-6 8-2 25-7 11-3 18-8 7-6 12-8t7-6q1-1 2-3-16-20-14-31 2-10 10-14 9-4 15-1 34 13 43 27 3 4-2 5-7 2-21 5-7 2-9 5t-3 6 4 7 16 9q77 29 202-10l9-3q-16-39-84-40zM457 581v-1q-4-7 4-23l9-3q5 0 7 3t2 7-1 9-2 6q-2 4-6 10-10-2-13-8zm86-24q1-2 5-4t6-2q7 2 11 10-4 23-16 21-3-1-4-4-1-2-2-6-1-3-1-7t1-6v-2zm-13 76q-1 7-4 11t-6 7h-31q-14 0-13-8 1-7 21-14h2q24-7 31 4z"/></svg></h2>
460                        
461                            
462                                
463                                
464                                    
465                                
466                                
467                                <h3 class="list-month">July</h3>
468                                <ul class="list-part">
469        
470            <li class="list-item">
471                <a href="/posts/make-lua-resty-ffi-run-on-envoy/" class="list-item-title">Make lua-resty-ffi run on Envoy</a>
472                <time datetime="2023-07-09T00:00:00&#43;00:00" class="list-item-time">July 9</time>
473            </li>
474        
475        
476    </ul>
477
478
479                            
480                                
481                                
482                                    
483                                
484                                
485                                <h3 class="list-month">April</h3>
486                                <ul class="list-part">
487        
488            <li class="list-item">
489                <a href="/posts/openresty-lua-request-time/" class="list-item-title">OpenResty: record the Lua execution time per request in ngx.ctx via LD_PRELOAD</a>
490                <time datetime="2023-04-21T00:00:00&#43;00:00" class="list-item-time">April 21</time>
491            </li>
492        
493            <li class="list-item">
494                <a href="/posts/http3-client-for-openresty/" class="list-item-title">HTTP/3 client library for OpenResty</a>
495                <time datetime="2023-04-05T10:50:00&#43;00:00" class="list-item-time">April 5</time>
496            </li>
497        
498        
499    </ul>
500
501
502                            
503                                
504                                
505                                    
506                                
507                                
508                                <h3 class="list-month">March</h3>
509                                <ul class="list-part">
510        
511            <li class="list-item">
512                <a href="/posts/access-windows-adds-kerberos-from-openresty/" class="list-item-title">Access Windows Active Directory Domain Services with Kerberos Authentication from OpenResty</a>
513                <time datetime="2023-03-11T00:39:21&#43;00:00" class="list-item-time">March 11</time>
514            </li>
515        
516        
517    </ul>
518
519
520                            
521                                
522                                
523                                    
524                                
525                                
526                                <h3 class="list-month">February</h3>
527                                <ul class="list-part">
528        
529            <li class="list-item">
530                <a href="/posts/resolve-c-static-variables-of-main-executable-from-the-dynamic-loaded-shared-library/" class="list-item-title">Resolve C static variables of the main executable from the dynamic loaded shared library</a>
531                <time datetime="2023-02-05T10:51:01&#43;00:00" class="list-item-time">February 5</time>
532            </li>
533        
534        
535    </ul>
536
537
538                            
539                                
540                                
541                                    
542                                
543                                
544                                <h3 class="list-month">January</h3>
545                                <ul class="list-part">
546        
547            <li class="list-item">
548                <a href="/posts/learn-async-rust-from-assembly-code/" class="list-item-title">Learn Async Rust From Assembly Code</a>
549                <time datetime="2023-01-29T12:14:34&#43;00:00" class="list-item-time">January 29</time>
550            </li>
551        
552            <li class="list-item">
553                <a href="/posts/java-class-reloading/" class="list-item-title">Java Class Reloading</a>
554                <time datetime="2023-01-15T09:24:13&#43;00:00" class="list-item-time">January 15</time>
555            </li>
556        
557        
558    </ul>
559
560
561                            
562                        
563                    
564                        
565                        
566                            
567                            
568                        
569                        
570                        
571                        
572                            
573                        
574                        
575                        <h2 class="list-year">2022<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" class="icon chinese-zodiac"><path d="M200 729q35-36 140-142 1 0 3 1 7 4 19 11 4 2 13 8 3 2 12 9 5 4 10 10t5 11q4 21 23 35 25 21 28-23v-4q1-6 7-23-7 3-28 10l-2-3q-2-1-6-6-2-3-7-9-3-4-5-11t-1-12q1-4 7-10t16-8q16-3 27 6t21 26q11 16 10 17 3 4-2 11-4 8-12 14-2 1-6 5-1 0-1 1t-1 4-1 5 1 5 3 3q3 1 8 1 6 1 12-2 81-25 31-102-2-4-5-8-2-3-5-7-2-4-5-7-10-18-24-39-13-20-29-33-9-7-19-14-7-4-21-13 24-8 36-11 20-5 10-19-10-13-34-15-26-3-52 30-37-12-74-4-22 4-44 15-8 4-16 9-13 8-24 17-18 14-33 33-8 12-25 35-22 40-33 92-11 53 0 95 2 8 7 25 3 10 6 18 3 7 3 8t2 5 0 3-1 4q-2 0-4 1t-6 2-9 5-7 8q-2 5-4 11t3 13 13 15q3-5 8-15 10-11 14 12 0 6 1 17l12-12q6-5 11-8t11-4q7-1 10 2t4 14q4-1 12-5 7-3 23-8 15-5 21-4-52-50-57-101zm251-216q0-1 4 5 3 5 11 16 1 0 1 3t-1 5-1 5q0 4-4-1-3-1-6-3-2-1-4-3v-27zM143 787q-1 0-1 1l-1 1q1 0 2-2zm162-147q67 96 86 122v13q-33-11-38 8-4 13-3 26 1 12 9 14 8-7 23-22 2 7 9 28 7-6 26-24 4 3 16 11 51-24 55-38-49-59-149-175-9 9-34 37zm252-42q1 22-27 70-14 3-25 9-11 7-19 13-7 6-10 13t-5 14q-2 8-2 13t-1 9v3q5-2 20-6 2 4 6 17 6-5 27-22 4 3 14 13 5-3 22-12v-33q12-4 22-12 9-8 13-16 3-5 8-15 4-8 4-12 1-2 1-4 10-13 40-53-14-4-28-4-13 0-24 1t-19 5q-7 5-13 6-1 1-4 3zm367 110q-3-14-18-59-14-45-15-60-2-16-27-27-30-15-39 10-2 6-1 17-3-8-8-19t-19-36q-15-24-25-28-24-11-86-27-61-17-91-17-20 0 2-16 40-29 99-37 36-5 60 5 26 11 41 23 14 12 17 23 3 12-3 24t-19 22q9 11 29 32 2-2 6-7t15-18q10-14 14-28t3-34q-1-19-12-37-14-21-39-32-25-12-53-14-29-2-58 4-28 6-59 16-15 5-28 10-12 5-20 10-5 4-16 10-7 6-10 10-2 3-7 9-4 5-5 7t-5 5q-25-2-76-5 6 4 15 13 10 10 30 42 21 33 35 74 13-1 38-2 22-1 69 2 48 3 62 10 29 16 56 50 28 35 25 56-2 0-4 1-4 1-11 4-8 3-13 8t-12 11-8 14q-1 7 1 16t13 21v-4l2-7q1-2 3-8 1-3 6-6t12-3q2 29 11 37 17-29 28-30 3 9 8 27 3 7 7 7 4-28 18-28 10 0 24-3 13-3 27-13 12-8 12-19-1-3-1-6zM181 480h-3q-3 0-9-3t-11-8q-5-6-10-16-4-10-6-24-3-35 2-46 6-12 23-14 2 1 5 3t6 13q3 10 2 25-1 11 9 11 18-1 36-24 19-24 4-42-11-15-28-24-18-8-35-10-18-2-34 15-16 18-22 46t-6 51q0 35 14 58 10 17 24 17 17-1 39-28z"/></svg></h2>
576                        
577                            
578                                
579                                
580                                    
581                                
582                                
583                                <h3 class="list-month">December</h3>
584                                <ul class="list-part">
585        
586            <li class="list-item">
587                <a href="/posts/use-nodejs-to-extend-openresty/" class="list-item-title">Use Nodejs to extend Openresty/Nginx</a>
588                <time datetime="2022-12-14T10:51:01&#43;00:00" class="list-item-time">December 14</time>
589            </li>
590        
591        
592    </ul>
593
594
595                            
596                                
597                                
598                                    
599                                
600                                
601                                <h3 class="list-month">November</h3>
602                                <ul class="list-part">
603        
604            <li class="list-item">
605                <a href="/posts/implement-grpc-client-in-rust-for-openresty/" class="list-item-title">Implement Grpc Client in Rust for Openresty</a>
606                <time datetime="2022-11-26T10:53:49&#43;00:00" class="list-item-time">November 26</time>
607            </li>
608        
609            <li class="list-item">
610                <a href="/posts/learn-rust-from-assembly-code/" class="list-item-title">Learn Rust From Assembly Code</a>
611                <time datetime="2022-11-13T14:55:14&#43;00:00" class="list-item-time">November 13</time>
612            </li>
613        
614        
615    </ul>
616
617
618                            
619                                
620                                
621                                    
622                                
623                                
624                                <h3 class="list-month">October</h3>
625                                <ul class="list-part">
626        
627            <li class="list-item">
628                <a href="/posts/json-vs-flatbuffers-in-lua/" class="list-item-title">Json vs Flatbuffers vs Protobuf in Lua</a>
629                <time datetime="2022-10-21T10:57:06&#43;00:00" class="list-item-time">October 21</time>
630            </li>
631        
632            <li class="list-item">
633                <a href="/posts/my-shell-tips/" class="list-item-title">My Shell Tips</a>
634                <time datetime="2022-10-19T14:39:21&#43;00:00" class="list-item-time">October 19</time>
635            </li>
636        
637            <li class="list-item">
638                <a href="/posts/vim-minimalist/" class="list-item-title">Vim Minimalist</a>
639                <ti
639me datetime="2022-10-15T07:56:38&#43;00:00" class="list-item-time">October 15</time>
640            </li>
641        
642            <li class="list-item">
643                <a href="/posts/nginx-blocking/" class="list-item-title">Nginx Blocking</a>
644                <time datetime="2022-10-14T16:21:46&#43;00:00" class="list-item-time">October 14</time>
645            </li>
646        
647            <li class="list-item">
648                <a href="/posts/analyze-lua-memory-leak-with-systemtap/" class="list-item-title">Analyze Lua Memory Leak With Systemtap</a>
649                <time datetime="2022-10-13T14:30:37&#43;00:00" class="list-item-time">October 13</time>
650            </li>
651        
652            <li class="list-item">
653                <a href="/posts/gdb-black-magics/" class="list-item-title">Gdb Black Magics</a>
654                <time datetime="2022-10-06T10:55:36&#43;00:00" class="list-item-time">October 6</time>
655            </li>
656        
657            <li class="list-item">
658                <a href="/posts/luajit-string-interning/" class="list-item-title">Luajit String Interning</a>
659                <time datetime="2022-10-05T13:58:25&#43;00:00" class="list-item-time">October 5</time>
660            </li>
661        
662        
663    </ul>
664
665
666                            
667                        
668                    
669                </div>
670            </div>
671        </main>
672    
673
674            
675    <div id="back-to-top" class="back-to-top">
676        <a href="#"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="icon arrow-up"><path d="M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"/></svg></a>
677    </div>
678
679
680            
681    <footer id="footer" class="footer">
682        <div class="footer-inner">
683            <div class="site-info">©&nbsp;2022–2026&nbsp;jinhualuo</div><div class="powered-by">Powered by <a href="https://github.com/gohugoio/hugo" target="_blank" rel="noopener">Hugo</a> | Theme is <a href="https://github.com/reuixiy/hugo-theme-meme" target="_blank" rel="noopener">MemE</a></div><div class="site-copyright"><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en" target="_blank" rel="noopener">CC BY-NC-SA 4.0</a></div>
684
685            
686    
687        <ul class="socials"><li class="socials-item">
688                    <a href="/rss.xml" target="_blank" rel="external noopener" title="RSS"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon social-icon"><path d="M19.199 24C19.199 13.467 10.533 4.8 0 4.8V0c13.165 0 24 10.835 24 24h-4.801zM3.291 17.415c1.814 0 3.293 1.479 3.293 3.295 0 1.813-1.485 3.29-3.301 3.29C1.47 24 0 22.526 0 20.71s1.475-3.294 3.291-3.295zM15.909 24h-4.665c0-6.169-5.075-11.245-11.244-11.245V8.09c8.727 0 15.909 7.184 15.909 15.91z"/></svg></a>
689                </li><li class="socials-item">
690                    <a href="mailto:[email protected]" target="_blank" rel="external noopener" title="Email"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="icon social-icon"><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"/></svg></a>
691                </li><li class="socials-item">
692                    <a href="https://github.com/kingluo" target="_blank" rel="external noopener" title="GitHub"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon social-icon"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a>
693                </li></ul>
694    
695
696
697
698            
699        </div>
700    </footer>
701
702
703        </div>
704        
705
706        
707
708
709
710
711
712
713    
714
715        
716            
716<script>
717    function loadComments() {
718        if (!document.getElementById('disqus_thread')) {
719            return;
720        }
721        if (typeof DISQUS === 'undefined') {
722            const disqus_config = function() {
723                this.page.url = '\/\/luajit.io:80\/posts\/';
724                this.page.identifier = '\/posts\/';
725                this.page.title = 'Posts';
726            };
727            (function() {
728                const d = document, s = d.createElement('script'); s.async = true;
729                s.src = 'https://luajit-io.disqus.com/embed.js';
730                s.setAttribute('data-timestamp', +new Date());
731                (d.head || d.body).appendChild(s);
732            })();
733        } else {
734            DISQUS.reset({
735                reload: true,
736                config: function() {
737                    this.page.url = '\/\/luajit.io:80\/posts\/';
738                    this.page.identifier = '\/posts\/';
739                    this.page.title = 'Posts';
740                }
741            });
742        }
743    }
744</script>
744
745
746        
747
748        
749
750        
751
752        
753
754    
755
756
757
758    
758<script src="https://cdn.jsdelivr.net/npm/medium-zoom@latest/dist/medium-zoom.min.js"></script>
758
759
760<script>
761    let imgNodes = document.querySelectorAll('div.post-body img');
762    imgNodes = Array.from(imgNodes).filter(node => node.parentNode.tagName !== "A");
763
764    mediumZoom(imgNodes, {
765        background: 'hsla(var(--color-bg-h), var(--color-bg-s), var(--color-bg-l), 0.95)'
766    })
767</script>
767
768
769
770
771
772    
772<script src="https://cdn.jsdelivr.net/npm/[email protected]/instantpage.min.js" type="module" defer></script>
772
773
774
775
776
777
778
779    </body>
780</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.