<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>GitHub Common Lisp Weekly Trending</title>
    <description>Weekly Trending of Common Lisp in GitHub</description>
    <pubDate>Sat, 18 Apr 2026 01:41:22 GMT</pubDate>
    <link>http://mshibanami.github.io/GitHubTrendingRSS</link>
    
    <item>
      <title>open-goal/jak-project</title>
      <link>https://github.com/open-goal/jak-project</link>
      <description>&lt;p&gt;Reviving the language that brought us the Jak &amp; Daxter Series&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img width=&quot;500&quot; height=&quot;100%&quot; src=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/img/logo-text-colored-new.png&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://opengoal.dev/docs/intro&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Documentation-Here-informational&quot; alt=&quot;Documentation Badge&quot; style=&quot;max-width:100%;&quot; /&gt;&lt;/a&gt; &lt;a title=&quot;Crowdin&quot; target=&quot;_blank&quot; href=&quot;https://crowdin.com/project/opengoal&quot;&gt;&lt;img src=&quot;https://badges.crowdin.net/opengoal/localized.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://github.com/open-goal/jak-project/actions/workflows/build-matrix.yaml&quot;&gt;&lt;img src=&quot;https://github.com/open-goal/jak-project/actions/workflows/build-matrix.yaml/badge.svg?sanitize=true&quot; alt=&quot;Linux and Windows Build&quot; style=&quot;max-width:100%;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.codacy.com/gh/open-goal/jak-project/dashboard?utm_source=github.com&amp;amp;utm_medium=referral&amp;amp;utm_content=open-goal/jak-project&amp;amp;utm_campaign=Badge_Grade&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;https://app.codacy.com/project/badge/Grade/29316d04a1644aa390c33be07289f3f5&quot; alt=&quot;Codacy Badge&quot; style=&quot;max-width:100%;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/VZbXMHXzWv&quot;&gt;&lt;img src=&quot;https://img.shields.io/discord/756287461377703987&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;h2&gt;Please read first 
 &lt;!-- omit from toc --&gt;&lt;/h2&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;Our repositories on GitHub are for development of the project and tracking active issues. Most of the information you will find here pertains to setting up the project for development purposes and is not relevant to the end-user.&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;For a setup guide on how to install and play the game there is the following video that you can check out: &lt;a href=&quot;https://youtu.be/K84UUMnkJc4&quot;&gt;https://youtu.be/K84UUMnkJc4&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;For questions or additional information pertaining to the project, we have a Discord for discussion here: &lt;a href=&quot;https://discord.gg/VZbXMHXzWv&quot;&gt;https://discord.gg/VZbXMHXzWv&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Additionally, you can find further documentation and answers to &lt;strong&gt;frequently asked questions&lt;/strong&gt; on the project&#39;s main website: &lt;a href=&quot;https://opengoal.dev&quot;&gt;https://opengoal.dev&lt;/a&gt;&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-warning&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-alert mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Warning&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Do not use this decompilation project without the use of your own legally purchased copy of the game.&lt;/strong&gt; OpenGOAL does not include any assets from the original games, so you must provide your own legitimately obtained PS2 copy of the game. OpenGOAL supports every retail PAL, NTSC, and NTSC-J build, including Greatest Hits copies. Please note that does NOT include any of the later releases (PS3/PS4/PS5).&lt;/p&gt; 
&lt;/div&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#project-description&quot;&gt;Project Description&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#current-status&quot;&gt;Current Status&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#methodology&quot;&gt;Methodology&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#setting-up-a-development-environment&quot;&gt;Setting up a Development Environment&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#os-setup&quot;&gt;OS Setup&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#editor-setup&quot;&gt;Editor Setup&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#building-and-running-the-game&quot;&gt;Building and Running the Game&lt;/a&gt; 
    &lt;ul&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#extract-assets&quot;&gt;Extract Assets&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#build-the-game-running-the-compiler&quot;&gt;Build the Game (Running the Compiler)&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#run-the-game&quot;&gt;Run the Game&lt;/a&gt; 
      &lt;ul&gt; 
       &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#connecting-the-repl-to-the-game&quot;&gt;Connecting the REPL to the Game&lt;/a&gt;&lt;/li&gt; 
       &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#running-the-game-without-auto-booting&quot;&gt;Running the Game Without Auto-Booting&lt;/a&gt;&lt;/li&gt; 
      &lt;/ul&gt; &lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#technical-project-overview&quot;&gt;Technical Project Overview&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Project Description&lt;/h2&gt; 
