PageSourceSearch

https://veryl-lang.org/install/

html veryl-lang.org collected 2026-09-24 19:38:55 UTC 19,236 bytes, 588 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4<head prefix="og: http://ogp.me/ns#">
5    <meta charset="UTF-8">
6    <title>Install | Veryl</title>
7    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
8    
9    <link rel="icon" type="image/png" href="/logo.png">
10    
11    <style>
12    :root {
13        /* Primary theme color (Veryl brand green, kept) */
14        --primary-color: #2baa59;
15        /* Primary theme text color */
16        --primary-text-color: #24262a;
17        --primary-text-color-over: #000;
18        /* Primary theme link color */
19        --primary-link-color: #d46e13;
20        /* Secondary color: the background body color */
21        --secondary-color: #fcfaf6;
22        --secondary-text-color: #303030;
23        /* Highlight text color of table of content */
24        --toc-highlight-text-color: #d46e13;
25        --toc-background-color: white;
26
27        --shadow-color: #e4e7ec;
28        --border-color: #e4e7ec;
29        --muted-text-color: #5f6b7a;
30        --accent-color: #0ea5a5;
31
32        /* On-primary text color for buttons/nav sitting on --primary-color */
33        --on-primary-color: #ffffff;
34
35        /* Font used for headers (h1 & h2) */
36        --header-font-family: "Fira Sans", sans-serif;
37        /* Font used for text */
38        --text-font-family: "Fira Sans", sans-serif;
39    }
40
41    @media (prefers-color-scheme: dark) {
42        :root {
43            --primary-color: #1e2621;
44            --primary-text-color: #e6e8eb;
45            --primary-text-color-over: #FFF;
46            --primary-link-color: #5fd28a;
47            --secondary-color: #161a17;
48            --secondary-text-color: #f2f2f2;
49            --toc-highlight-text-color: #5fd28a;
50            --toc-background-color: #232824;
51
52            --shadow-color: #0d0f0e;
53            --border-color: #2a2f34;
54            --muted-text-color: #9aa3ad;
55            --accent-color: #22d3ce;
56
57            --on-primary-color: #f2f2f2;
58
59            --header-font-family: "Fira Sans", sans-serif;
60            --text-font-family: "Fira Sans", sans-serif;
61        }
62    }
63
64    /* ---- Typography ---- */
65    main .content h1,
66    main .content h2,
67    main .content h3 {
68        letter-spacing: -0.01em;
69        line-height: 1.25;
70        color: var(--primary-text-color);
71    }
72
73    main .content h2 {
74        font-weight: 700;
75        margin-top: 2.8rem;
76        padding-bottom: 0.3rem;
77        border-bottom: 1px solid var(--border-color);
78    }
79
80    main .content h3 {
81        font-weight: 600;
82        margin-top: 2rem;
83    }
84
85    main .content p,
86    main .content li {
87        line-height: 1.7;
88    }
89
90    /* ---- Code blocks ---- */
91    main .content pre {
92        border-radius: 6px;
93        border-left: 3px solid var(--primary-color);
94        box-shadow: 0 1px 2px var(--shadow-color);
95        padding: 1rem 1.2rem;
96        overflow-x: auto;
97    }
98
99    main .content pre code,
100    main .content code {
101        font-family: "JetBrains Mono", "Fira Code", "Fira Mono", "SFMono-Regular", Menlo, Consolas, monospace;
102        font-size: 0.92em;
103    }
104
105    main .content :not(pre) > code {
106        background: var(--toc-background-color);
107        border: 1px solid var(--border-color);
108        border-radius: 4px;
109        padding: 0.1em 0.35em;
110    }
111
112    /* ---- Header shadow ---- */
113    header {
114        box-shadow: 0 1px 3px var(--shadow-color);
115    }
116
117    /* ---- Hero tagline: keep each phrase intact, balance line lengths ---- */
118    .hero-tagline {
119        text-wrap: balance;
120        max-width: 60ch;
121        margin-left: auto;
122        margin-right: auto;
123    }
124
125    .hero-tagline .phrase {
126        white-space: nowrap;
127    }
128
129    /* ---- Hero CTA buttons ---- */
130    .hero-cta {
131        display: flex;
132        gap: 0.75rem;
133        flex-wrap: wrap;
134        justify-content: center;
135        margin-top: 1.5rem;
136    }
137
138    .hero-cta .btn {
139        display: inline-flex;
140        align-items: center;
141        justify-content: center;
142        padding: 0.7rem 1.4rem;
143        border-radius: 6px;
144        font-weight: 600;
145        font-size: 16px;
146        text-decoration: none;
147        transition: transform 0.08s ease, box-shadow 0.12s ease, background 0.12s ease;
148        border: 2px solid transparent;
149        line-height: 1.2;
150    }
151
152    .hero-cta .btn:hover {
153        transform: translateY(-1px);
154        box-shadow: 0 4px 10px var(--shadow-color);
155    }
156
157    .hero-cta .btn-primary {
158        background: #2baa59;
159        color: #ffffff;
160        border-color: #2baa59;
161    }
162
163    .hero-cta .btn-primary:hover {
164        background: #249a4f;
165        border-color: #249a4f;
166    }
167
168    .hero-cta .btn-secondary {
169        background: transparent;
170        color: var(--accent-color);
171        border-color: var(--accent-color);
172    }
173
174    .hero-cta .btn-secondary:hover {
175        background: var(--accent-color);
176        color: #ffffff;
177    }
178
179    .hero-github {
180        margin-top: 1.2rem;
181        display: flex;
182        gap: 0.5rem;
183        justify-content: center;
184        flex-wrap: wrap;
185    }
186
187    /* ---- SystemVerilog vs Veryl comparison table ---- */
188    /* Stacks vertically while the TOC sidebar is still visible.
189       juice theme: main has 100px horizontal padding, .toc is ~240px,
190       so at viewport < 1200px the content area is < ~760px and two code
191       columns no longer fit side-by-side without clipping. */
192    .sv-compare {
193        width: 100%;
194        border-collapse: collapse;
195        margin: 1rem 0 1.5rem;
196        table-layout: fixed;
197    }
198
199    .sv-compare th {
200        text-align: left;
201        font-weight: 700;
202        padding: 0.4rem 0.6rem;
203        border-bottom: 2px solid var(--accent-color);
204        color: var(--primary-text-color);
205        width: 50%;
206    }
207
208    .sv-compare td {
209        vertical-align: top;
210        padding: 0.5rem 0.6rem;
211        width: 50%;
212    }
213
214    .sv-compare td > pre {
215        margin: 0;
216    }
217
218    @media screen and (max-width: 1200px) {
219        /* Interleave DOM order (th, th, td, td) into visual order
220           (SV header, SV code, Veryl header, Veryl code) via flex order. */
221        .sv-compare {
222            display: flex;
223            flex-direction: column;
224            gap: 0.3rem;
225        }
226        .sv-compare thead,
227        .sv-compare tbody,
228        .sv-compare tr {
229            display: contents;
230        }
231        .sv-compare th,
232        .sv-compare td {
233            display: block;
234            width: 100%;
235            box-sizing: border-box;
236        }
237        .sv-compare th {
238            margin-top: 0.8rem;
239            padding: 0.4rem 0;
240        }
241        .sv-compare td {
242            padding: 0.2rem 0 0.6rem;
243        }
244        .sv-compare tr:first-child > :first-child { order: 1; }
245        .sv-compare tr:last-child  > :first-child { order: 2; }
246        .sv-compare tr:first-child > :last-child  { order: 3; }
247        .sv-compare tr:last-child  > :last-child  { order: 4; }
248    }
249</style>
250
251    
252    <link rel="preconnect" href="https://fonts.googleapis.com">
253    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
254    <link href="https://fonts.googleapis.com/css2?family=Fira+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400&display=swap" rel="stylesheet">
255    
256    <link rel="stylesheet" href="/normalize.css">
257    <link rel="stylesheet" href="https://veryl-lang.org/juice.css">
258    <!-- Juice references /normalize.css, which doesn't work, so we reference ./normalics.css here -->
259    <!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 259-260
259
260    <script async src="https://www.googletagmanager.com/gtag/js?id=
260G-NXW2P6CCF3
vendor: 16 bytes, lines 260-261
260"></script>
261    
261<script>
262      
vendor: 146 bytes, lines 262-266
262window.dataLayer = window.dataLayer || [];
263      function gtag(){dataLayer.push(arguments);}
264      gtag('js', new Date());
265
266      gtag('config', '
266G-NXW2P6CCF3
vendor: 8 bytes, lines 266-267
266');
267    
267</script>
267
268    <!-- Cloudflare Web Analytics (cookieless, GDPR-compliant) -->
vendor: 116 bytes, lines 268-270
268
269    <script defer src="https://static.cloudflareinsights.com/beacon.min.js"
270            data-cf-beacon='{"token": "
2709a6e16a10083416fbafbabf6f917fd9e
vendor: 25 bytes, lines 270-275
270"}'></script>
271    
272
273
274  
275
276<meta name="description" content="Install Veryl through the verylup toolchain installer, Cargo, or by building from source." />
277<link rel="canonical" href="https://veryl-lang.org/install/" />
278
279<meta property="og:type" content="website" />
280<meta property="og:url" content="https://veryl-lang.org/install/" />
281<meta property="og:title" content="Install | Veryl" />
282<meta property="og:description" content="Install Veryl through the verylup toolchain installer, Cargo, or by building from source." />
283<meta property="og:image" content="https://veryl-lang.org/ogp/install.png" />
284
285<meta name="twitter:card" content="summary_large_image" />
286<meta name="twitter:domain" content="veryl-lang.org" />
287<meta name="twitter:title" content="Install | Veryl" />
288<meta name="twitter:description" content="Install Veryl through the verylup toolchain installer, Cargo, or by building from source." />
289<meta name="twitter:image" content="https://veryl-lang.org/ogp/install.png" />
290<script type="application/ld+json">
291{
292  "@context": "https://schema.org",
293  "@type": "BreadcrumbList",
294  "itemListElement": [
295    {
296      "@type": "ListItem",
297      "position": 1,
298      "name": "Home",
299      "item": "https://veryl-lang.org/"
300    },
301    {
302      "@type": "ListItem",
303      "position": 2,
304      "name": "Install",
305      "item": "https://veryl-lang.org/install/"
306    }
307  ]
308}
309</script>
309
310
311</head>
312
313<body>
314    
315<header class="box-shadow">
316    
317
318<a href="https://veryl-lang.org/">
319    <div class="logo">
320        <img src="https://veryl-lang.org/logo.png" alt="logo">
321        
322    </div>
323</a>
324
325<nav>
326    
327    
328    
329    <a class="nav-item subtitle-text" href="https://veryl-lang.org/install/">Install</a>
330    
331    
332    
333    
334    <a class="nav-item subtitle-text" href="https://veryl-lang.org/docs/">Docs</a>
335    
336    
337    
338    
339    <a class="nav-item subtitle-text" href="https://veryl-lang.org/statistics/">Statistics</a>
340    
341    
342    
343    
344    <a class="nav-item subtitle-text" href="https://veryl-lang.org/sponsors/">Sponsors</a>
345    
346    
347    
348    
349    <a class="nav-item subtitle-text" href="https://veryl-lang.org/blog/">Blog</a>
350    
351    
352        
353        <a class="nav-item subtitle-text" href="https://registry.veryl-lang.org/">Registry</a>
354        
355        <a class="nav-item subtitle-text" href="https://doc.veryl-lang.org/playground">Playground</a>
356        
357    
358    
359        
360        <a class="nav-item subtitle-text" href="https://github.com/veryl-lang/veryl"><img src="https://veryl-lang.org/github-mark-white.png" alt="icon" height="20"></a>
361        
362        <a class="nav-item subtitle-text" href="https://discord.gg/MJZr9NufTT"><img src="https://veryl-lang.org/Discord-Symbol-White.png" alt="icon" height="20"></a>
363        
364    
365</nav>
366
367</header>
368
369
370    <main>
371        
372
373
374
375
376<div class="toc">
377    <div class="toc-sticky">
378        
379        <div class="toc-item">
380            <a class="subtext" href="https://veryl-lang.org/install/#requirement">Requirement</a>
381        </div>
382        
383        
384        <div class="toc-item-child">
385            <a class="subtext" href="https://veryl-lang.org/install/#install-verylup"><small>- Install verylup</small></a>
386        </div>
387        
388        <div class="toc-item-child">
389            <a class="subtext" href="https://veryl-lang.org/install/#setup-verylup"><small>- Setup verylup</small></a>
390        </div>
391        
392        
393        
394        <div class="toc-item">
395            <a class="subtext" href="https://veryl-lang.org/install/#editor-integration">Editor integration</a>
396        </div>
397        
398        
399        <div class="toc-item-child">
400            <a class="subtext" href="https://veryl-lang.org/install/#visual-studio-code"><small>- Visual Studio Code</small></a>
401        </div>
402        
403        <div class="toc-item-child">
404            <a class="subtext" href="https://veryl-lang.org/install/#vim-neovim"><small>- Vim &#x2F; Neovim</small></a>
405        </div>
406        
407        <div class="toc-item-child">
408            <a class="subtext" href="https://veryl-lang.org/install/#zed"><small>- Zed</small></a>
409        </div>
410        
411        <div class="toc-item-child">
412            <a class="subtext" href="https://veryl-lang.org/install/#other-editors"><small>- Other Editors</small></a>
413        </div>
414        
415        
416        
417        <div class="toc-item">
418            <a class="subtext" href="https://veryl-lang.org/install/#shell-completion">Shell Completion</a>
419        </div>
420        
421        
422    </div>
423</div>
424
425
426
427        <div class="content text">
428            
429<h1 class="heading-text">Install</h1>
430<p>Veryl can be intalled through the official toolchain installer <code>verylup</code>.
431We recommend to use <code>verylup</code> because it provides some usefule features like toolchain update.</p>
432<h1 id="requirement">Requirement</h1>
433<p>Veryl uses <code>git</code> command internally. Please confirm <code>git</code>
433 can be launched.</p>
434<h2 id="install-verylup">Install verylup</h2>
435<h3 id="download-binary">Download binary</h3>
436<p>Download from <a href="https://github.com/veryl-lang/verylup/releases/latest">release page</a>, and extract to the directory in <code>PATH</code>.</p>
437<h3 id="cargo">Cargo</h3>
438<p>You can install with <a href="https://crates.io/crates/verylup">cargo</a>.</p>
439<pre style="background-color:#393939;color:#dedede;"><code><span>cargo install verylup
440</span></code></pre>
441<h2 id="setup-verylup">Setup verylup</h2>
442<p>After installing verylup, the following command is required once at first.
443It downloads the latest toolchain and creates <code>veryl</code> and <code>veryl-ls</code> command at the same location as verylup.</p>
444<pre style="background-color:#393939;color:#dedede;"><code><span>verylup setup
445</span></code></pre>
446<p>Now <code>veryl</code> command can be used!</p>
447<h1 id="editor-integration">Editor integration</h1>
448<p><a href="https://azure.microsoft.com/ja-jp/products/visual-studio-code">Visual Studio Code</a>, <a href="https://github.com/vim/vim">Vim</a> / <a href="https://neovim.io">Neovim</a>, and <a href="https://zed.dev">Zed</a> are supported officially.</p>
449<h2 id="visual-studio-code">Visual Studio Code</h2>
450<p>For Visual Studio Code, Veryl extension is provided.
451The extension provides file type detection, syntex highlight and language server integration.
452You can install it by searching "Veryl" in extension panel or the following URL.</p>
453<p><a href="https://marketplace.visualstudio.com/items?itemName=veryl-lang.veryl-vscode">Veryl extension for Visual Studio Code</a></p>
454<h2 id="vim-neovim">Vim / Neovim</h2>
455<p>For Vim / Neovim, Veryl plugin is provided.
456The plugin provides file type detection, syntex highlight.
457There are some instructions for plugin installation and language server integration in the following URL.</p>
458<p><a href="https://github.com/veryl-lang/veryl.vim">Vim / Neovim plugin</a></p>
459<h2 id="zed">Zed</h2>
460<p>For <a href="https://zed.dev/">Zed</a>, Veryl extension is provided.
461The extension provides file type detection, syntex highlight and language server integration.
462You can install it by searching "Veryl" in extension panel or the following URL.</p>
463<p><a href="https://zed.dev/extensions/veryl">Veryl extension for Zed</a></p>
464<h2 id="other-editors">Other Editors</h2>
465<p>Veryl provides language server. So other editors supporting language server (ex. Emacs) can use it.</p>
466<h1 id="shell-completion">Shell Completion</h1>
467<p>Shell completion script for <code>veryl</code> and <code>verylup</code> is provided through <code>verylup completion</code>.
468For example, the following command generates completion script for zsh.</p>
469<pre style="background-color:#393939;color:#dedede;"><code><span>verylup completion zsh veryl   &gt; _veryl
470</span><span>verylup completion zsh verylup &gt; _verylup
471</span></code></pre>
472<p>Supported shells are below:</p>
473<ul>
474<li>Bash</li>
475<li>Elvish</li>
476<li>Fish</li>
477<li>PowerShell</li>
478<li>Zsh</li>
479</ul>
480<p>Please refer the documentation of each shell for usage of generated scripts.</p>
481
482
483        </div>
484
485        
486        
487    </main>
488
489    
490<footer class="site-footer">
491    <div class="site-footer-inner">
492        <div class="site-footer-col">
493            <div class="site-footer-heading">Project</div>
494            <a href="https://github.com/veryl-lang/veryl">GitHub</a>
495            <a href="https://registry.veryl-lang.org/">Registry</a>
496            <a href="https://veryl-lang.org/sponsors/">Sponsors</a>
497        </div>
498        <div class="site-footer-col">
499            <div class="site-footer-heading">Documentation</div>
500            <a href="https://doc.veryl-lang.org/book/">Book</a>
501            <a href="https://doc.veryl-lang.org/playground">Playground</a>
502        </div>
503        <div class="site-footer-col">
504            <div class="site-footer-heading">Community</div>
505            <a href="https://discord.gg/MJZr9NufTT">Discord</a>
506            <a href="https://veryl-lang.org/blog/">Blog</a>
507        </div>
508    </div>
509    <div class="site-footer-bottom subtext">
510        Veryl is dual-licensed under MIT or Apache-2.0. © 2022–2026 Veryl contributors.
511    </div>
512</footer>
513<style>
514    .site-footer {
515        margin-top: 4rem;
516        padding: 3rem 2rem 2rem;
517        border-top: 1px solid var(--border-color);
518        background-color: var(--toc-background-color);
519    }
520    .site-footer-inner {
521        max-width: 1100px;
522        margin: 0 auto;
523        display: grid;
524        grid-template-columns: repeat(3, minmax(0, 1fr));
525        gap: 2rem;
526    }
527    .site-footer-col {
528        display: flex;
529        flex-direction: column;
530        gap: 0.4rem;
531    }
532    .site-footer-heading {
533        font-weight: 600;
534        margin-bottom: 0.4rem;
535        color: var(--primary-text-color);
536    }
537    .site-footer a {
538        color: var(--secondary-text-color);
539        text-decoration: none;
540        font-size: 0.95rem;
541    }
542    .site-footer a:hover {
543        color: var(--primary-link-color);
544    }
545    .site-footer-bottom {
546        max-width: 1100px;
547        margin: 2rem auto 0;
548        padding-top: 1.5rem;
549        border-top: 1px solid var(--border-color);
550        font-size: 0.85rem;
551        text-align: center;
552    }
553    @media screen and (max-width: 640px) {
554        .site-footer-inner {
555            grid-template-columns: 1fr;
556            gap: 1.5rem;
557        }
558    }
559</style>
560
561
562</body>
563<script>
564    const scrollHandler = entries => {
565        // Find the first entry which intersecting and ratio > 0.9 to highlight.
566        let entry = entries.find(entry => {
567            return entry.isIntersecting && entry.intersectionRatio > 0.9;
568        });
569        if (!entry) return;
570
571        document.querySelectorAll(".toc a").forEach((item) => {
572            item.classList.remove("active");
573        });
574
575        // let url = new URL(`#${entry.target.id}`);
576        let link = document.querySelector(`.toc a[href$="${decodeURIComponent(`#${entry.target.id}`)}"]`)
577        if (link) {
578            link.classList.add("active");
579            link.scrollIntoView({ behavior: "auto", block: "nearest" });
580        }
581    };
582    // Set -100px root margin to improve highlight experience.
583    const observer = new IntersectionObserver(scrollHandler, { threshold: 1 });
584    let items = document.querySelectorAll('h1,h2,h3,h4,h5,h6');
585    items.forEach(item => observer.observe(item));
586</script>
586
587
588</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.