nulastudio / netbeauty2 Goto Github PK
View Code? Open in Web Editor NEWMove a .NET Framework/.NET Core app runtime components and dependencies into a sub-directory and make it beauty.
License: MIT License
Move a .NET Framework/.NET Core app runtime components and dependencies into a sub-directory and make it beauty.
License: MIT License
大佬好,是国人吧,真是厉害,能写这么优秀的东西
我这边技术水平有限,无法实现vs自动发布时使用beauty
发布完,还是原来的样子
使用的是vs 2019,windows 10, core 3.1
现在只能在代码发布后使用ncbeatuty来移动
总结下问题,希望大佬能伸手指点下
1、vs怎么配置下能实现发布时自动带beauty(我们这会就是乱试,把所有的依赖包,都加上了beauty,所有的*.csproj都加了
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
<!--- MvcRazorCompileOnPublish : 是否对视图进行编译 -->
<!--<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>-->
<!--- ServerGarbageCollection : 服务器垃圾收集 :不会让内存无限增长 -->
<ServerGarbageCollection>false</ServerGarbageCollection>
<!--- ConcurrentGarbageCollection : 并发垃圾收集 :不会让内存无限增长 -->
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
<UserSecretsId>5138908c-a9c4-47c4-918c-9721cde60011</UserSecretsId>
<!-- beauty into sub-directory, default is libs, quote with "" if contains space -->
<BeautyLibsDir>libraries</BeautyLibsDir>
<!-- dlls that you don't want to be moved or can not be moved -->
<!-- <BeautyExcludes>dll1.dll;lib*;...</BeautyExcludes> -->
<!-- dlls that end users never needed, so hide them -->
<!-- <BeautyHiddens>hostfxr;hostpolicy;*.deps.json;*.runtimeconfig*.json</BeautyHiddens> -->
<!-- set to True if you want to disable -->
<DisableBeauty>False</DisableBeauty>
<!-- set to True if you don't want to generate NetCoreBeauty flag file -->
<!-- do not beauty twice since there is no flag file to determine if beauty already -->
<NoBeautyFlag>False</NoBeautyFlag>
<ForceBeauty>False</ForceBeauty>
<!-- <BeautyAfterTasks></BeautyAfterTasks> -->
<!-- set to True if you want to disable -->
<DisablePatch>False</DisablePatch>
<!-- valid values: Error|Detail|Info -->
<BeautyLogLevel>Info</BeautyLogLevel>
<!-- set to a repo mirror if you have troble in connecting github -->
<GitCDN>https://gitee.com/liesauer/HostFXRPatcher</GitCDN>
<GitTree>master</GitTree>
</PropertyGroup>
<ItemGroup>
...
<PackageReference Include="nulastudio.NetCoreBeauty" Version="1.2.9.2" />
...
</ItemGroup>
使用vs发布时也没有任何效果,只能使用命令:dotnet publish -r alpine-x64 单独指定某个版本,才能生效beauty,但这样就失去了跨平台的意义了
2、有没有相关中文文档指导书(东西是好东西,酒香也怕巷子深啊)
3、有没有相关视频
最后,希望大佬能出些指导文档或视频,博客,这样这个项目才能火起来,更多的人才能用上这么牛逼的东西
尤其针对vs2019设置及操作
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 找到了多个具有相同相对路径的发布输出文件: D:\ProgramData\Nuget.nuget\packages\system.data.sqlite.core\1.0.113.1\runtimes\win-x64\native\netstandard2.0\SQLite.Interop.dll, D:\ProgramData\Nuget.nuget\packages\system.data.sqlite.core\1.0.113.1\runtimes\win-x64\native\netstandard2.1\SQLite.Interop.dll。 WebApp 0
This is a problem since, when the patch fails and everything else is done, the app will crash due to dependencies being "missing" since the patch to find them properly wasn't applied.
Hi,
there's an error while publishing. The artifact v3.1.16/win-x64 does not exist. I have the same with 5.0.7. Can we expect the artifacts to be uploaded?
If I run publish once, it works:
dotnet publish -r win-x64 -c Release
But if I run the command a second time, the .dll
files don't get moved.
It looks like as long as the NetCoreBeauty
file that gets generated exists, the .dll
files don't get moved.
Hi, maybe I'm doing this wrong, but ncbeauty doesn't do anything for me. it completes without any error message, but no sub-directory is created
During publish:
1>------ Publish started: Project: RageLauncher, Configuration: Release Any CPU ------
1>Restore completed in 15.24 ms for C:\Dev\Repos\RDR2\RageLauncher\RageLauncher\RageLauncher.csproj.
1>RageLauncher -> C:\Dev\Repos\RDR2\RageLauncher\RageLauncher\bin\Release\netcoreapp3.1\win-x86\RageLauncher.dll
1>RageLauncher -> C:\Dev\Repos\RDR2\RageLauncher\RageLauncher\bin\Release\netcoreapp3.1\publish\
1>"C:\Users\noxxy\.nuget\packages\nulastudio.netcorebeauty\1.2.1\targets\../tools/win-x86/ncbeauty.exe" --loglevel Error "C:\Dev\Repos\RDR2\RageLauncher\RageLauncher\bin\Release\netcoreapp3.1\publish\" bin
========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
When run manually from the command line:
ncbeauty bin
No output, no change
ncbeauty --force=True bin
No output, no change
I'm using .NET Core 3.1. Here's the relevant parts of my project file:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<BeautyLibsDir>bin</BeautyLibsDir>
<BeautyLogLevel>Error</BeautyLogLevel>
</PropertyGroup>
<ItemGroup>
<None Include="..\.editorconfig" Link=".editorconfig" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="3.1.0" />
<PackageReference Include="nulastudio.NetCoreBeauty" Version="1.2.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
</ItemGroup>
<ItemGroup>
<None Update="config.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="README.md">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Update="README.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
And here's my publish profile:
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<TargetFramework>netcoreapp3.1</TargetFramework>
<PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
<PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun>False</PublishReadyToRun>
<PublishTrimmed>False</PublishTrimmed>
</PropertyGroup>
</Project>
请问需要怎么设置下吗, 谢谢
I'm using the MonoGame Framework for a project that I am trying to package with NetCoreBeauty. MonoGame loads its unmanaged dependencies (namely SDL) in an odd way, as seen here.
When running NetCoreBeauty on a simple example project and trying to run it, the SDL2.dll
native library can't be found anymore. Moving that file from the runtimes
folder to the main folder manually fixes the issue.
Here is a simple example project that you can use to recreate the issue:
MLEMDesktopGLCoreTest.zip (When run successfully, this project simply displays a window with a black background.)
When publishing I get an error message and the output says Artifact does not exist. v3.1.19/win-x64
Despite the error the publish seems to work.
Hi,
i upgraded from version 2.1.2.1 to 2.1.3.3 and now i get an XamlParseException when starting the app.
Edit: Sample project https://github.com/BornToBeRoot/NETworkManager
在repo的ReadMe中我看到说这个库的限制是只能使用在独立发布中, 但是经过我的实测,我使用框架依赖的发布方式也正常工作了,请问这样使用会有什么潜在的问题吗? 为什么readme中提到只能在独立发布中使用?
安装了nulastudio.NetBeauty 2.0.0-beta.4,在win10 64位系统.net core 3.1上测试发布,发布的程序不能运行,调试运行报IOException,请问如何解决?
1>C:\Program Files\dotnet\sdk\7.0.102\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(197,5): error MSB4018: “GenerateDepsFile”任务意外失败。
1>C:\Program Files\dotnet\sdk\7.0.102\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(197,5): error MSB4018: System.UnauthorizedAccessException: 对路径“E:\Work\Git\XXXAPP\XXXAPP\bin\Debug\net6.0-windows\XXXAPP.deps.json”的访问被拒绝。
So what is going on here? Are those false flags or is there malicious code in the binary release of this tool?
今天升级了 Visual Studio 后尝试发布,ncbeauty.exe 报错 Artifact does not exist. v6.0.3/win-x64
I am getting this error on a .NET 6 project that is composed of itself and 3 class librairies. Can you point me in the right direction to get this to work? It was working when every project was set to x86 for compatibility reasons with the Excel driver but now I get this error no matter what I do!
This error shows up when using the CLI tool or the nuget package within the project.
First of all, thank you for the great project! I'm currently migrating a project from .net461 to .net core 3.1.6, and glad I found your work as a great replacement for the former "probing privatePath" from App.config
Anyway, I'm getting this error:
"Artifact does not exist. v3.1.6/win-x64
patch failed"
If I understood correctly, it seems that the latest fx patcher you have is for 3.1.5, would you be able to create a new one for 3.1.6?
Thank you!
It seems that, when not appending any excluded files for the beautify process, none of the files that should usually get moved actually get moved, resulting in the program doing nothing.
Getting this from publish:
1>------ Publish started: Project: RevenueGovernance, Configuration: Release Any CPU ------
1>Determining projects to restore...
1>All projects are up-to-date for restore.
1>RevenueGovernance -> C:\projects\RevenueGovernance\RevenueGovernance\bin\Release\net7.0-windows\win-x64\RevenueGovernance.dll
1>RevenueGovernance -> C:\projects\RevenueGovernance\RevenueGovernance\bin\Release\net7.0-windows\win-x64\publish\
1>"C:\Users\Administrator\.nuget\packages\nulastudio.netcorebeauty\1.2.9.3\targets\../tools/win-x86/ncbeauty.exe" --loglevel Info "C:\projects\RevenueGovernance\RevenueGovernance\bin\Release\net7.0-windows\win-x64\publish\/." ./libraries
1>running ncbeauty...
1>checking runtime.*.json version...
1>runtime.compatibility.json no need to update
1>runtime.supported.json no need to update
1>incomplete fxr info [v/] found in deps.json: C:/projects/RevenueGovernance/RevenueGovernance/bin/Release/net7.0-windows/win-x64/publish/RevenueGovernance.deps.json
1>Artifact does not exist. /
It does not look like a standard missing artifact issue.
.net core 7 in case its important. win70-windows/win-x64
I noticed that this only run when doing dotnet publish
when trying mode of adding PropertyGroup
in .csproj, so can NetBeauty2 run when debuging?
Hello there,
I'm building an app as part of my cusotm workflow on github.
I'm installing the CLI tool using this line
dotnet tool install --global nulastudio.ncbeauty
and then calling the ncbeauty using this other line
ncbeauty --noflag --nopatch --hiddens "hostfxr;hostpolicy;*.deps.json;*.runtimeconfig*.json;*.config" ..\bin libs
I'm getting this error
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '2.1.0' was not found.
- The following frameworks were found:
5.0.2 at [C:\Users\runneradmin\AppData\Local\Microsoft\dotnet\shared\Microsoft.NETCore.App]You can resolve the problem by installing the specified framework and/or SDK.
The specified framework can be found at:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=2.1.0&arch=x64&rid=win10-x64
Error: Process completed with exit code 1.
The app is a WPF Net5 app, and running the command from my local windows powershell is ok, but it seems to not work on the github workflow for some reason
Any suggestions on how I can solve the issue?
Thank you in advance
Hello guys, and thanks for this usefull library.
I use it for an asp .net core 7.0 project, it work perfectly after publish, but i notice one dll of my project is not move to the libraries folder, System.IO.Packaging.dll.
Do yo have any idea why ?
thanks !
MyTests.zip
1.TestLibs is a public library that is referenced by other projects.
2.TestPlugin, simulation plug-in dll, dynamic loading, direct reference to TestLibs
3. TestConsoleWithRef directly references TestLibs and uses NetBeauty for directory optimization
4.TestConsole, load TestLibs through Assembly.LoadFile and call its methods.
When running with TestConsole, you will see TestLibs.dll loaded twice.
It's not clear to me if this is expected, if Assembly.LoadFile must be used to briefly reference TestLibs, is there a solution to this problem?
osx
open /var/folders/xb/5ys3kh657kdd45gb9kmlqjq80000gn/T/NetCoreBeauty/artifacts/ArtifactsVersion.txt: no such file or directory
open /var/folders/xb/5ys3kh657kdd45gb9kmlqjq80000gn/T/NetCoreBeauty/artifacts/OnlineArtifactsVersion.json: no such file or directory
linux
open /tmp/NetCoreBeauty/artifacts/ArtifactsVersion.txt: no such file or directory
open /tmp/NetCoreBeauty/artifacts/OnlineArtifactsVersion.json: no such file or directory
windows
open C:\Users\ADMINI~1\AppData\Local\Temp\2/NetCoreBeauty/artifacts/ArtifactsVersion.txt: The system cannot find the path specified.
open C:\Users\ADMINI~1\AppData\Local\Temp\2/NetCoreBeauty/artifacts/OnlineArtifactsVersion.json: The system cannot find the path specified.
only happen when first time use ncbeauty(<v1.2.3
)
不是publish 仅仅是 编译.
debug的时候 dll什么的太多,找个文件挺费劲的.
I was thinking that it might also be nice to have some sort of form (maybe a Google form?) where people can submit missing versions that they need artifacts for, so that this doesn't have to clutter up the issue tracker, and so that these requests are much easier and faster to submit.
Either way, thanks for all your hard work on this project!!
After today`s update, ncb can not process new executables.
They seem to exist for linux and windows, though.
Artifact does not exist. v7.0.0/win-x64
环境: win10 x64 , .net6-windows winform项目
System.Reflection.ReflectionTypeLoadException:“Unable to load one or more of the requested types.
Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)”
该错误发生在 启动项目 assembly.GetTypes 调用的时候.
使用<DisableBeauty>True</DisableBeauty>
后发生:
bloader.dll 找不到或者加载不了的类似错误. 但是这个dll始终都在那
保持禁用 NetBeauty2,全部重新生成主项目后恢复正常(没有任何报错)
本问题怀疑和另一个issue 有关系(即自动给加载了不同版本了的dll导致的错误)
Hello guys, and thanks for this library.
it works greate except the pdb which stay at the root (yes i want to publish the pdf in release mode to have line number in case of exceptions).
Is it normal ? can it be configured ?
thanks !
After latest VS update ncbeauty started to produce the following error: "Error: Artifact does not exist. v6.0.1/win-x64"
Environment: Windows 10, x64 Pro. VS Community 2022 v 17.0.3.
It seems like there are no patches for .NET 5.0.4 currently available.
Hi.
Iam having issues with assembly System.Configuration.ConfigurationManager on net6/Windows10.
I tried to use BeautyExcludes System.;Microsoft. but to no avail.
The error message is
Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
I can see the file is present in output folder, but somehow its not seen by the nbloader?
I tried sharedmode / excludes nothing worked.
Is there something special about this assembly?
How can I work around this?
My Config
<BeautySharedRuntimeMode>False</BeautySharedRuntimeMode> <!-- beauty into sub-directory, default is libs, quote with "" if contains space --> <BeautyLibsDir Condition="$(BeautySharedRuntimeMode) == 'True'">../libraries</BeautyLibsDir> <BeautyLibsDir Condition="$(BeautySharedRuntimeMode) != 'True'">./libraries</BeautyLibsDir> <!-- dlls that you don't want to be moved or can not be moved --> <BeautyExcludes>System.*.dll;Microsoft.*.dll</BeautyExcludes> <!-- dlls that end users never needed, so hide them --> <!-- <BeautyHiddens>hostfxr;hostpolicy;*.deps.json;*.runtimeconfig*.json</BeautyHiddens> --> <!-- set to True if you want to disable --> <DisableBeauty>False</DisableBeauty> <!-- set to False if you want to beauty on build --> <BeautyOnPublishOnly>False</BeautyOnPublishOnly> <!-- set to True if you want to allow 3rd debuggers(like dnSpy) debugs the app --> <BeautyEnableDebugging>False</BeautyEnableDebugging> <!-- the patch can reduce the file count --> <!-- set to False if you want to disable --> <!-- SCD Mode Feature Only --> <BeautyUsePatch>False</BeautyUsePatch> <!-- <BeautyAfterTasks></BeautyAfterTasks> --> <!-- valid values: Error|Detail|Info --> <BeautyLogLevel>Info</BeautyLogLevel> <!-- set to a repo mirror if you have troble in connecting github --> <!-- <BeautyGitCDN>https://gitee.com/liesauer/HostFXRPatcher</BeautyGitCDN> --> <!-- <BeautyGitTree>master</BeautyGitTree> -->
Thanks.
is there any support for WASDK/WinUI 3?
用命令行运行时出这个错误,项目是.net core 3.1的
错误信息:
Error: incomplete fxr info [/] found in deps.json: D:/dev/dotnet/DeepLogic.WebApi/bin/Debug/netcoreapp3.1/DeepLogic.WebApi.deps.json
Error: incomplete fxr info, skipping patch
Hello guys, i met a problem with your library when i deploy my new version re-packaged with it on the server of my clients.
I have a program which update all the files of my app, so with the new version he will copy all the dlls in the libraries sub folder
So when my program start after first update, it will have this files architecture
|Root
||||||Mydll1.dll//these are the old dll, they are not supposed to be here but the program which update don't delete existing files
||||||Mydll2.dll
||||||||Libraries
||||||||||||Mydll1.dll//these are the new dll
||||||||||||Mydll2.dll
I manage inside my app to clean the root directory when it start because these dll are no longer in the root
But it seem, when these dll are present in the root, it use it rather than take it in the libraries folder
so i have these two problems :
So the question, is there is a way when my app start to force take the dll in the libraries folder even if they exist in the root ?
thanks !
Let's say I have a project in Source/Hello/World.csproj
.
To publish I can do:
dotnet publish Source/Hello -r win-x64 -c Release
Specifying the csproj's folder like that makes NetCoreBeauty not apply it's changes (no errors are written in the console though).
If instead I do:
cd Source/Hello
dotnet publish -r win-x64 -c Release
NetCoreBeauty will work.
Minimal reproduction: #10 (comment) with latest NetCoreBeauty version and PublishTrimmed
set to true
.
As you can see, ResX generates language code folders which have additional DLLs inside them. According to this, they are loaded in the same way that this does, so simply putting them inside the libraries folder would clean it up nicely.
EDIT: I noticed that it gets some of the files, but not all of them.... I wonder why....
Uncommented section of the csproj file ignored - NCB leaves hostfxr.dll, hostpolicy.dll, *.deps.json and *.runtimeconfig.json files in the publish directory while I expected they will be hidden too.
Project uses .Net Core 3.1 executable target, NCB version 1.2.9.2.
Hi, thanks so much again for these fabulous tools! In case you don't remember, I use NetCoreBeauty v1 as part of my tool GameBundle.
Unfortunately, all of the global tools attached to this project don't have the RollForward
directive, which means that users have to have the exact version of .NET installed that the tool was built with to use it. In most cases, this is unnecessary, as newer versions are usually backwards-compatible for tool execution.
I recently updated GameBundle to include this feature, but essentially all you have to do is add this to your project file:
<RollForward>Major</RollForward>
For more info, I used the official documentation from here: https://learn.microsoft.com/en-us/dotnet/core/project-sdk/msbuild-props#rollforward
Thanks so much, and I hope you consider adding this directive to the v1 global tool as well!
Without NetBeauty2:
With NetBeauty2:
Unhandled exception. System.IO.FileLoadException: Could not load file or assembly 'Avalonia.Win32, Version=0.10.13.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b'. Could not find the specified DllImport Dll.
File name: 'Avalonia.Win32, Version=0.10.13.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b'
---> System.DllNotFoundException: Unable to load shared library 'libSystem.Native' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(liblibSystem.Native, 0x0001): tried: 'liblibSystem.Native' (no such file), '/usr/local/lib/liblibSystem.Native' (no such file), '/usr/lib/liblibSystem.Native' (no such file), '/Users/#####/Downloads/emufish-osx-arm64-self-contained/liblibSystem.Native' (no such file)
at Interop.Sys.LStat(Byte& path, FileStatus& output)
at Interop.Sys.LStat(ReadOnlySpan`1 path, FileStatus& output)
at System.IO.FileSystem.FileExists(ReadOnlySpan`1 fullPath, ErrorInfo& errorInfo)
at System.IO.FileSystem.FileExists(ReadOnlySpan`1 fullPath)
at System.IO.File.Exists(String path)
at NetBeauty.NBLoader.ManagedAssemblyResolver(AssemblyLoadContext context, AssemblyName assemblyName)
at System.Runtime.Loader.AssemblyLoadContext.GetFirstResolvedAssemblyFromResolvingEvent(AssemblyName assemblyName)
at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingEvent(AssemblyName assemblyName)
at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingResolvingEvent(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)
fish: Job 1, './EmuFish' terminated by signal SIGABRT (Abort)
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.