&lt;p&gt;The project&#39;s goal is to port the original trilogy (Jak 1 -&amp;gt; Jak 3) to PC. Over 98% of the games were written in GOAL, a custom LISP language developed by Naughty Dog. Our strategy is:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;decompile the original game code into human-readable GOAL code&lt;/li&gt; 
 &lt;li&gt;develop our own compiler for GOAL and recompile the game code for x86-64&lt;/li&gt; 
 &lt;li&gt;create a tool to extract game assets into formats that can be easily viewed or modified&lt;/li&gt; 
 &lt;li&gt;create tools to repack game assets into a format that our port uses.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Our objectives are:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;make the port a &quot;native application&quot; on x86-64, with high performance. It shouldn&#39;t be emulated, interpreted, or transpiled.&lt;/li&gt; 
 &lt;li&gt;Our GOAL compiler&#39;s performance should be around the same as unoptimized C.&lt;/li&gt; 
 &lt;li&gt;try to match things from the original game and development as possible. For example, the original GOAL compiler supported live modification of code while the game is running, so we do the same, even though it&#39;s not required for just porting the game.&lt;/li&gt; 
 &lt;li&gt;support modifications. It should be possible to make edits to the code without everything else breaking.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;At the moment we support &lt;strong&gt;x86_64&lt;/strong&gt; on Windows, Linux and macOS (via Rosetta translation). There are no plans to ever make a mobile release.&lt;/p&gt; 
&lt;h3&gt;Current Status&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Jak 1 has been considered in a polished, complete state for years at this point.&lt;/li&gt; 
 &lt;li&gt;Jak 2 is considered in beta due to a few issues we are aware of that need fixing, however to the casual user, the game is essentially complete.&lt;/li&gt; 
 &lt;li&gt;Jak 3 has a good amount of work left to do.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/img/promosmall1.png&quot; alt=&quot;&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/img/promosmall2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;YouTube playlist showcasing some of the early progress for Jak 1: &lt;a href=&quot;https://www.youtube.com/playlist?list=PLWx9T30aAT50cLnCTY1SAbt2TtWQzKfXX&quot;&gt;https://www.youtube.com/playlist?list=PLWx9T30aAT50cLnCTY1SAbt2TtWQzKfXX&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Methodology&lt;/h3&gt; 
&lt;p&gt;To assist with decompiling, we&#39;ve built a decompiler that can process GOAL code and unpack game assets. We manually specify function types and locations where we believe the original code had type casts (or where they feel appropriate) until the decompilation succeeds, then we clean up the output of the decompiled code by adding comments and adjusting formatting, then save it in &lt;code&gt;goal_src/&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Our decompiler is designed specifically for processing the output of the original GOAL compiler. As a result, when given correct casts, it often produces code that can be directly fed into a compiler and works perfectly. This is continually tested as part of our unit tests.&lt;/p&gt; 
&lt;h2&gt;Setting up a Development Environment&lt;/h2&gt; 
&lt;p&gt;The remainder of this README is aimed at people interested in building the project from source, typically with the intention of contributing as a developer.&lt;/p&gt; 
&lt;p&gt;If this does not sound like you and you just want to play the game, refer to the above section &lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/#quick-start&quot;&gt;Quick Start&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;OS Setup&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/setup/system/windows.md&quot;&gt;Windows&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/setup/system/linux.md&quot;&gt;Linux&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/setup/system/macos.md&quot;&gt;MacOS&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/setup/system/docker.md&quot;&gt;Docker&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Editor Setup&lt;/h3&gt; 
&lt;p&gt;You can of course use whatever editor you want, but here is some documentation that should help you get started on some of the editor&#39;s we have used and have written about:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/setup/dev/vs.md&quot;&gt;Visual Studio (Windows)&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/setup/dev/vscode.md&quot;&gt;Visual Studio Code&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/setup/dev/zed.md&quot;&gt;Zed&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Building and Running the Game&lt;/h3&gt; 
&lt;p&gt;Getting a running game involves 4 main steps:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Build C++ tools (follow Getting Started steps above for your platform)&lt;/li&gt; 
 &lt;li&gt;Extract assets from the game&lt;/li&gt; 
 &lt;li&gt;Build the game&lt;/li&gt; 
 &lt;li&gt;Run the game&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h4&gt;Extract Assets&lt;/h4&gt; 
