I develop the
Steam ,
Battlenet
and Epic
prefills.
I also help out with the Lancache
project where I can!
I sometimes write game mods too. I've written mods for Valheim as well as The Long Dark
CLI tool to automatically prime a Lancache with Steam games
Home Page: https://tpill90.github.io/steam-lancache-prefill/
License: MIT License
[10:05:50 PM] Starting Cyberpunk 2077
[10:05:51 PM] Downloading 60.67 GiB
3456 failed downloads
[10:07:33 PM] Finished in 01:42.15 - 5101.42 Mbit/s
[10:07:33 PM] Starting Eco
[10:07:33 PM] Downloading 1.28 GiB
8 failed downloads
[10:07:46 PM] Finished in 13.13 - 839.28 Mbit/s
[10:07:48 PM] Starting Garry's Mod
[10:07:48 PM] Downloading 2.25 GiB
16 failed downloads
[10:08:01 PM] Finished in 13.45 - 1435.66 Mbit/s
2022/08/29 16:03:32 [error] 1971#1971: *308621 unexpected status code 200 in slice response while reading response header
from upstream, client: 172.16.10.35, server: , request: "GET /depot/1091501/chunk
/b9bb9f2e8e012ec15168490514a7cb5edc601aa8 HTTP/1.1", subrequest: "/depot/1091501/chunk
/b9bb9f2e8e012ec15168490514a7cb5edc601aa8", upstream: "http://155.133.248.15:80/depot/1091501/chunk
/b9bb9f2e8e012ec15168490514a7cb5edc601aa8", host: "cache4-ams1.steamcontent.com"
Hi,
It would be really cool if i can run this script on my low powered raspberry pi,
so that i don't need my main pc to download games overnight,
it will be comparing 4w power consumption to 100w.
hardware:
pi4B
thanks
Feedback desired
select-apps
over to using new beta interfaceselect-apps-beta
that command is deprectated.Sorting games by most recently played would help speed up the init for the games to prefill.
People with huge libraries could be scrolling for quite some time before finding the 20 out of 200 games that they want to prefill, having the games you want to play the most right at the top would be great for speeding that up.
Including the Docker stuff from here https://gitlab.com/kirbo/steam-prefill-docker into this repo.
The package libicu
is required to run the app. This means users who choose to run the app in a docker container will have to build their own image from a Dockerfile.
The full error given when trying to run the app without libicu installed: Process terminated. Couldn't find a valid ICU package installed on the system. Please install libicu using your package manager and try again. Alternatively you can set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support. Please see https://aka.ms/dotnet-missing-libicu for more information.
Some users may prefer to be able to select a specific download region for various reasons such as maximising bandwidth.
https://github.com/tpill90/steam-lancache-prefill#prefill
$ docker run -v ${PWD}/Cache:/app/Cache -v ${PWD}/Config:/app/Config -it --rm kirbownz/steam-prefill-docker:latest prefill --nocache
Unrecognized option(s):
--nocache
SteamPrefill v1.3.1
Automatically fills a Lancache with games from Steam, so that subsequent downloads will be
served from the Lancache, improving speeds and reducing load on your internet connection.
Start by selecting apps for prefill with the 'select-apps' command, then start the prefill using 'prefill'
USAGE
SteamPrefill prefill [options]
DESCRIPTION
Downloads the latest version of one or more specified app(s). Automatically includes apps selected using the 'select-apps' command
OPTIONS
--all Prefills all currently owned apps
-f|--force Forces the prefill to always run, overrides the default behavior of only prefilling if a newer version is available.
-d|--dns-override Deprecated, will be removed in a future version. Manually specifies the Lancache IP, used to prefill on the Lancache server. Ex, '192.168.1.111'
-h|--help Shows help text.
--no-cache
flag to prefill commandI've been seeing a conistent issue in trying to prefill what seems to be exclusively EA titles using this tool, they fail instantly with the following error:
[8:56:32 AM] Starting Burnout:tm: Paradise Remastered
Unexpected download error : An unexpected error occured while downloading manifests! Skipping...
I've noticed it on Battlefield 1, Battlefield V and many other EA titles
All other non-EA titles prefill without issue. This is also using version 1.3.0 (latest at time of writing).
Hi,
Would it be possible to build the app with static links so that it could run any distro?
Trying to run this on alpine which doesn't have glibc but musl libc :)
After logging in with username/password and 2FA, the client gets stuck on the Connecting to Steam
prompt
Could we have an option to change the download speed from Mbit/s to MByte/s?
If using prefill --all it may download all of the games but when you choose select-apps the games remain unselected. It would be nice to have it automatically mark the games downloaded as selected.
Please enter your Steam password. (Password won't be saved) : *********
This account is protected by Steam Guard. Please enter the code sent to your email address: *****
[12:54:50 PM] Logged into Steam
System.ArgumentException: An item with the same key has already been added. Key: 414170
System.ArgumentException: An item with the same key has already been added. Key: 414170
at bool System.Collections.Generic.Dictionary`2.TryInsert(TKey , TValue , InsertionBehavior )
at Dictionary<TKey, TElement> System.Linq.Enumerable.ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource> ,
Func<TSource, TKey> , Func<TSource, TElement> , IEqualityComparer<TKey> )
at void SteamPrefill.Handlers.Steam.Steam3Session.LoadPackageInfo(IReadOnlyCollection<License> licenseList)
at void SteamPrefill.Handlers.Steam.Steam3Session.LicenseListCallback(LicenseListCallback licenseList)
at void SteamKit2.Internal.Callback`1.Run(object callback)
at void SteamKit2.CallbackManager.<>c__DisplayClass10_0.<Handle>b__1(CallbackBase callback)
at void System.Collections.Generic.List`1.ForEach(Action<T> )
at void SteamKit2.CallbackManager.Handle(ICallbackMsg call)
at void SteamKit2.CallbackManager.RunWaitAllCallbacks(TimeSpan timeout)
at void SteamPrefill.Handlers.Steam.Steam3Session.TryWaitForLoginKey()
at void SteamPrefill.Handlers.Steam.Steam3Session.<LoginToSteam>b__20_0(StatusContext _)
at Task Spectre.Console.Status.<>c__DisplayClass14_0.<Start>b__0(StatusContext ctx) in
C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Live\Status
\Status.cs:44
at void Spectre.Console.Status.<>c__DisplayClass16_0.<<StartAsync>b__0>d.MoveNext() in
C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Live\Status
\Status.cs:79
at void Spectre.Console.Status.<>c__DisplayClass17_0`1.<<StartAsync>b__0>d.MoveNext() in
C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Live\Status
\Status.cs:120
at void Spectre.Console.Progress.<>c__DisplayClass28_0`1.<<StartAsync>b__0>d.MoveNext() in
C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Live\Progre
ss\Progress.cs:133
at async Task<T> Spectre.Console.Internal.DefaultExclusivityMode.RunAsync<T>(Func<Task<T>> func) in
C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Internal\
DefaultExclusivityMode.cs:40
at async Task<T> Spectre.Console.Progress.StartAsync<T>(Func<ProgressContext, Task<T>> action) in
C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Live\Progre
ss\Progress.cs:116
at async Task<T> Spectre.Console.Status.StartAsync<T>(string status, Func<StatusContext, Task<T>> func) in
C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Live\Status
\Status.cs:117
at async Task Spectre.Console.Status.StartAsync(string status, Func<StatusContext, Task> action) in
C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Live\Status
\Status.cs:77
at void Spectre.Console.Status.Start(string status, Action<StatusContext> action) in
C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Live\Status
\Status.cs:48
at void SteamPrefill.Handlers.Steam.Steam3Session.LoginToSteam()
at void SteamPrefill.SteamManager.Initialize()
at async ValueTask SteamPrefill.CliCommands.SelectAppsCommand.ExecuteAsync(IConsole console)
Default terminal app just scrolls back/forth the console scrollback instead of scrolling through the list
When using page down to select an app it will throw an exception after the 12th page. It this to me in Windows and in Linux.
Copy/pasted exception for clarity:
System.NullReferenceException: Object reference not set to an instance of an object.
at Spectre.Console.ExceptionFormatter.TryGetTupleName(ParameterInfo parameter, Type parameterType, String& tupleName) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Widgets\Exceptions\ExceptionFormatter.cs:314
at Spectre.Console.ExceptionFormatter.GetParameterName(ParameterInfo parameter) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Widgets\Exceptions\ExceptionFormatter.cs:280
at Spectre.Console.ExceptionFormatter.<>c__DisplayClass4_0.<AppendParameters>b__0(ParameterInfo x) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Widgets\Exceptions\ExceptionFormatter.cs:121
at System.Linq.Enumerable.SelectArrayIterator`2.MoveNext()
at System.String.Join(String separator, IEnumerable`1 values)
at Spectre.Console.ExceptionFormatter.AppendParameters(StringBuilder builder, MethodBase method, ExceptionSettings settings) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Widgets\Exceptions\ExceptionFormatter.cs:125
at Spectre.Console.ExceptionFormatter.GetStackFrames(Exception ex, ExceptionSettings settings) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Widgets\Exceptions\ExceptionFormatter.cs:86
at Spectre.Console.ExceptionFormatter.GetException(Exception exception, ExceptionSettings settings) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Widgets\Exceptions\ExceptionFormatter.cs:22
at Spectre.Console.ExceptionFormatter.Format(Exception exception, ExceptionSettings settings) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Widgets\Exceptions\ExceptionFormatter.cs:7
at Spectre.Console.ExceptionExtensions.GetRenderable(Exception exception, ExceptionSettings settings) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Extensions\ExceptionExtensions.cs:40
at Spectre.Console.ExceptionExtensions.GetRenderable(Exception exception, ExceptionFormats format) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Extensions\ExceptionExtensions.cs:21
at Spectre.Console.AnsiConsoleExtensions.WriteException(IAnsiConsole console, Exception exception, ExceptionFormats format) in C:\Users\Tim\Dropbox\Programming\dotnet-public\SteamPrefill\External\SpectreConsole\src\Spectre.Console\Extensions\AnsiConsoleExtensions.Exceptions.cs:16
at SteamPrefill.CliCommands.SelectAppsCommand.ExecuteAsync(IConsole console)
at CliFx.CliApplication.RunAsync(ApplicationSchema applicationSchema, CommandInput commandInput) in D:\a\CliFx\CliFx\CliFx\CliApplication.cs:147
at CliFx.CliApplication.RunAsync(IReadOnlyList`1 commandLineArguments, IReadOnlyDictionary`2 environmentVariables) in D:\a\CliFx\CliFx\CliFx\CliApplication.cs:191
Originally posted by @stuart-c-moore in #70 (comment)
Here is the error log:
stuart@lancache:~/SteamPrefill-1.3.0-linux-x64$ cat errorlog.txt
[[10:48:40 PM]] An exception occurred while downloading manifests[[10:48:40 PM]] SteamPrefill.Models.Exceptions.ManifestException: No manifest request code was returned for 1523210 1523211 4005512837758401031
at SteamPrefill.Handlers.ManifestHandler.GetManifestRequestCodeAsync(DepotInfo depot)
at SteamPrefill.Handlers.ManifestHandler.GetSingleManifestAsync(DepotInfo depot, Server server)
at SteamPrefill.Handlers.ManifestHandler.<>c__DisplayClass6_1.<<AttemptManifestDownloadAsync>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__50`1.<<ForEachAsync>b__50_0>d.MoveNext()
--- End of stack trace from previous location ---
at SteamPrefill.Handlers.ManifestHandler.<>c__DisplayClass6_0.<<AttemptManifestDownloadAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Spectre.Console.Status.<>c__DisplayClass16_0.<<StartAsync>b__0>d.MoveNext() in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 79
--- End of stack trace from previous location ---
at Spectre.Console.Status.<>c__DisplayClass17_0`1.<<StartAsync>b__0>d.MoveNext() in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 120
--- End of stack trace from previous location ---
at Spectre.Console.Progress.<>c__DisplayClass28_0`1.<<StartAsync>b__0>d.MoveNext() in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Progress\Progress.cs:line 133
--- End of stack trace from previous location ---
at Spectre.Console.Internal.DefaultExclusivityMode.RunAsync[T](Func`1 func) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Internal\DefaultExclusivityMode.cs:line 40
at Spectre.Console.Progress.StartAsync[T](Func`2 action) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Progress\Progress.cs:line 116
at Spectre.Console.Status.StartAsync[T](String status, Func`2 func) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 117
at Spectre.Console.Status.StartAsync(String status, Func`2 action) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 77
at SteamPrefill.Handlers.ManifestHandler.AttemptManifestDownloadAsync(List`1 depots)
at SteamPrefill.Handlers.ManifestHandler.GetAllManifestsAsync(List`1 depots)[[10:48:44 PM]] An exception occurred while downloading manifests[[10:48:44 PM]] SteamPrefill.Models.Exceptions.ManifestException: No manifest request code was returned for 1523210 1523211 4005512837758401031
at SteamPrefill.Handlers.ManifestHandler.GetManifestRequestCodeAsync(DepotInfo depot)
at SteamPrefill.Handlers.ManifestHandler.GetSingleManifestAsync(DepotInfo depot, Server server)
at SteamPrefill.Handlers.ManifestHandler.<>c__DisplayClass6_1.<<AttemptManifestDownloadAsync>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__50`1.<<ForEachAsync>b__50_0>d.MoveNext()
--- End of stack trace from previous location ---
at SteamPrefill.Handlers.ManifestHandler.<>c__DisplayClass6_0.<<AttemptManifestDownloadAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Spectre.Console.Status.<>c__DisplayClass16_0.<<StartAsync>b__0>d.MoveNext() in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 79
--- End of stack trace from previous location ---
at Spectre.Console.Status.<>c__DisplayClass17_0`1.<<StartAsync>b__0>d.MoveNext() in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 120
--- End of stack trace from previous location ---
at Spectre.Console.Progress.<>c__DisplayClass28_0`1.<<StartAsync>b__0>d.MoveNext() in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Progress\Progress.cs:line 133
--- End of stack trace from previous location ---
at Spectre.Console.Internal.DefaultExclusivityMode.RunAsync[T](Func`1 func) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Internal\DefaultExclusivityMode.cs:line 40
at Spectre.Console.Progress.StartAsync[T](Func`2 action) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Progress\Progress.cs:line 116
at Spectre.Console.Status.StartAsync[T](String status, Func`2 func) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 117
at Spectre.Console.Status.StartAsync(String status, Func`2 action) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 77
at SteamPrefill.Handlers.ManifestHandler.AttemptManifestDownloadAsync(List`1 depots)
at SteamPrefill.Handlers.ManifestHandler.GetAllManifestsAsync(List`1 depots)[[10:48:52 PM]] An exception occurred while downloading manifests[[10:48:52 PM]] SteamPrefill.Models.Exceptions.ManifestException: No manifest request code was returned for 1523210 1523211 4005512837758401031
at SteamPrefill.Handlers.ManifestHandler.GetManifestRequestCodeAsync(DepotInfo depot)
at SteamPrefill.Handlers.ManifestHandler.GetSingleManifestAsync(DepotInfo depot, Server server)
at SteamPrefill.Handlers.ManifestHandler.<>c__DisplayClass6_1.<<AttemptManifestDownloadAsync>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__50`1.<<ForEachAsync>b__50_0>d.MoveNext()
--- End of stack trace from previous location ---
at SteamPrefill.Handlers.ManifestHandler.<>c__DisplayClass6_0.<<AttemptManifestDownloadAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Spectre.Console.Status.<>c__DisplayClass16_0.<<StartAsync>b__0>d.MoveNext() in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 79
--- End of stack trace from previous location ---
at Spectre.Console.Status.<>c__DisplayClass17_0`1.<<StartAsync>b__0>d.MoveNext() in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 120
--- End of stack trace from previous location ---
at Spectre.Console.Progress.<>c__DisplayClass28_0`1.<<StartAsync>b__0>d.MoveNext() in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Progress\Progress.cs:line 133
--- End of stack trace from previous location ---
at Spectre.Console.Internal.DefaultExclusivityMode.RunAsync[T](Func`1 func) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Internal\DefaultExclusivityMode.cs:line 40
at Spectre.Console.Progress.StartAsync[T](Func`2 action) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Progress\Progress.cs:line 116
at Spectre.Console.Status.StartAsync[T](String status, Func`2 func) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 117
at Spectre.Console.Status.StartAsync(String status, Func`2 action) in C:\Users\Tim\Dropbox\Programming\dotnet-public\spectre.console\src\Spectre.Console\Live\Status\Status.cs:line 77
at SteamPrefill.Handlers.ManifestHandler.AttemptManifestDownloadAsync(List`1 depots)
I know that I have been logged out at least once in the past, which I realized when trying to set up a cron job. That cron job also does not give any alert that something is wrong if it fails, and I only could know that there was an issue if I looked at the logs for the job (which I manually set up)
Originally posted by @EthRousseau in #56 (comment)
--os
flag that takes linux
and/or windows
as a parameter--os
defaults to WindowsSteamPrefill.exe benchmark setup
--use-selected
- Generates a benchmark file from the currently selected apps.--appid 1234 5678 910
- Generates a file from 1 or more specified app ids--all
- Generates a file with all owned appsSteamPrefill.exe benchmark run
--concurrency
- Specifies how many concurrent requests.--iterations
- Specifies how many iterations to run.benchmark setup
detailed command usagebenchmark run
detailed command usageCurrently the application makes connections directly to the hostnames of the CDN servers, relying on DNS poisoning of all CDN server hostnames to work correctly.
This needs to be updated to work in a way similar to steamcmd and the Steam Client, where it checks to see if lancache.steamcontent.com
resolves to a private IP address. If so, it will open HTTP connections specifically to that IP address; and then use the Host:
header to specify the upstream CDN server; instead of connecting to the hostname of the CDN server.
We are planning to remove all the other Steam hostnames from uklans/cache-domains and only have the trigger domain, lancache.steamcontent.com
at some point this year, so this behaviour will need updating before then.
First of all:
There is NO VIRUS it is only a FALSE ALARM
The Problem:
With the Prefill File Version: SteamPrefill-1.3.1-win-x64 and Windows 11 and Defender:
Defender Security Update from 22.08.2022 12:48 Versions Number: 1.373.806.0
you can get a False/Postive Virus Found.
It is not Possible to access the File in Windows 11 or even download it. Chromium Browser no download, Firefox Download but no Access to File.
The Hash of the File should be: (Check with Powershell)
Get-FileHash .\SteamPrefill-1.3.1-win-x64.zip
Algorithm Hash
SHA256 6491C77C3778B2A2FE3D3A2172945742A5A5AF163311F3D1C0E1EEBE65DFD8D8
Error Message be like that in Windows:
Enables automatic updates, using software such as watchtower.
It would be great to have an option to automatically prefill recently played games from users on your network. This could be done using the corresponding SteamAPI Endpoint and by providing a list of SteamIDs to the program.
Alternatively the recently played tab on Steam could be utilized.
SteamPrefill
seems to be unable to find any any regional CDNs when running from Australia, preventing it from moving on from the logon stage.
When logging in, sometimes Steam will fail to save the session and will show the following error :
This issue prevents users from being able to use the app without logging in every time, which also prevents the use of this app in a cron job.
Logout()
call in Steam3Session.cs
seems to prevent other login sessions from getting bounced. Tested by logging into multiple SteamPrefill instances, waiting over the weekend, and then running SteamPrefill Monday morning. No SteamPrefill instances were logged out.Having more than 500 items in my list, it'd be great to jump to an item (and be able to select items from there)
While running the tool, this error gets returned:
./SteamPrefill: /lib/libstdc++.so.6: no version information available (required by ./SteamPrefill)
DSM 6.2.3-25426
Right now, it's sorted A-Z.a-z,0-9, would be nice if everything was sorted if it were lowercase. Or uppercase. Whichever you prefer ;)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.