&lt;p&gt;First, we have to setup our environment so we know which game and version we are operating with. For the black label version of Jak 1 we would run the following:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;task set-game-jak1
task set-decomp-ntscv1 # or for example for PAL, `task set-decomp-pal`
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Run &lt;code&gt;task --list&lt;/code&gt; to see the other available options&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Next, ensure you extract your ISO file contents into the relevant &lt;code&gt;iso_data/&amp;lt;game-name&amp;gt;&lt;/code&gt; folder. In the case of Jak 1 this is &lt;code&gt;iso_data/jak1&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Once this is done, open a terminal in the &lt;code&gt;jak-project&lt;/code&gt; folder and run the following:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;task extract
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Build the Game (Running the Compiler)&lt;/h4&gt; 
&lt;p&gt;The next step is to build the game itself. To do so, in the same terminal run the following:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;task repl
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You will be greeted with a prompt like so:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt; _____             _____ _____ _____ __
|     |___ ___ ___|   __|     |  _  |  |
|  |  | . | -_|   |  |  |  |  |     |  |__
|_____|  _|___|_|_|_____|_____|__|__|_____|
      |_|
Welcome to OpenGOAL 0.8!
Run (repl-help) for help with common commands and REPL usage.
Run (lt) to connect to the local target.

g &amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Run the following to build the game:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;g &amp;gt; (mi)
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;IMPORTANT NOTE! If you&#39;re not using the non-default version of the game, you may hit issues trying to run &lt;code&gt;(mi)&lt;/code&gt; in this step. An example error might include something like:&lt;/p&gt; 
 &lt;p&gt;&lt;code&gt;Input file iso_data/jak1/MUS/TWEAKVAL.MUS does not exist.&lt;/code&gt;&lt;/p&gt; 
 &lt;p&gt;This is because the decompiler inputs/outputs using the &lt;code&gt;gameName&lt;/code&gt; JSON field in the decompiler config. For example if you are using Jak 1 PAL, it will assume &lt;code&gt;iso_data/jak1_pal&lt;/code&gt; and &lt;code&gt;decompiler_out/jak1_pal&lt;/code&gt;. Therefore, you can inform the REPL/compiler of this via the &lt;code&gt;gameVersionFolder&lt;/code&gt; config field described &lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/goal_src/user/README.md&quot;&gt;here&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h4&gt;Run the Game&lt;/h4&gt; 
&lt;p&gt;Finally the game can be launched. Open a second terminal from the &lt;code&gt;jak-project&lt;/code&gt; directory and run the following:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;task boot-game
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The game should boot automatically if everything was done correctly.&lt;/p&gt; 
&lt;h5&gt;Connecting the REPL to the Game&lt;/h5&gt; 
&lt;p&gt;Connecting the REPL to the game allows you to inspect and modify code or data while the game is running.&lt;/p&gt; 
&lt;p&gt;To do so, in the REPL after a successful &lt;code&gt;(mi)&lt;/code&gt;, run the following:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;g &amp;gt; (lt)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If successful, your prompt should change to:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;gc&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For example, running the following will print out some basic information about Jak:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;gc&amp;gt; *target*
&lt;/code&gt;&lt;/pre&gt; 
&lt;h5&gt;Running the Game Without Auto-Booting&lt;/h5&gt; 
&lt;p&gt;You can also start up the game without booting. To do so run the following in one terminal&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;task run-game
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;And then in your REPL run the following (after a successful &lt;code&gt;(mi)&lt;/code&gt;):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;g &amp;gt; (lt)
[Listener] Socket connected established! (took 0 tries). Waiting for version...
Got version 0.8 OK!
[Debugger] Context: valid = true, s7 = 0x147d24, base = 0x2123000000, tid = 2438049

gc&amp;gt; (lg)
10836466        #xa559f2              0.0000        (&quot;game&quot; &quot;kernel&quot;)

gc&amp;gt; (test-play)
(play :use-vis #t :init-game #f) has been called!
0        #x0              0.0000        0

gc&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Technical Project Overview&lt;/h2&gt; 
&lt;p&gt;Some more detail about the various components of the project can be found &lt;a href=&quot;https://raw.githubusercontent.com/open-goal/jak-project/master/docs/project-overview.md&quot;&gt;here&lt;/a&gt;&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/55a87ca0fc3b4658cd807335b93069a7876059218f702039a5425e3e208f03d7/open-goal/jak-project" medium="image" />
      
    </item>
    
    <item>
      <title>dimitri/pgloader</title>
      <link>https://github.com/dimitri/pgloader</link>
      <description>&lt;p&gt;Migrate to PostgreSQL in a single command!&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;PGLoader&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://travis-ci.org/dimitri/pgloader&quot;&gt;&lt;img src=&quot;https://travis-ci.org/dimitri/pgloader.svg?branch=master&quot; alt=&quot;Build Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://gitter.im/dimitri/pgloader?utm_source=badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=pr-badge&amp;amp;utm_content=badge&quot;&gt;&lt;img src=&quot;https://badges.gitter.im/Join%20Chat.svg?sanitize=true&quot; alt=&quot;Join the chat at https://gitter.im/dimitri/pgloader&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://pgloader.readthedocs.io/en/latest/&quot;&gt;&lt;img src=&quot;https://readthedocs.org/projects/pgloader/badge/?version=latest&amp;amp;style=plastic&quot; alt=&quot;Read The Docs Status&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;pgloader is a data loading tool for PostgreSQL, using the &lt;code&gt;COPY&lt;/code&gt; command.&lt;/p&gt; 
&lt;p&gt;Its main advantage over just using &lt;code&gt;COPY&lt;/code&gt; or &lt;code&gt;\copy&lt;/code&gt;, and over using a &lt;em&gt;Foreign Data Wrapper&lt;/em&gt;, is its transaction behaviour, where &lt;em&gt;pgloader&lt;/em&gt; will keep a separate file of rejected data, but continue trying to &lt;code&gt;copy&lt;/code&gt; good data in your database.&lt;/p&gt; 
&lt;p&gt;The default PostgreSQL behaviour is transactional, which means that &lt;em&gt;any&lt;/em&gt; erroneous line in the input data (file or remote database) will stop the entire bulk load for the table.&lt;/p&gt; 
&lt;p&gt;pgloader also implements data reformatting, a typical example of that being the transformation of MySQL datestamps &lt;code&gt;0000-00-00&lt;/code&gt; and &lt;code&gt;0000-00-00 00:00:00&lt;/code&gt; to PostgreSQL &lt;code&gt;NULL&lt;/code&gt; value (because our calendar never had a &lt;em&gt;year zero&lt;/em&gt;).&lt;/p&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;p&gt;Full documentation is available online, including manual pages of all the pgloader sub-commands. Check out &lt;a href=&quot;https://pgloader.readthedocs.io/en/latest/&quot;&gt;https://pgloader.readthedocs.io/&lt;/a&gt;.&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$ pgloader --help
pgloader [ option ... ] SOURCE TARGET
  --help -h                       boolean  Show usage and exit.
  --version -V                    boolean  Displays pgloader version and exit.
  --quiet -q                      boolean  Be quiet
  --verbose -v                    boolean  Be verbose
  --debug -d                      boolean  Display debug level information.
  --client-min-messages           string   Filter logs seen at the console (default: &quot;warning&quot;)
  --log-min-messages              string   Filter logs seen in the logfile (default: &quot;notice&quot;)
  --summary -S                    string   Filename where to copy the summary
  --root-dir -D                   string   Output root directory. (default: #P&quot;/tmp/pgloader/&quot;)
  --upgrade-config -U             boolean  Output the command(s) corresponding to .conf file for v2.x
  --list-encodings -E             boolean  List pgloader known encodings and exit.
  --logfile -L                    string   Filename where to send the logs.
  --load-lisp-file -l             string   Read user code from files
  --dry-run                       boolean  Only check database connections, don&#39;t load anything.
  --on-error-stop                 boolean  Refrain from handling errors properly.
  --no-ssl-cert-verification      boolean  Instruct OpenSSL to bypass verifying certificates.
  --context -C                    string   Command Context Variables
  --with                          string   Load options
  --set                           string   PostgreSQL options
  --field                         string   Source file fields specification
  --cast                          string   Specific cast rules
  --type                          string   Force input source type
  --encoding                      string   Source expected encoding
  --before                        string   SQL script to run before loading the data
  --after                         string   SQL script to run after loading the data
  --self-upgrade                  string   Path to pgloader newer sources
  --regress                       boolean  Drive regression testing
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Usage&lt;/h2&gt; 
&lt;p&gt;You can either give a command file to pgloader or run it all from the command line, see the &lt;a href=&quot;https://pgloader.readthedocs.io/en/latest/tutorial/tutorial.html#pgloader-quick-start&quot;&gt;pgloader quick start&lt;/a&gt; on &lt;a href=&quot;https://pgloader.readthedocs.io&quot;&gt;https://pgloader.readthedocs.io&lt;/a&gt; for more details.&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$ ./build/bin/pgloader --help
$ ./build/bin/pgloader &amp;lt;file.load&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For example, for a full migration from SQLite:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$ createdb newdb
$ pgloader ./test/sqlite/sqlite.db postgresql:///newdb
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Or for a full migration from MySQL, including schema definition (tables, indexes, foreign keys, comments) and parallel loading of the corrected data:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$ createdb pagila
$ pgloader mysql://user@localhost/sakila postgresql:///pagila
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;LICENCE&lt;/h2&gt; 
&lt;p&gt;pgloader is available under &lt;a href=&quot;http://www.postgresql.org/about/licence/&quot;&gt;The PostgreSQL Licence&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;INSTALL&lt;/h2&gt; 
&lt;p&gt;Please see full documentation at &lt;a href=&quot;https://pgloader.readthedocs.io/en/latest/install.html&quot;&gt;https://pgloader.readthedocs.io/&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;If you&#39;re using debian, it&#39;s already available:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$ apt-get install pgloader
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If you&#39;re using docker, you can use the latest version built by the CI at each commit to the master branch:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$ docker pull ghcr.io/dimitri/pgloader:latest
$ docker run --rm -it ghcr.io/dimitri/pgloader:latest pgloader --version
&lt;/code&gt;&lt;/pre&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/c212338cf15987bb1106459754dd2eb864a4af0c5b67430b0a801ee0fba48bde/dimitri/pgloader" medium="image" />
      
    </item>
    
    <item>
      <title>atlas-engineer/nyxt</title>
      <link>https://github.com/atlas-engineer/nyxt</link>
      <description>&lt;p&gt;Nyxt - the hacker&#39;s browser.&lt;/p&gt;&lt;hr&gt;&lt;ul&gt; 
 &lt;li&gt;Nyxt browser #+html: &lt;img src=&quot;https://nyxt-browser.com/static/image/nyxt_256x256.png&quot; align=&quot;right&quot; /&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;em&gt;Nyxt&lt;/em&gt; [nýkst] is a keyboard-driven web browser designed for hackers. Inspired by Emacs and Vim, it has familiar keybindings ([[&lt;a href=&quot;https://en.wikipedia.org/wiki/Emacs&quot;&gt;https://en.wikipedia.org/wiki/Emacs&lt;/a&gt;][Emacs]], [[&lt;a href=&quot;https://en.wikipedia.org/wiki/Vim_(text_editor)&quot;&gt;https://en.wikipedia.org/wiki/Vim_(text_editor)&lt;/a&gt;][vi]], [[&lt;a href=&quot;https://en.wikipedia.org/wiki/IBM_Common_User_Access&quot;&gt;https://en.wikipedia.org/wiki/IBM_Common_User_Access&lt;/a&gt;][CUA]]), and is infinitely extensible in Lisp.&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;Attention:&lt;/em&gt; Nyxt is under active development. Please feel free to [[&lt;a href=&quot;https://github.com/atlas-engineer/nyxt/issues&quot;&gt;https://github.com/atlas-engineer/nyxt/issues&lt;/a&gt;][report]] bugs, instabilities or feature wishes.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;ul&gt; 
 &lt;li&gt;Features For an exhaustive description of all of the features, please refer to the manual.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;** Fast tab switching&lt;/p&gt; 
&lt;p&gt;Switch easily between your open tabs via fuzzy search. If you are looking for ~&lt;a href=&quot;https://www.example.com~&quot;&gt;https://www.example.com~&lt;/a&gt;, you could type in ~ele~, ~exa~, ~epl~, or any other matching series of letters.&lt;/p&gt; 
&lt;p&gt;#+html: &lt;img src=&quot;https://nyxt-browser.com/static/image/switch-buffer.png&quot; align=&quot;center&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;** Multiple marking&lt;/p&gt; 
&lt;p&gt;Commands can accept multiple inputs, allowing you to quickly perform an operation against multiple objects. In the example below we simultaneously open several bookmarks.&lt;/p&gt; 
&lt;p&gt;#+html: &lt;img src=&quot;https://nyxt-browser.com/static/image/multi-select.png&quot; align=&quot;center&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;** Powerful bookmarks&lt;/p&gt; 
&lt;p&gt;Bookmark a page with tags. Search bookmarks with compound queries. Capture more data about your bookmarks, and group and wrangle them in any way you like.&lt;/p&gt; 
&lt;p&gt;#+html: &lt;img src=&quot;https://nyxt-browser.com/static/image/bookmark.png&quot; align=&quot;center&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;** Multi tab search&lt;/p&gt; 
&lt;p&gt;Search multiple tabs at the same time, and view all the results in a single window. Jump quickly through your open tabs to find what you need.&lt;/p&gt; 
&lt;p&gt;#+html: &lt;img src=&quot;https://nyxt-browser.com/static/image/multi-search.png&quot; align=&quot;center&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;** History as a tree&lt;/p&gt; 
&lt;p&gt;History is represented as a tree that you can traverse. Smarter than the &quot;forwards-backwards&quot; abstraction found in other browsers, the tree makes sure you never lose track of where you&#39;ve been.&lt;/p&gt; 
&lt;p&gt;#+html: &lt;img src=&quot;https://nyxt-browser.com/static/image/history.png&quot; align=&quot;center&quot; /&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Installation&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Supported platforms:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;GNU/Linux&lt;/li&gt; 
 &lt;li&gt;macOS (in development)&lt;/li&gt; 
 &lt;li&gt;Windows (in development)&lt;/li&gt; 
 &lt;li&gt;FreeBSD (unofficial)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;** GNU/Linux&lt;/p&gt; 
&lt;p&gt;The Nyxt team maintains the following distribution means:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;[[&lt;a href=&quot;https://flathub.org/apps/engineer.atlas.Nyxt&quot;&gt;https://flathub.org/apps/engineer.atlas.Nyxt&lt;/a&gt;][Nyxt on Flathub]]&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;[[&lt;a href=&quot;https://repology.org/project/nyxt/versions&quot;&gt;https://repology.org/project/nyxt/versions&lt;/a&gt;][Non-official distribution means are supported by the community as well]]. We&#39;re not accountable for their quality, so we kindly ask to report issues to the maintainers of those packaging efforts.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Contributing&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Please refer to the [[file:developer-manual.org][developer&#39;s documentation]].&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/fbbfe7ed16685fce6f017e15143a73e32ae1e30f5fa3d4d086d08134c2a750f5/atlas-engineer/nyxt" medium="image" />
      
    </item>
    
  </channel>
</rss>
