From f1c47c70623d624477257795635d6224f7fb685d Mon Sep 17 00:00:00 2001 From: 634750802 <634750802@qq.com> Date: Thu, 10 Oct 2024 02:53:22 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20abdf9?= =?UTF-8?q?6c086d34f02aab816bf6f67f0c844af60f2=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2022/index.html | 8 +- 404.html | 8 +- analyze-company/index.html | 8 +- analyze/:login/index.html | 8 +- analyze/:owner/:repo/index.html | 8 +- analyze/facebook/react/index.html | 8 +- analyze/pingcap/tidb/index.html | 8 +- analyze/tikv/tikv/index.html | 8 +- ...67621.b96710a4.js => 5c767621.ae9ff2ab.js} | 130 +++++++++--------- assets/js/8258.00f858d5.js | 2 - assets/js/8258.206edb6e.js | 2 + ...CENSE.txt => 8258.206edb6e.js.LICENSE.txt} | 0 .../js/{main.e4d36266.js => main.aeb96e10.js} | 6 +- ...CENSE.txt => main.aeb96e10.js.LICENSE.txt} | 0 ...n.beac210b.js => runtime~main.e360d988.js} | 2 +- blog/archive/index.html | 8 +- blog/chat2query-tutorials/index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- blog/github-data-is-booming/index.html | 8 +- blog/how-it-works/index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- blog/index.html | 8 +- blog/page/2/index.html | 8 +- blog/reduce-query-latency/index.html | 8 +- .../index.html | 8 +- blog/say-thanks-to-github-robots/index.html | 8 +- blog/tags/apche-log-4-j/index.html | 8 +- blog/tags/c-url/index.html | 8 +- blog/tags/chatgpt/index.html | 8 +- blog/tags/core-js/index.html | 8 +- blog/tags/git-hub/index.html | 8 +- blog/tags/gpts/index.html | 8 +- blog/tags/homebrew/index.html | 8 +- blog/tags/image-magick/index.html | 8 +- blog/tags/index.html | 8 +- blog/tags/insight/index.html | 8 +- blog/tags/maintainer/index.html | 8 +- blog/tags/my-cli/index.html | 8 +- blog/tags/open-source/index.html | 8 +- blog/tags/open-ssl/index.html | 8 +- blog/tags/openai/index.html | 8 +- blog/tags/tidb/index.html | 8 +- blog/tags/tidbcloud/index.html | 8 +- .../index.html | 8 +- blog/try-it-yourself/index.html | 8 +- blog/unsung-heroes-of-open-source/index.html | 8 +- .../index.html | 8 +- collections/3-d-physics-engines/index.html | 8 +- .../3-d-physics-engines/trends/index.html | 8 +- collections/:slug/index.html | 8 +- collections/:slug/trends/index.html | 8 +- collections/ansible-dev-tools/index.html | 8 +- .../ansible-dev-tools/trends/index.html | 8 +- collections/api-gateway/index.html | 8 +- collections/api-gateway/trends/index.html | 8 +- collections/api-tool-for-developer/index.html | 8 +- .../api-tool-for-developer/trends/index.html | 8 +- collections/apm-tool/index.html | 8 +- collections/apm-tool/trends/index.html | 8 +- .../index.html | 8 +- .../trends/index.html | 8 +- .../index.html | 8 +- .../trends/index.html | 8 +- .../artificial-intelligence/index.html | 8 +- .../artificial-intelligence/trends/index.html | 8 +- .../browser-extension-frameworks/index.html | 8 +- .../trends/index.html | 8 +- collections/business-intelligence/index.html | 8 +- .../business-intelligence/trends/index.html | 8 +- collections/business-management/index.html | 8 +- .../business-management/trends/index.html | 8 +- collections/chaos-engineering/index.html | 8 +- .../chaos-engineering/trends/index.html | 8 +- collections/chat-gpt-alternatives/index.html | 8 +- .../chat-gpt-alternatives/trends/index.html | 8 +- collections/chat-gpt-apps/index.html | 8 +- collections/chat-gpt-apps/trends/index.html | 8 +- collections/cicd/index.html | 8 +- collections/cicd/trends/index.html | 8 +- .../index.html | 8 +- .../trends/index.html | 8 +- .../computer-science-courses/index.html | 8 +- .../trends/index.html | 8 +- .../configuration-management-tools/index.html | 8 +- .../trends/index.html | 8 +- collections/cpp-cli-parsing/index.html | 8 +- collections/cpp-cli-parsing/trends/index.html | 8 +- .../cross-platform-gui-tool/index.html | 8 +- .../cross-platform-gui-tool/trends/index.html | 8 +- collections/css-framework/index.html | 8 +- collections/css-framework/trends/index.html | 8 +- collections/data-integration/index.html | 8 +- .../data-integration/trends/index.html | 8 +- collections/diagram-as-code/index.html | 8 +- collections/diagram-as-code/trends/index.html | 8 +- .../distributed-file-storage/index.html | 8 +- .../trends/index.html | 8 +- collections/finance/index.html | 8 +- collections/finance/trends/index.html | 8 +- collections/game-engine/index.html | 8 +- collections/game-engine/trends/index.html | 8 +- collections/github-alternative/index.html | 8 +- .../github-alternative/trends/index.html | 8 +- collections/go-database/index.html | 8 +- collections/go-database/trends/index.html | 8 +- collections/go-logging-libraries/index.html | 8 +- .../go-logging-libraries/trends/index.html | 8 +- collections/go-web-frameworks/index.html | 8 +- .../go-web-frameworks/trends/index.html | 8 +- collections/golang-orm/index.html | 8 +- collections/golang-orm/trends/index.html | 8 +- .../google-analytics-alternative/index.html | 8 +- .../trends/index.html | 8 +- collections/graph-database/index.html | 8 +- collections/graph-database/trends/index.html | 8 +- .../index.html | 8 +- .../trends/index.html | 8 +- collections/headless-cms/index.html | 8 +- collections/headless-cms/trends/index.html | 8 +- collections/hyperledger-besu/index.html | 8 +- .../hyperledger-besu/trends/index.html | 8 +- collections/hyperledger-fabric/index.html | 8 +- .../hyperledger-fabric/trends/index.html | 8 +- collections/hyperledger-foundation/index.html | 8 +- .../hyperledger-foundation/trends/index.html | 8 +- collections/i-os-framework/index.html | 8 +- collections/i-os-framework/trends/index.html | 8 +- collections/identity-server/index.html | 8 +- collections/identity-server/trends/index.html | 8 +- collections/index.html | 8 +- collections/javascript-build-tool/index.html | 8 +- .../javascript-build-tool/trends/index.html | 8 +- collections/javascript-charting/index.html | 8 +- .../javascript-charting/trends/index.html | 8 +- collections/javascript-framework/index.html | 8 +- .../javascript-framework/trends/index.html | 8 +- collections/javascript-game-engine/index.html | 8 +- .../javascript-game-engine/trends/index.html | 8 +- collections/javascript-orm/index.html | 8 +- collections/javascript-orm/trends/index.html | 8 +- collections/key-value-database/index.html | 8 +- .../key-value-database/trends/index.html | 8 +- collections/kubernetes-tooling/index.html | 8 +- .../kubernetes-tooling/trends/index.html | 8 +- collections/llm-dev-tools/index.html | 8 +- collections/llm-dev-tools/trends/index.html | 8 +- collections/llm-tools/index.html | 8 +- collections/llm-tools/trends/index.html | 8 +- .../low-code-development-tool/index.html | 8 +- .../trends/index.html | 8 +- collections/message-and-streaming/index.html | 8 +- .../message-and-streaming/trends/index.html | 8 +- collections/ml-in-rust/index.html | 8 +- collections/ml-in-rust/trends/index.html | 8 +- collections/ml-ops-tools/index.html | 8 +- collections/ml-ops-tools/trends/index.html | 8 +- collections/modern-data-stack/index.html | 8 +- .../modern-data-stack/trends/index.html | 8 +- collections/monitoring-tool/index.html | 8 +- collections/monitoring-tool/trends/index.html | 8 +- collections/networking-for-games/index.html | 8 +- .../networking-for-games/trends/index.html | 8 +- .../open-source-data-catalogs/index.html | 8 +- .../trends/index.html | 8 +- collections/open-source-database/index.html | 8 +- .../open-source-database/trends/index.html | 8 +- .../open-source-forum-software/index.html | 8 +- .../trends/index.html | 8 +- collections/optimization-solvers/index.html | 8 +- .../optimization-solvers/trends/index.html | 8 +- collections/paa-s/index.html | 8 +- collections/paa-s/trends/index.html | 8 +- collections/password-manager/index.html | 8 +- .../password-manager/trends/index.html | 8 +- .../programming-language-of-china/index.html | 8 +- .../trends/index.html | 8 +- collections/programming-language/index.html | 8 +- .../programming-language/trends/index.html | 8 +- collections/react-framework/index.html | 8 +- collections/react-framework/trends/index.html | 8 +- .../reactive-monolith-frameworks/index.html | 8 +- .../trends/index.html | 8 +- collections/relational-database/index.html | 8 +- .../relational-database/trends/index.html | 8 +- collections/remote-desktop-tool/index.html | 8 +- .../remote-desktop-tool/trends/index.html | 8 +- collections/robotics/index.html | 8 +- collections/robotics/trends/index.html | 8 +- collections/rust-database/index.html | 8 +- collections/rust-database/trends/index.html | 8 +- collections/search-engine/index.html | 8 +- collections/search-engine/trends/index.html | 8 +- collections/security-tool/index.html | 8 +- collections/security-tool/trends/index.html | 8 +- collections/segment-alternative/index.html | 8 +- .../segment-alternative/trends/index.html | 8 +- collections/serverless-framework/index.html | 8 +- .../serverless-framework/trends/index.html | 8 +- collections/slack-alternative/index.html | 8 +- .../slack-alternative/trends/index.html | 8 +- .../stable-diffusion-ecosystem/index.html | 8 +- .../trends/index.html | 8 +- collections/static-site-generator/index.html | 8 +- .../static-site-generator/trends/index.html | 8 +- collections/terminal/index.html | 8 +- collections/terminal/trends/index.html | 8 +- collections/testing-tools/index.html | 8 +- collections/testing-tools/trends/index.html | 8 +- collections/text-editor/index.html | 8 +- collections/text-editor/trends/index.html | 8 +- collections/time-series-database/index.html | 8 +- .../time-series-database/trends/index.html | 8 +- collections/tui-framework/index.html | 8 +- collections/tui-framework/trends/index.html | 8 +- .../ui-framework-and-u-ikit/index.html | 8 +- .../ui-framework-and-u-ikit/trends/index.html | 8 +- .../vector-database-vector-store/index.html | 8 +- .../trends/index.html | 8 +- collections/vector-search-engine/index.html | 8 +- .../vector-search-engine/trends/index.html | 8 +- collections/virtual-reality/index.html | 8 +- collections/virtual-reality/trends/index.html | 8 +- collections/web-assembly-runtime/index.html | 8 +- .../web-assembly-runtime/trends/index.html | 8 +- collections/web-framework/index.html | 8 +- collections/web-framework/trends/index.html | 8 +- collections/web-rtc/index.html | 8 +- collections/web-rtc/trends/index.html | 8 +- collections/web-scanner/index.html | 8 +- collections/web-scanner/trends/index.html | 8 +- collections/web3/index.html | 8 +- collections/web3/trends/index.html | 8 +- collections/workflow-scheduler/index.html | 8 +- .../workflow-scheduler/trends/index.html | 8 +- collections/wysiwyg-editor/index.html | 8 +- collections/wysiwyg-editor/trends/index.html | 8 +- collections/x-as-code/index.html | 8 +- collections/x-as-code/trends/index.html | 8 +- collections/zapier-alternatives/index.html | 8 +- .../zapier-alternatives/trends/index.html | 8 +- compare/index.html | 8 +- docs/about/index.html | 8 +- .../index.html | 8 +- .../collection-repo-ranking-by-prs/index.html | 8 +- .../index.html | 8 +- docs/api/index.html | 8 +- docs/api/issue-creators-history/index.html | 8 +- docs/api/list-collections/index.html | 8 +- .../index.html | 8 +- .../list-countries-of-pr-creators/index.html | 8 +- .../list-countries-of-stargazers/index.html | 8 +- docs/api/list-hot-collections/index.html | 8 +- docs/api/list-issue-creators/index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- .../api/list-pull-request-creators/index.html | 8 +- docs/api/list-repos-of-collection/index.html | 8 +- docs/api/list-trending-repos/index.html | 8 +- .../pull-request-creators-history/index.html | 8 +- docs/api/showcase/index.html | 8 +- docs/api/stargazers-history/index.html | 8 +- docs/faq/index.html | 8 +- docs/workshop/index.html | 8 +- .../advanced-features/index.html | 8 +- .../ossinsight-lite/introduction/index.html | 8 +- .../setup-github-action/index.html | 8 +- .../setup-tidb-serverless/index.html | 8 +- .../ossinsight-lite/setup-vercel/index.html | 8 +- experimental/index.html | 8 +- explore/index.html | 8 +- index.html | 8 +- open-source-heroes/index.html | 12 +- stats/index.html | 8 +- stats/tables/:slug/index.html | 8 +- subscriptions/EnableEmailSwitch/index.html | 8 +- subscriptions/index.html | 8 +- try-your-own-dataset/index.html | 8 +- 284 files changed, 1181 insertions(+), 1181 deletions(-) rename assets/js/{5c767621.b96710a4.js => 5c767621.ae9ff2ab.js} (76%) delete mode 100644 assets/js/8258.00f858d5.js create mode 100644 assets/js/8258.206edb6e.js rename assets/js/{8258.00f858d5.js.LICENSE.txt => 8258.206edb6e.js.LICENSE.txt} (100%) rename assets/js/{main.e4d36266.js => main.aeb96e10.js} (77%) rename assets/js/{main.e4d36266.js.LICENSE.txt => main.aeb96e10.js.LICENSE.txt} (100%) rename assets/js/{runtime~main.beac210b.js => runtime~main.e360d988.js} (98%) diff --git a/2022/index.html b/2022/index.html index a9c812cc03c..fce6980c345 100644 --- a/2022/index.html +++ b/2022/index.html @@ -21,15 +21,15 @@ - - + +
Skip to main content

Logo
Open Source Highlights

Trends and Insights from GitHub 2022

We analyzed more than 5,000,000,000 rows of GitHub event data and got the results here. In this report, you'll get interesting findings about open source software on GitHub in 2022, including:

Top languages in the open source world over the past four years

This chart ranks programming languages ​​yearly from 2019 to 2022 based on the ratio of new repositories using these languages to all new repositories.

Insightslogo

Python surpassed Java and moved to #3 in 2021.TypeScript rose from #10 to #6, and SCSS rose from #39 to #19. The rise of SCSS shows that open source projects that value front-end expressiveness are gradually gaining popularity.The two languages Ruby and R dropped a lot in ranking over the years.
Additional Notes

Rankings of back-end programming languages

The programming languages used in a pull request reflect which languages developers used. To find out the most popular back-end programming languages, we queried the distribution of programming languages by new pull requests from 2019 to 2022 and took the top 10 for each year.

Insightslogo

Python and Java rank #1 and #2 respectively. In 2021, Go overtook Ruby to rank #3 in 2021.Rust has been trending upward for several years, ranking #9 in 2022.

Geographic distribution of developer behavior

We queried the number of various events that occurred throughout the world from January 1 to September 30, 2022 and identified the top 10 countries by the number of events triggered by developers in these countries. The chart displays the proportion of each event type by country or region.

Insightslogo

The events triggered in the top 10 countries account for about 23.27% of all GitHub events. However, the number of developers from these countries is only 10%.
πŸ‡ΊπŸ‡Έ US developers are most likely to review code, with a PullRequestReviewEvent share of 6.15%.
πŸ‡¨πŸ‡³ Chinese developers like to star repositories, with 17.23% for WatchEvent and 2.7% for ForkEvent.
πŸ‡©πŸ‡ͺ German developers like to open issues and comments, with IssueEvent and CommentEvent accounting for 4.18% and 12.66% respectively.
πŸ‡°πŸ‡· Korean developers prefer pushing directly to repositories (PushEvent).
πŸ‡―πŸ‡΅ Japanese developers are most likely to submit code via pull requests, with a PullRequestEvent share of 10%.

Developer behavior distribution on weekdays and weekends

We queried the distribution of each event type over the seven days of the week.

The distribution of specific events

Insightslogo

Pull Request Event, Pull Request Review Event, and Issues Event all have the highest percentage on Tuesdays, while the lowest percentage is on the weekends.The amount of Push Event, Watch Event, and Fork Event activities are similar on weekdays and weekends, while the Pull Request Review Event is the most different. Watch Event and Fork Event are more personal behaviors, Pull Request Review Events are more work behaviors, and Push Events are used more in personal projects.

The most active repositories over the past four years

Here we looked up the top 20 active repositories per year from 2019 to 2022 and counted the total number of listings per repository. The activity of the repository is ranked according to the number of developers participating in collaborative events.

Who gave the most stars in 2022

We queried the developers who gave the most stars in 2022, took the top 20, and filtered out accounts of suspected bots. If a developer's number of star events divided by the number of starred repositories is equal to or greater than 2, we suspect this user to be a bot.

  • 1
    136 stars
    per day
  • 2
    133 stars
    per day
  • 3
    76 stars
    per day

The most active developers since 2011

We queried the top 20 most active developers per year since 2011. This time we didn't filter out bot events.

95%logo

We found that the percentage of bots is becoming larger and larger. Bots started to overtake humans in 2013 and have reached over 95% in 2022.
Appendix

Term Description

About GitHub events

GitHub events are triggered by user actions, like starring a repository or pushing code.

About time range

In this report, the data collection range of 2022 is from January 1, 2022 to September 30, 2022. When comparing data of 2022 with another year, we use year-on-year analysis.

About bot events

Bot-triggered events account for a growing percentage of GitHub events. However, these events are not the focus of this report. We filtered out most of the bot-initiated events by matching regular expressions.

How we classify technical fields by topics

We do exact matching and fuzzy matching based on the repository topic. Exact matching means that the repository topics have a topic that exactly matches the word, and fuzzy matching means that the repository topics have a topic that contains the word.

TopicExact matchingFuzzy matching
GitHub Actionsactionsgithub-action, gh-action
Low Codelow-code, lowcode, nocode, no-code
Web3web3
Databasedbdatabase, databases nosql, newsql, sql mongodb,neo4j
AIai, aiops, aiotartificial-intelligence, machine-intelligence computer-vision, image-processing, opencv, computervision, imageprocessing voice-recognition, speech-recognition, voicerecognition, speechrecognition, speech-processing machinelearning, machine-learning deeplearning, deep-learning transferlearning, transfer-learning mlops text-to-speech, tts, speech-synthesis, voice-synthesis robot, robotics sentiment-analysis natural-language-processing, nlp language-model, text-classification, question-answering, knowledge-graph, knowledge-base gan, gans, generative-adversarial-network, generative-adversarial-networks neural-network, neuralnetwork, neuralnetworks, neural-network, dnn tensorflow PyTorch huggingface transformers seq2seq, sequence-to-sequence data-analysis, data-science object-detection, objectdetection data-augmentation classification action-recognition
- - + + \ No newline at end of file diff --git a/404.html b/404.html index 111de350bed..91acf63e7f0 100644 --- a/404.html +++ b/404.html @@ -21,13 +21,13 @@ - - + +
Skip to main content

Loading... Β 

- - + + \ No newline at end of file diff --git a/analyze-company/index.html b/analyze-company/index.html index 9f62aac6fdc..8a82cf82825 100644 --- a/analyze-company/index.html +++ b/analyze-company/index.html @@ -21,13 +21,13 @@ - - + +
Skip to main content

πŸ›οΈ Company Analytics [Beta]

Contribution analytics of developers within the same company

​

Hints: Only the statistics of the members who have the data of [company name] was recorded and the result may include all events in both previous/current company. Contributions include pushes, pull requests, pull request reviews, pull request review comments, issues and issue comments.

Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/analyze/:login/index.html b/analyze/:login/index.html index a149bfaa566..9915aee41af 100644 --- a/analyze/:login/index.html +++ b/analyze/:login/index.html @@ -21,13 +21,13 @@ - - + +
Skip to main content

Overview

All results are calculated only by developer's public activities showed on GitHub. See details in gharchive!

Starred Repos Star Earned
Contributed to Issues
Pull Requests Code Reviews
PR Code Changes

Behaviour

You can see the total contributions in different repositories since 2011, as well as check the status of different contribution categories type by type.

Contribution time distribution for all (UTC +0)SunMonTueWedThuFriSat01234567891011121314151617181920212223lessmore

Star

The total number of starred repositories since 2011, which ignores developers' unstarring or restarring behavior.

Code

All contributions measured with code related events since 2011. For example, the history of code submits which includes the pushes and commits, the pull request history which includes merged / un-merged pull requests, the size of pull requests and the code line changes in pull requests.

Code Review

The history about the number of code review times and comments in pull requests since 2011.

Issue

The history about the total number of issues and issue comments since 2011.

Contribution Activities

All personal activities happened on all public repositories in GitHub since 2011. You can check each specific activity type by type with a timeline.

Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/analyze/:owner/:repo/index.html b/analyze/:owner/:repo/index.html index 14718affa1c..20a6ec175f8 100644 --- a/analyze/:owner/:repo/index.html +++ b/analyze/:owner/:repo/index.html @@ -21,13 +21,13 @@ - - + +
- - + + \ No newline at end of file diff --git a/analyze/facebook/react/index.html b/analyze/facebook/react/index.html index 5de2f04ba88..79f90d02eb2 100644 --- a/analyze/facebook/react/index.html +++ b/analyze/facebook/react/index.html @@ -21,13 +21,13 @@ - - + +
- - + + \ No newline at end of file diff --git a/analyze/pingcap/tidb/index.html b/analyze/pingcap/tidb/index.html index ca3173bc831..d5ce51e5e8e 100644 --- a/analyze/pingcap/tidb/index.html +++ b/analyze/pingcap/tidb/index.html @@ -21,13 +21,13 @@ - - + +
- - + + \ No newline at end of file diff --git a/analyze/tikv/tikv/index.html b/analyze/tikv/tikv/index.html index fe519a94a24..b6cb854d3e4 100644 --- a/analyze/tikv/tikv/index.html +++ b/analyze/tikv/tikv/index.html @@ -21,13 +21,13 @@ - - + +
- - + + \ No newline at end of file diff --git a/assets/js/5c767621.b96710a4.js b/assets/js/5c767621.ae9ff2ab.js similarity index 76% rename from assets/js/5c767621.b96710a4.js rename to assets/js/5c767621.ae9ff2ab.js index fc97b30a157..24d03a9e539 100644 --- a/assets/js/5c767621.b96710a4.js +++ b/assets/js/5c767621.ae9ff2ab.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunkweb=self.webpackChunkweb||[]).push([[9204],{11194:(e,t,n)=>{n.r(t),n.d(t,{default:()=>$n});var r={};n.r(r),n.d(r,{avatar:()=>tt,backgroundColor:()=>it,bio:()=>rt,color:()=>lt,content:()=>et,label:()=>ot,name:()=>nt});var o={};n.r(o),n.d(o,{avatar:()=>ct,backgroundColor:()=>mt,bio:()=>dt,color:()=>pt,content:()=>st,label:()=>ut,name:()=>Lt});var i={};n.r(i),n.d(i,{avatar:()=>kt,backgroundColor:()=>wt,bio:()=>gt,color:()=>vt,content:()=>Ct,label:()=>ft,name:()=>Et});var l={};n.r(l),n.d(l,{avatar:()=>bt,backgroundColor:()=>Vt,bio:()=>Mt,color:()=>Wt,content:()=>xt,label:()=>Zt,name:()=>Ft});var a={};n.r(a),n.d(a,{avatar:()=>Bt,backgroundColor:()=>St,bio:()=>At,color:()=>It,content:()=>Ht,label:()=>Tt,name:()=>jt});var s={};n.r(s),n.d(s,{avatar:()=>Nt,backgroundColor:()=>Qt,bio:()=>Ot,color:()=>Jt,content:()=>Rt,label:()=>Xt,name:()=>zt});var c={};n.r(c),n.d(c,{avatar:()=>Ut,backgroundColor:()=>_t,bio:()=>$t,color:()=>en,content:()=>Gt,label:()=>qt,name:()=>Kt});var L={};n.r(L),n.d(L,{avatar:()=>rn,backgroundColor:()=>sn,bio:()=>ln,color:()=>cn,content:()=>nn,label:()=>an,name:()=>on});var d={};n.r(d),n.d(d,{avatar:()=>un,backgroundColor:()=>Cn,bio:()=>pn,color:()=>kn,content:()=>dn,label:()=>hn,name:()=>mn});var u=n(64392),m=n(11057),p=n(5616),h=n(94054),C=n(50480),k=n(40476),E=n(36872),g=n(91050),f=n(88078),w=n(90948),v=n(84191),y=n(87462),x=n(52263),b=n(67294);function F(e){let{children:t,trial:n=!0,mt:r=8,...o}=e;const{siteConfig:{customFields:i}}=(0,x.Z)();return b.createElement(m.Z,(0,y.Z)({sx:{mt:r,px:8,"&:hover":{color:"#1C1E21"}},color:"primary",variant:"outlined"},o,{component:"a",href:`https://${null==i?void 0:i.tidbcloud_host}`+(n?"/free-trial/":"/")+"?utm_source=ossinsight&utm_medium=referral&utm_campaign=plg_OSScontribution_credit_05",target:"_blank"}),t)}var M=n(90031),Z=n(47135),V=n(4224),W=n(1969),D=n(68258),H=n(8100);function B(){const[e,t]=(0,b.useState)(!1),{getAccessTokenSilently:n}=(0,M.g)(),{gtagEvent:r}=(0,V.u)(),{data:o,mutate:i}=(0,H.ZP)("/api/v1/serverless-credits-campaign/credits/check",(async e=>await v.yu.get(e,{withCredentials:!0,headers:{Authorization:`Bearer ${await n({connection:"github"})}`}}).then((e=>((e={...e}).credits=K(e.credits),e))))),{data:l}=(0,H.ZP)("/api/v1/serverless-credits-campaign/tenants",(async e=>await v.yu.get(e,{withCredentials:!0,headers:{Authorization:`Bearer ${await n({connection:"github"})}`}}))),a=async e=>{r("github_campaign_claim",{}),await v.yu.post("/api/v1/serverless-credits-campaign/credits/claim",{selectedTenantId:e},{headers:{Authorization:`Bearer ${await n({connection:"github"})}`}}).then((()=>{t(!0)})).finally((()=>{i()}))};let s;return s=o&&l?o.isClaimed?e?b.createElement(A,{check:o}):b.createElement(T,{check:o}):o.isEligible?0===l.length?b.createElement(P,{check:o}):b.createElement(R,{check:o,onClaim:a,tenants:l}):0===l.length?b.createElement(I,null):b.createElement(S,{tenants:l}):b.createElement(j,null),b.createElement(z,null,s)}function j(){return b.createElement(b.Fragment,null,b.createElement(f.Z,{variant:"circular",width:117,height:117}),b.createElement(p.Z,{mt:4,maxWidth:"400px",width:"100%",display:"flex",flexDirection:"column",gap:2,alignItems:"center"},b.createElement(f.Z,{sx:{display:"block"},variant:"rounded",width:"50%"}),b.createElement(f.Z,{sx:{display:"block"},variant:"rounded",width:"70%"}),b.createElement(f.Z,{sx:{display:"block"},variant:"rounded",width:"60%"})))}function A(e){let{check:t}=e;const{user:n}=(0,M.g)();return b.createElement(b.Fragment,null,G,b.createElement(O,null,"Hi ",b.createElement("em",null,(null==n?void 0:n.nickname)??(null==n?void 0:n.name)),b.createElement("br",null),"Successfully claimed ",b.createElement("strong",null,t.credits," in TiDB Serverless")," credits, you can go to",b.createElement("br",null),"TiDB Cloud to check it out and use it."),b.createElement(p.Z,{sx:{position:"relative",width:"max-content",maxWidth:"100%",mt:8,display:"flex",gap:2,px:2,alignItems:"center",flexWrap:"wrap"}},b.createElement(N,null),b.createElement(F,{variant:"contained",mt:0},"Start Building with TiDB Cloud!")))}function T(e){let{check:t}=e;const{user:n}=(0,M.g)();return b.createElement(b.Fragment,null,G,b.createElement(O,null,"Hi ",b.createElement("em",null,(null==n?void 0:n.nickname)??(null==n?void 0:n.name)),b.createElement("br",null),"Thanks for being an open-source hero and claiming ",b.createElement("strong",null,t.credits," in TiDB Serverless")," credits for your contributions to the open-source community.",b.createElement("br",null),"We are proud of you! Share this great news with friends and start building something amazing together."),b.createElement(p.Z,{sx:{position:"relative",width:"max-content",maxWidth:"100%",mt:8,display:"flex",gap:2,px:2,alignItems:"center",flexWrap:"wrap"}},b.createElement(N,null),b.createElement(F,{variant:"contained",mt:0},"Start Building with TiDB Cloud!")))}function S(e){let{tenants:t}=e;const{user:n}=(0,M.g)();return b.createElement(b.Fragment,null,Y,b.createElement(O,null,"Hi ",b.createElement("em",null,(null==n?void 0:n.nickname)??(null==n?void 0:n.name)),b.createElement("br",null),"Thanks for being an open-source hero! As a token of our appreciation, you have 25GB of free storage and 250 million reads available on TiDB Serverless.",b.createElement("br",null),"Share this great news with your friends and start building something amazing together."),b.createElement(p.Z,{sx:{position:"relative",width:"max-content",maxWidth:"100%",mt:8,display:"flex",gap:2,px:2,alignItems:"center",flexWrap:"wrap"}},b.createElement(N,null),b.createElement(F,{mt:0,variant:"contained"},"Login to TiDB Cloud")))}function I(){const{user:e}=(0,M.g)();return b.createElement(b.Fragment,null,Y,b.createElement(O,null,"Hi ",b.createElement("em",null,(null==e?void 0:e.nickname)??(null==e?void 0:e.name)),b.createElement("br",null),"Want to try TiDB Serverless for free?",b.createElement("br",null),"Create a new TiDB Cloud account and enjoy 25GB of free storage to start building your applications."),b.createElement(p.Z,{sx:{position:"relative",width:"max-content",maxWidth:"100%",mt:8,display:"flex",gap:2,px:2,alignItems:"center",flexWrap:"wrap"}},b.createElement(F,{mt:0,variant:"contained"},"Create TiDB Cloud Account"),b.createElement(N,null)))}function P(e){let{check:t}=e;const{user:n}=(0,M.g)();return b.createElement(b.Fragment,null,J,b.createElement(O,null,"Hi ",b.createElement("em",null,(null==n?void 0:n.nickname)??(null==n?void 0:n.name)),b.createElement("br",null),"Awesome! You're eligible for ",b.createElement("strong",null,t.credits," in TiDB Serverless")," credits for your contributions to the open-source community.",b.createElement("br",null),"Create a new TiDB Cloud account and your credits will be waiting for you."),b.createElement(F,{variant:"contained",sx:{background:"white",mt:8,"&:hover":{background:"rgba(255,255,255,0.8)",color:"black"}}},"Sign up to TiDB Cloud"),b.createElement(m.Z,{sx:{mt:4,px:8},color:"primary",variant:"contained",disabled:!0},"Claim Credits"))}function R(e){let{tenants:t,check:n,onClaim:r}=e;const{user:o}=(0,M.g)(),[i,l]=(0,b.useState)(""),[a,s]=(0,b.useState)(!1),[,c]=(0,b.useState)();(0,b.useEffect)((()=>{t.length>0?l(t[0].id):l("")}),[t]);return b.createElement(b.Fragment,null,J,b.createElement(O,null,"Hi ",b.createElement("em",null,(null==o?void 0:o.nickname)??(null==o?void 0:o.name)),b.createElement("br",null),"Congratulations! You're eligible for ",b.createElement("strong",null,n.credits," in TiDB Serverless")," credits for your contributions to the open-source community.",b.createElement("br",null),"Please select your existing TiDB Cloud account to apply these credits."),b.createElement(h.Z,{sx:{mt:8},disabled:a},b.createElement(k.Z,{sx:{fontSize:18}},"Select your TiDB Cloud account to claim the credits"),b.createElement(g.Z,{sx:{mt:4},value:i,onChange:(e,t)=>l(t)},t.map((e=>b.createElement(C.Z,{key:e.id,sx:{"&:not(:first-of-type)":{mt:2},marginLeft:"unset",marginRight:"unset",background:"white",borderRadius:1,color:"black",py:1},value:e.id,label:b.createElement(b.Fragment,null,b.createElement(X,null,e.name),b.createElement(Q,null,e.email)),control:b.createElement(E.Z,{sx:{color:"black","&.Mui-checked":{color:"black"}}})}))))),b.createElement(m.Z,{sx:{mt:8,px:8},color:"primary",variant:"contained",disabled:a||!i,onClick:()=>{i&&(s(!0),r(i).catch((e=>{alert((0,Z.e$)(e)),c(e)})).finally((()=>{s(!1)})))}},"Claim Credits"))}function N(e){let t,n,{check:r}=e;return null!=r&&r.isClaimed?(t=`I just claimed ${r.credits} in TiDB Serverless credits for my open-source contributions! Proud to be an open-source hero. Curious about your own GitHub contributions? See how many free TiDB Serverless credits you can claim: `,n="https://ossinsight.io/open-source-heroes/?utm_source=twitter&utm_medium=social&utm_campaign=plg_OSScontribution_credit_05"):(t="Excited to share that I received 25GB of free storage and 250 million reads on TiDB Serverless for my open-source contributions! Want to know how many free TiDB Serverless credits your GitHub contributions can earn? Check it out: ",n="https://ossinsight.io/open-source-heroes/?utm_source=twitter&utm_medium=social&utm_campaign=plg_OSScontribution_credit_05"),b.createElement(m.Z,{component:"a",sx:{position:[void 0,void 0,"absolute"],left:[void 0,void 0,"100%"],whiteSpace:"nowrap",color:"white !important"},target:"_blank",href:(0,W.PE)(n,{title:t,hashtags:["TiDB","OpenSource","CloudComputing"]})},"Share via ",b.createElement(D.b0,{round:!0,size:24,bgStyle:{fill:"transparent"},iconFillColor:"white"}))}const z=(0,w.ZP)("div")` +"use strict";(self.webpackChunkweb=self.webpackChunkweb||[]).push([[9204],{11194:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Kn});var r={};n.r(r),n.d(r,{avatar:()=>et,backgroundColor:()=>ot,bio:()=>nt,color:()=>it,content:()=>_e,label:()=>rt,name:()=>tt});var o={};n.r(o),n.d(o,{avatar:()=>st,backgroundColor:()=>ut,bio:()=>Lt,color:()=>mt,content:()=>at,label:()=>dt,name:()=>ct});var i={};n.r(i),n.d(i,{avatar:()=>Ct,backgroundColor:()=>ft,bio:()=>Et,color:()=>wt,content:()=>ht,label:()=>gt,name:()=>kt});var l={};n.r(l),n.d(l,{avatar:()=>xt,backgroundColor:()=>Zt,bio:()=>Ft,color:()=>Vt,content:()=>yt,label:()=>Mt,name:()=>bt});var a={};n.r(a),n.d(a,{avatar:()=>Ht,backgroundColor:()=>Tt,bio:()=>jt,color:()=>St,content:()=>Dt,label:()=>At,name:()=>Bt});var s={};n.r(s),n.d(s,{avatar:()=>Rt,backgroundColor:()=>Xt,bio:()=>zt,color:()=>Qt,content:()=>Pt,label:()=>Ot,name:()=>Nt});var c={};n.r(c),n.d(c,{avatar:()=>Gt,backgroundColor:()=>qt,bio:()=>Kt,color:()=>_t,content:()=>Yt,label:()=>$t,name:()=>Ut});var L={};n.r(L),n.d(L,{avatar:()=>nn,backgroundColor:()=>an,bio:()=>on,color:()=>sn,content:()=>tn,label:()=>ln,name:()=>rn});var d={};n.r(d),n.d(d,{avatar:()=>dn,backgroundColor:()=>hn,bio:()=>mn,color:()=>Cn,content:()=>Ln,label:()=>pn,name:()=>un});var u=n(64392),m=n(11057),p=n(5616),h=n(94054),C=n(50480),k=n(40476),E=n(36872),g=n(91050),f=n(88078),w=n(90948),v=n(84191),y=n(87462),x=n(52263),b=n(67294);function F(e){let{children:t,trial:n=!0,mt:r,...o}=e;const{siteConfig:{customFields:i}}=(0,x.Z)();return b.createElement(m.Z,(0,y.Z)({sx:{mt:r,px:8,textDecoration:"underline","&:hover":"text"!==o.variant?{color:"#1C1E21"}:{}},color:"primary",variant:"outlined"},o,{component:"a",href:`https://${null==i?void 0:i.tidbcloud_host}`+(n?"/free-trial/":"/")+"?utm_source=ossinsight&utm_medium=referral&utm_campaign=plg_OSScontribution_credit_05",target:"_blank"}),t)}var M=n(90031),Z=n(47135),V=n(4224),W=n(1969),D=n(8100);function H(){const[e,t]=(0,b.useState)(!1),{getAccessTokenSilently:n}=(0,M.g)(),{gtagEvent:r}=(0,V.u)(),{data:o,mutate:i}=(0,D.ZP)("/api/v1/serverless-credits-campaign/credits/check",(async e=>await v.yu.get(e,{withCredentials:!0,headers:{Authorization:`Bearer ${await n({connection:"github"})}`}}).then((e=>((e={...e}).credits=U(e.credits),e))))),{data:l}=(0,D.ZP)("/api/v1/serverless-credits-campaign/tenants",(async e=>await v.yu.get(e,{withCredentials:!0,headers:{Authorization:`Bearer ${await n({connection:"github"})}`}}))),a=async e=>{r("github_campaign_claim",{}),await v.yu.post("/api/v1/serverless-credits-campaign/credits/claim",{selectedTenantId:e},{headers:{Authorization:`Bearer ${await n({connection:"github"})}`}}).then((()=>{t(!0)})).finally((()=>{i()}))};let s;return s=o&&l?o.isClaimed?e?b.createElement(j,{check:o}):b.createElement(A,{check:o}):o.isEligible?0===l.length?b.createElement(I,{check:o}):b.createElement(P,{check:o,onClaim:a,tenants:l}):0===l.length?b.createElement(S,null):b.createElement(T,{tenants:l}):b.createElement(B,null),b.createElement(N,null,s)}function B(){return b.createElement(b.Fragment,null,b.createElement(f.Z,{variant:"circular",width:117,height:117}),b.createElement(p.Z,{mt:4,maxWidth:"400px",width:"100%",display:"flex",flexDirection:"column",gap:2,alignItems:"center"},b.createElement(f.Z,{sx:{display:"block"},variant:"rounded",width:"50%"}),b.createElement(f.Z,{sx:{display:"block"},variant:"rounded",width:"70%"}),b.createElement(f.Z,{sx:{display:"block"},variant:"rounded",width:"60%"})))}function j(e){let{check:t}=e;const{user:n}=(0,M.g)();return b.createElement(b.Fragment,null,Y,b.createElement(z,null,"Hi ",b.createElement("em",null,(null==n?void 0:n.nickname)??(null==n?void 0:n.name)),b.createElement("br",null),"Successfully claimed ",b.createElement("strong",null,t.credits," in TiDB Serverless")," credits, you can go to",b.createElement("br",null),"TiDB Cloud to check it out and use it."),b.createElement(p.Z,{sx:{position:"relative",width:"max-content",maxWidth:"100%",mt:8,display:"flex",flexDirection:"column",gap:2,px:2,alignItems:"center"}},b.createElement(R,null),b.createElement(F,{variant:"text"},"Start Building with TiDB Cloud!")))}function A(e){let{check:t}=e;const{user:n}=(0,M.g)();return b.createElement(b.Fragment,null,Y,b.createElement(z,null,"Hi ",b.createElement("em",null,(null==n?void 0:n.nickname)??(null==n?void 0:n.name)),b.createElement("br",null),"Thanks for being an open-source hero and claiming ",b.createElement("strong",null,t.credits," in TiDB Serverless")," credits for your contributions.",b.createElement("br",null),"We are proud of you! Share this great news with friends and start building something amazing."),b.createElement(p.Z,{sx:{position:"relative",width:"max-content",maxWidth:"100%",mt:8,display:"flex",flexDirection:"column",gap:2,px:2,alignItems:"center"}},b.createElement(R,null),b.createElement(F,{variant:"text"},"Start Building with TiDB Cloud!")))}function T(e){let{tenants:t}=e;const{user:n}=(0,M.g)();return b.createElement(b.Fragment,null,J,b.createElement(z,null,"Hi ",b.createElement("em",null,(null==n?void 0:n.nickname)??(null==n?void 0:n.name)),b.createElement("br",null),"Thanks for being an open-source hero! As a token of our appreciation, you have 25GB of free storage and 250 million reads available on TiDB Serverless.",b.createElement("br",null),"Share this great news with your friends and start building something amazing."),b.createElement(p.Z,{sx:{position:"relative",width:"max-content",maxWidth:"100%",mt:8,display:"flex",flexDirection:"column",gap:2,px:2,alignItems:"center"}},b.createElement(R,null),b.createElement(F,{variant:"text"},"Login to TiDB Cloud")))}function S(){const{user:e}=(0,M.g)();return b.createElement(b.Fragment,null,J,b.createElement(z,null,"Hi ",b.createElement("em",null,(null==e?void 0:e.nickname)??(null==e?void 0:e.name)),b.createElement("br",null),"Want to try TiDB Serverless for free?",b.createElement("br",null),"Create a new TiDB Cloud account and enjoy 25GB of free storage to start building your applications."),b.createElement(p.Z,{sx:{position:"relative",width:"max-content",maxWidth:"100%",mt:8,display:"flex",gap:2,px:2,flexDirection:"column",alignItems:"center"}},b.createElement(R,null),b.createElement(F,{variant:"text"},"Create TiDB Cloud Account")))}function I(e){let{check:t}=e;const{user:n}=(0,M.g)();return b.createElement(b.Fragment,null,Q,b.createElement(z,null,"Hi ",b.createElement("em",null,(null==n?void 0:n.nickname)??(null==n?void 0:n.name)),b.createElement("br",null),"Awesome! You're eligible for ",b.createElement("strong",null,t.credits," in TiDB Serverless")," credits for your contributions to the open-source community.",b.createElement("br",null),"Create a new TiDB Cloud account and your credits will be waiting for you."),b.createElement(F,{variant:"contained",sx:{background:"white",mt:8,"&:hover":{background:"rgba(255,255,255,0.8)",color:"black"}}},"Sign up to TiDB Cloud"),b.createElement(m.Z,{sx:{mt:4,px:8},color:"primary",variant:"contained",disabled:!0},"Claim Credits"))}function P(e){let{tenants:t,check:n,onClaim:r}=e;const{user:o}=(0,M.g)(),[i,l]=(0,b.useState)(""),[a,s]=(0,b.useState)(!1),[,c]=(0,b.useState)();(0,b.useEffect)((()=>{t.length>0?l(t[0].id):l("")}),[t]);return b.createElement(b.Fragment,null,Q,b.createElement(z,null,"Hi ",b.createElement("em",null,(null==o?void 0:o.nickname)??(null==o?void 0:o.name)),b.createElement("br",null),"Congratulations! You're eligible for ",b.createElement("strong",null,n.credits," in TiDB Serverless")," credits for your contributions to the open-source community.",b.createElement("br",null),"Please select your existing TiDB Cloud account to apply these credits."),b.createElement(h.Z,{sx:{mt:8},disabled:a},b.createElement(k.Z,{sx:{fontSize:18}},"Select your TiDB Cloud account to claim the credits"),b.createElement(g.Z,{sx:{mt:4},value:i,onChange:(e,t)=>l(t)},t.map((e=>b.createElement(C.Z,{key:e.id,sx:{"&:not(:first-of-type)":{mt:2},marginLeft:"unset",marginRight:"unset",background:"white",borderRadius:1,color:"black",py:1},value:e.id,label:b.createElement(b.Fragment,null,b.createElement(O,null,e.name),b.createElement(X,null,e.email)),control:b.createElement(E.Z,{sx:{color:"black","&.Mui-checked":{color:"black"}}})}))))),b.createElement(m.Z,{sx:{mt:8,px:8},color:"primary",variant:"contained",disabled:a||!i,onClick:()=>{i&&(s(!0),r(i).catch((e=>{alert((0,Z.e$)(e)),c(e)})).finally((()=>{s(!1)})))}},"Claim Credits"))}function R(e){let t,n,{check:r}=e;return null!=r&&r.isClaimed?(t=`I just claimed ${r.credits} in TiDB Serverless credits for my open-source contributions! Proud to be an open-source hero. Curious about your own GitHub contributions? See how many free TiDB Serverless credits you can claim: `,n="https://ossinsight.io/open-source-heroes/?utm_source=twitter&utm_medium=social&utm_campaign=plg_OSScontribution_credit_05"):(t="Excited to share that I received 25GB of free storage and 250 million reads on TiDB Serverless for my open-source contributions! Want to know how many free TiDB Serverless credits your GitHub contributions can earn? Check it out: ",n="https://ossinsight.io/open-source-heroes/?utm_source=twitter&utm_medium=social&utm_campaign=plg_OSScontribution_credit_05"),b.createElement(m.Z,{component:"a",target:"_blank",color:"primary",variant:"contained",href:(0,W.PE)(n,{title:t,hashtags:["TiDB","OpenSource","CloudComputing"]})},"Share via X")}const N=(0,w.ZP)("div")` background: #212122; min-height: calc(100vh - 60px); display: flex; @@ -6,7 +6,7 @@ align-items: center; justify-content: center; gap: 24; -`,O=(0,w.ZP)("div")` +`,z=(0,w.ZP)("div")` text-align: center; font-size: 36px; font-weight: 400; @@ -23,27 +23,27 @@ color: #73D9B4; font-style: normal; } -`,X=(0,w.ZP)("div")` +`,O=(0,w.ZP)("div")` -`,Q=(0,w.ZP)("div")` +`,X=(0,w.ZP)("div")` color: ${e=>{let{theme:t}=e;return t.palette.grey[500]}}; font-size: 12px; -`,J=b.createElement("svg",{style:{display:"block",margin:"0 auto"},width:"117",height:"117",viewBox:"0 0 117 117",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"58.5",cy:"58.5",r:"58.5",fill:"#EEC73B"}),b.createElement("path",{d:"M51.1671 26.5293L45.4849 37.9682C45.1446 38.6605 44.4873 39.1352 43.7136 39.2464L31.0114 41.0826C24.3061 42.0505 21.6234 50.2407 26.4782 54.939L35.6704 63.8331C36.2251 64.3727 36.4768 65.1461 36.3463 65.8986L34.1741 78.4768C33.0368 85.1179 40.0404 90.1751 46.0396 87.0398L57.4016 81.1119C57.7394 80.9355 58.1154 80.8433 58.497 80.8433C58.8787 80.8433 59.2546 80.9355 59.5924 81.1119L70.9521 87.0491C76.9536 90.182 83.9666 85.1202 82.8199 78.4838L80.6477 65.9102C80.5149 65.1484 80.7666 64.3819 81.3236 63.8401L90.5228 54.9367C95.3753 50.2407 92.695 42.0505 85.9896 41.0826L73.2828 39.2464C72.9051 39.191 72.5466 39.0453 72.2381 38.8218C71.9295 38.5984 71.6802 38.3039 71.5115 37.9636L65.834 26.5293C62.8274 20.4902 54.1736 20.4902 51.1671 26.5293ZM60.6086 29.0949L66.2908 40.5292C66.8776 41.7092 67.7438 42.7302 68.8151 43.5046C69.8864 44.2789 71.1307 44.7835 72.4414 44.9751L85.1506 46.8114C85.5845 46.8736 85.9922 47.0553 86.3276 47.3357C86.6631 47.6162 86.9128 47.9844 87.0486 48.3985C87.1844 48.8127 87.2008 49.2563 87.0961 49.6792C86.9913 50.1022 86.7695 50.4876 86.4558 50.7918L77.2566 59.6952C76.3059 60.6149 75.595 61.7508 75.1853 63.0048C74.7755 64.2587 74.6793 65.5929 74.905 66.892L77.0771 79.4656C77.1505 79.895 77.1015 80.3362 76.9358 80.7394C76.7701 81.1426 76.4943 81.4918 76.1395 81.7475C75.7846 82.0032 75.3649 82.1553 74.9277 82.1866C74.4905 82.218 74.0531 82.1272 73.665 81.9247L62.303 75.9853C61.1295 75.3727 59.8238 75.0527 58.4982 75.0527C57.1726 75.0527 55.8669 75.3727 54.6934 75.9853L43.329 81.9178C42.9403 82.1199 42.5024 82.2102 42.0648 82.1782C41.6272 82.1463 41.2073 81.9935 40.8524 81.737C40.4976 81.4806 40.222 81.1307 40.0567 80.7269C39.8914 80.3231 39.843 79.8814 39.9169 79.4517L42.0891 66.8827C42.3135 65.5843 42.2167 64.2512 41.807 62.9982C41.3973 61.7452 40.6871 60.6101 39.7374 59.6906L30.5453 50.7895C30.2308 50.4854 30.0084 50.0998 29.9033 49.6765C29.7981 49.2532 29.8144 48.8091 29.9502 48.3946C30.0861 47.98 30.3361 47.6115 30.672 47.3309C31.0078 47.0502 31.4161 46.8687 31.8504 46.8067L44.5573 44.9728C45.8713 44.7838 47.119 44.2789 48.192 43.5022C49.2651 42.7254 50.1311 41.7001 50.7149 40.5153L56.3924 29.0926C56.5861 28.7008 56.8865 28.3708 57.2595 28.1401C57.6325 27.9094 58.0631 27.7873 58.5024 27.7875C58.9418 27.7878 59.3722 27.9104 59.7449 28.1415C60.1177 28.3726 60.4177 28.7029 60.6109 29.0949H60.6086Z",fill:"white"})),Y=b.createElement("svg",{width:"117",height:"117",viewBox:"0 0 117 117",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"58.5",cy:"58.5",r:"58.5",fill:"#04CB83"}),b.createElement("path",{d:"M84.0378 48.4149C82.2492 46.0834 79.5263 44.7208 76.576 44.677L68.5364 44.552C69.1388 41.7267 69.3601 39.1889 69.1941 36.9761C68.9974 34.3321 68.2537 32.1193 66.9814 30.4129C66.1147 29.244 65.033 28.3439 63.7729 27.7501C62.4637 27.1313 61.3205 27 60.5891 27C56.1821 27 52.5987 30.3691 52.5987 34.5071C52.5987 41.2329 48.3453 46.7022 43.1085 46.7022H35.6713C33.0959 46.7022 31 48.8337 31 51.4528V77.2495C31 79.8685 33.0959 82 35.6713 82H72.0584C74.2588 82 76.4162 81.2499 78.1372 79.8935C79.8767 78.5246 81.106 76.5869 81.5977 74.4429L85.7588 56.2908C86.3919 53.5343 85.765 50.6652 84.0378 48.4149ZM40.902 77.4932H35.6713C35.5361 77.4932 35.4255 77.3807 35.4255 77.2432V51.4528C35.4255 51.3153 35.5361 51.2028 35.6713 51.2028H40.902V77.4932ZM81.4502 55.2657L77.289 73.4178C77.0247 74.5617 76.367 75.593 75.4328 76.3306C74.4801 77.0807 73.2877 77.4932 72.0645 77.4932H45.3274V50.9902C46.4829 50.7714 47.6016 50.3777 48.6834 49.8151C50.3491 48.9462 51.8304 47.7149 53.1027 46.1459C55.635 43.0143 57.0303 38.8826 57.0303 34.4946C57.0303 32.8382 58.6283 31.488 60.5952 31.488C60.7673 31.488 62.2793 31.5318 63.4533 33.1132C65.2297 35.5072 65.2788 40.1327 63.5885 46.1334C63.398 46.8085 63.5271 47.5336 63.9389 48.0961C64.3507 48.6587 64.9961 48.9962 65.6845 49.0025L76.5207 49.1713C78.1249 49.1963 79.6001 49.9276 80.5651 51.184C81.4625 52.3716 81.7821 53.8218 81.4502 55.2657Z",fill:"white"})),G=b.createElement("svg",{width:"117",height:"117",viewBox:"0 0 117 117",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"58.5",cy:"58.5",r:"58.5",fill:"#E6A1B5"}),b.createElement("path",{d:"M51.7701 82C50.4492 82 49.1335 81.489 48.1258 80.4721L27.5076 59.5827C25.4975 57.5438 25.4975 54.2352 27.5076 52.1963C29.5229 50.1574 32.7861 50.1574 34.7963 52.1963L51.7701 69.3926L84.2037 36.5331C86.2138 34.489 89.477 34.489 91.4924 36.5331C93.5025 38.572 93.5025 41.8754 91.4924 43.9142L55.4145 80.4721C54.4068 81.489 53.0859 82 51.7701 82Z",fill:"white"})),U=new Intl.NumberFormat("en"),K=e=>`$${U.format(parseInt(e))} USD`;var $=n(70917),q=n(27400);const _=(0,w.ZP)("div")` +`,Q=b.createElement("svg",{style:{display:"block",margin:"0 auto"},width:"117",height:"117",viewBox:"0 0 117 117",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"58.5",cy:"58.5",r:"58.5",fill:"#EEC73B"}),b.createElement("path",{d:"M51.1671 26.5293L45.4849 37.9682C45.1446 38.6605 44.4873 39.1352 43.7136 39.2464L31.0114 41.0826C24.3061 42.0505 21.6234 50.2407 26.4782 54.939L35.6704 63.8331C36.2251 64.3727 36.4768 65.1461 36.3463 65.8986L34.1741 78.4768C33.0368 85.1179 40.0404 90.1751 46.0396 87.0398L57.4016 81.1119C57.7394 80.9355 58.1154 80.8433 58.497 80.8433C58.8787 80.8433 59.2546 80.9355 59.5924 81.1119L70.9521 87.0491C76.9536 90.182 83.9666 85.1202 82.8199 78.4838L80.6477 65.9102C80.5149 65.1484 80.7666 64.3819 81.3236 63.8401L90.5228 54.9367C95.3753 50.2407 92.695 42.0505 85.9896 41.0826L73.2828 39.2464C72.9051 39.191 72.5466 39.0453 72.2381 38.8218C71.9295 38.5984 71.6802 38.3039 71.5115 37.9636L65.834 26.5293C62.8274 20.4902 54.1736 20.4902 51.1671 26.5293ZM60.6086 29.0949L66.2908 40.5292C66.8776 41.7092 67.7438 42.7302 68.8151 43.5046C69.8864 44.2789 71.1307 44.7835 72.4414 44.9751L85.1506 46.8114C85.5845 46.8736 85.9922 47.0553 86.3276 47.3357C86.6631 47.6162 86.9128 47.9844 87.0486 48.3985C87.1844 48.8127 87.2008 49.2563 87.0961 49.6792C86.9913 50.1022 86.7695 50.4876 86.4558 50.7918L77.2566 59.6952C76.3059 60.6149 75.595 61.7508 75.1853 63.0048C74.7755 64.2587 74.6793 65.5929 74.905 66.892L77.0771 79.4656C77.1505 79.895 77.1015 80.3362 76.9358 80.7394C76.7701 81.1426 76.4943 81.4918 76.1395 81.7475C75.7846 82.0032 75.3649 82.1553 74.9277 82.1866C74.4905 82.218 74.0531 82.1272 73.665 81.9247L62.303 75.9853C61.1295 75.3727 59.8238 75.0527 58.4982 75.0527C57.1726 75.0527 55.8669 75.3727 54.6934 75.9853L43.329 81.9178C42.9403 82.1199 42.5024 82.2102 42.0648 82.1782C41.6272 82.1463 41.2073 81.9935 40.8524 81.737C40.4976 81.4806 40.222 81.1307 40.0567 80.7269C39.8914 80.3231 39.843 79.8814 39.9169 79.4517L42.0891 66.8827C42.3135 65.5843 42.2167 64.2512 41.807 62.9982C41.3973 61.7452 40.6871 60.6101 39.7374 59.6906L30.5453 50.7895C30.2308 50.4854 30.0084 50.0998 29.9033 49.6765C29.7981 49.2532 29.8144 48.8091 29.9502 48.3946C30.0861 47.98 30.3361 47.6115 30.672 47.3309C31.0078 47.0502 31.4161 46.8687 31.8504 46.8067L44.5573 44.9728C45.8713 44.7838 47.119 44.2789 48.192 43.5022C49.2651 42.7254 50.1311 41.7001 50.7149 40.5153L56.3924 29.0926C56.5861 28.7008 56.8865 28.3708 57.2595 28.1401C57.6325 27.9094 58.0631 27.7873 58.5024 27.7875C58.9418 27.7878 59.3722 27.9104 59.7449 28.1415C60.1177 28.3726 60.4177 28.7029 60.6109 29.0949H60.6086Z",fill:"white"})),J=b.createElement("svg",{width:"117",height:"117",viewBox:"0 0 117 117",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"58.5",cy:"58.5",r:"58.5",fill:"#04CB83"}),b.createElement("path",{d:"M84.0378 48.4149C82.2492 46.0834 79.5263 44.7208 76.576 44.677L68.5364 44.552C69.1388 41.7267 69.3601 39.1889 69.1941 36.9761C68.9974 34.3321 68.2537 32.1193 66.9814 30.4129C66.1147 29.244 65.033 28.3439 63.7729 27.7501C62.4637 27.1313 61.3205 27 60.5891 27C56.1821 27 52.5987 30.3691 52.5987 34.5071C52.5987 41.2329 48.3453 46.7022 43.1085 46.7022H35.6713C33.0959 46.7022 31 48.8337 31 51.4528V77.2495C31 79.8685 33.0959 82 35.6713 82H72.0584C74.2588 82 76.4162 81.2499 78.1372 79.8935C79.8767 78.5246 81.106 76.5869 81.5977 74.4429L85.7588 56.2908C86.3919 53.5343 85.765 50.6652 84.0378 48.4149ZM40.902 77.4932H35.6713C35.5361 77.4932 35.4255 77.3807 35.4255 77.2432V51.4528C35.4255 51.3153 35.5361 51.2028 35.6713 51.2028H40.902V77.4932ZM81.4502 55.2657L77.289 73.4178C77.0247 74.5617 76.367 75.593 75.4328 76.3306C74.4801 77.0807 73.2877 77.4932 72.0645 77.4932H45.3274V50.9902C46.4829 50.7714 47.6016 50.3777 48.6834 49.8151C50.3491 48.9462 51.8304 47.7149 53.1027 46.1459C55.635 43.0143 57.0303 38.8826 57.0303 34.4946C57.0303 32.8382 58.6283 31.488 60.5952 31.488C60.7673 31.488 62.2793 31.5318 63.4533 33.1132C65.2297 35.5072 65.2788 40.1327 63.5885 46.1334C63.398 46.8085 63.5271 47.5336 63.9389 48.0961C64.3507 48.6587 64.9961 48.9962 65.6845 49.0025L76.5207 49.1713C78.1249 49.1963 79.6001 49.9276 80.5651 51.184C81.4625 52.3716 81.7821 53.8218 81.4502 55.2657Z",fill:"white"})),Y=b.createElement("svg",{width:"117",height:"117",viewBox:"0 0 117 117",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"58.5",cy:"58.5",r:"58.5",fill:"#E6A1B5"}),b.createElement("path",{d:"M51.7701 82C50.4492 82 49.1335 81.489 48.1258 80.4721L27.5076 59.5827C25.4975 57.5438 25.4975 54.2352 27.5076 52.1963C29.5229 50.1574 32.7861 50.1574 34.7963 52.1963L51.7701 69.3926L84.2037 36.5331C86.2138 34.489 89.477 34.489 91.4924 36.5331C93.5025 38.572 93.5025 41.8754 91.4924 43.9142L55.4145 80.4721C54.4068 81.489 53.0859 82 51.7701 82Z",fill:"white"})),G=new Intl.NumberFormat("en"),U=e=>`$${G.format(parseInt(e))} USD`;var K=n(70917),$=n(27400);const q=(0,w.ZP)("div")` background-color: #212122; padding: 40px 12px; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` padding: 120px 0; `}}} -`,ee=(0,w.ZP)(q.Z)` +`,_=(0,w.ZP)($.Z)` max-width: 1280px; margin: 0 auto; display: none; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` display: flex; `}}} -`,te=(0,w.ZP)(q.Z)` - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` +`,ee=(0,w.ZP)($.Z)` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` position: relative; &:after { @@ -56,37 +56,37 @@ border-right: 1px solid white; } `}}} -`,ne=(0,w.ZP)(q.Z)` - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` +`,te=(0,w.ZP)($.Z)` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` display: flex; flex-direction: column; max-height: 100%; `}}} -`,re=(0,w.ZP)("span")` +`,ne=(0,w.ZP)("span")` font-weight: 600; line-height: 1; color: white; -`,oe=(0,w.ZP)("h1")` +`,re=(0,w.ZP)("h1")` font-size: 36px; line-height: 1.25; font-weight: 900; text-align: center; color: #FFE895; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` font-size: 54px; text-align: right; `}}} -`,ie=(0,w.ZP)("p")` +`,oe=(0,w.ZP)("p")` color: #7C7C7C; font-size: 16px; line-height: 24px; text-align: left; margin-bottom: 0; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` text-align: right; `}}} -`,le=(0,w.ZP)("div")` +`,ie=(0,w.ZP)("div")` display: flex; align-items: center; gap: 12px; @@ -94,22 +94,22 @@ width: 100%; justify-content: center; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` justify-content: start; `}}} -`,ae=(0,w.ZP)("div")` +`,le=(0,w.ZP)("div")` font-size: 18px; line-height: 28px; margin-top: 24px; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` margin-top: 80px; `}}} -`,se=(0,w.ZP)("span")` - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` +`,ae=(0,w.ZP)("span")` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` flex: 1; `}}} -`,ce=(0,w.ZP)("div")` - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` +`,se=(0,w.ZP)("div")` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` display: none; `}}} h1 { @@ -136,18 +136,18 @@ font-weight: 400; color: #FFFFFF; } -`;function Le(){const{user:e,isLoading:t,login:n}=(0,M.g)(),[r,o]=(0,b.useState)(!1),{gtagEvent:i}=(0,V.u)();return r?b.createElement(B,null):b.createElement(de,{loading:t,onClickAction:()=>{i("github_campaign_action",{}),!function(e){if(!e)return!1;return e.startsWith("github|")}(null==e?void 0:e.sub)?n({connection:"github"}).then((()=>{o(!0)})):o(!0)}})}function de(e){let{loading:t,onClickAction:r}=e;return b.createElement(_,null,b.createElement(ee,{container:!0,columnSpacing:8,rowSpacing:0},b.createElement(te,{xs:12,md:7},b.createElement("div",null,b.createElement(oe,null,b.createElement(re,null,"Fuel Your Next Big Idea:"),b.createElement("br",null),"TiDB Serverless Credits for Open Source Heroes"),b.createElement(ie,null,"TiDB loves open-source. We contribute code, sponsor projects and deeply appreciate developers who actively contribute to the community.",b.createElement("br",null),"As a token of our appreciation, we're offering up to $2000 in free TiDB Serverless credits to fuel open-source hero's next big idea."))),b.createElement(ne,{xs:12,md:5},b.createElement(ae,null,"Simply log in with your GitHub account to calculate and claim your credits."),b.createElement(se,null),b.createElement(le,null,b.createElement("img",{alt:"OSSInsight Logo",src:n(4302).Z,height:56}),b.createElement("img",{alt:"TiDB Logo",src:n(86033).Z,height:68})),b.createElement(m.Z,{id:"start-claim-trigger",sx:{width:["100%","100%","max-content"]},disabled:t,color:"primary",variant:"contained",onClick:()=>{r()}},"Claim Your Credits Now",b.createElement(u.Z,{sx:{ml:.5}})))),b.createElement(ce,null,b.createElement("h1",null,b.createElement("span",null,"Free Database Credits")," for Open Source Heroes"),b.createElement("p",null,"TiDB loves open-source. We contribute code, sponsor projects, and appreciate developers who do so.",b.createElement("br",null),"As a token of our appreciation, we're offering up to $2000 free TiDB Serverless credits to fuel open-source hero's next big idea."),b.createElement("p",{className:"action-prompt"},"Log in with GitHub account to claim your credits."),b.createElement(m.Z,{id:"start-claim-trigger-mobile",disabled:t,color:"primary",variant:"contained",onClick:()=>{r()}},"Claim Now",b.createElement(u.Z,{sx:{ml:.5}}))))}const ue=(0,w.ZP)("section")` +`;function ce(){const{user:e,isLoading:t,login:n}=(0,M.g)(),[r,o]=(0,b.useState)(!1),{gtagEvent:i}=(0,V.u)();return r?b.createElement(H,null):b.createElement(Le,{loading:t,onClickAction:()=>{i("github_campaign_action",{}),!function(e){if(!e)return!1;return e.startsWith("github|")}(null==e?void 0:e.sub)?n({connection:"github"}).then((()=>{o(!0)})):o(!0)}})}function Le(e){let{loading:t,onClickAction:r}=e;return b.createElement(q,null,b.createElement(_,{container:!0,columnSpacing:8,rowSpacing:0},b.createElement(ee,{xs:12,md:7},b.createElement("div",null,b.createElement(re,null,b.createElement(ne,null,"Fuel Your Next Big Idea:"),b.createElement("br",null),"TiDB Serverless Credits for Open Source Heroes"),b.createElement(oe,null,"TiDB loves open-source. We contribute code, sponsor projects and deeply appreciate developers who actively contribute to the community.",b.createElement("br",null),"As a token of our appreciation, we're offering up to $2000 in free TiDB Serverless credits to fuel open-source hero's next big idea."))),b.createElement(te,{xs:12,md:5},b.createElement(le,null,"Simply log in with your GitHub account to calculate and claim your credits."),b.createElement(ae,null),b.createElement(ie,null,b.createElement("img",{alt:"OSSInsight Logo",src:n(4302).Z,height:56}),b.createElement("img",{alt:"TiDB Logo",src:n(86033).Z,height:68})),b.createElement(m.Z,{id:"start-claim-trigger",sx:{width:["100%","100%","max-content"]},disabled:t,color:"primary",variant:"contained",onClick:()=>{r()}},"Claim Your Credits Now",b.createElement(u.Z,{sx:{ml:.5}})))),b.createElement(se,null,b.createElement("h1",null,b.createElement("span",null,"Free Database Credits")," for Open Source Heroes"),b.createElement("p",null,"TiDB loves open-source. We contribute code, sponsor projects, and appreciate developers who do so.",b.createElement("br",null),"As a token of our appreciation, we're offering up to $2000 free TiDB Serverless credits to fuel open-source hero's next big idea."),b.createElement("p",{className:"action-prompt"},"Log in with GitHub account to claim your credits."),b.createElement(m.Z,{id:"start-claim-trigger-mobile",disabled:t,color:"primary",variant:"contained",onClick:()=>{r()}},"Claim Now",b.createElement(u.Z,{sx:{ml:.5}}))))}const de=(0,w.ZP)("section")` background-color: ${e=>{let{dark:t}=e;return t?"#141414":"#212122"}}; padding: 120px 12px; -`,me=(0,w.ZP)("div")` +`,ue=(0,w.ZP)("div")` max-width: 1400px; margin: 0 auto; -`,pe=(0,w.ZP)("h2")` +`,me=(0,w.ZP)("h2")` font-weight: 700; font-size: 48px; line-height: 58.09px; text-align: center; -`,he=(0,w.ZP)("p")` +`,pe=(0,w.ZP)("p")` font-weight: 700; font-size: 24px; line-height: 38px; @@ -159,13 +159,13 @@ strong { color: #73D9B4; } -`;function Ce(){return b.createElement(ke,null,b.createElement(Ee,null,b.createElement(pe,null,"How it Works"),b.createElement(ge,null,be.map(((e,t)=>b.createElement(b.Fragment,{key:t},t>0&&b.createElement(fe,null),b.createElement(we,{key:t,style:{"--color1":e.color1,"--color2":e.color2}},b.createElement(ve,null,e.title),b.createElement(ye,null,b.createElement(xe,null)))))))))}const ke=(0,w.ZP)(ue)` - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("lg")]:$.iv` +`;function he(){return b.createElement(Ce,null,b.createElement(ke,null,b.createElement(me,null,"How it Works"),b.createElement(Ee,null,xe.map(((e,t)=>b.createElement(b.Fragment,{key:t},t>0&&b.createElement(ge,null),b.createElement(fe,{key:t,style:{"--color1":e.color1,"--color2":e.color2}},b.createElement(we,null,e.title),b.createElement(ve,null,b.createElement(ye,null)))))))))}const Ce=(0,w.ZP)(de)` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("lg")]:K.iv` padding-top: 0; `}}} -`,Ee=(0,w.ZP)(me)` +`,ke=(0,w.ZP)(ue)` display: block; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("lg")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("lg")]:K.iv` display: flex; gap: 48px; align-items: center; @@ -175,7 +175,7 @@ line-height: 36px; } `}}} -`,ge=(0,w.ZP)("div")` +`,Ee=(0,w.ZP)("div")` flex: 1; display: flex; gap: 24px; @@ -185,40 +185,40 @@ list-style: none; flex-direction: column; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` display: flex; flex-direction: row; align-items: flex-start; `}}} -`,fe=(0,w.ZP)("li")` +`,ge=(0,w.ZP)("li")` flex: 0.6; height: 1px; background-color: #6E6E6E; margin-top: 64px; display: none; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` display: block; `}}} -`,we=(0,w.ZP)("div")` +`,fe=(0,w.ZP)("div")` flex: 1; max-width: 344px; -`,ve=(0,w.ZP)("h3")` +`,we=(0,w.ZP)("h3")` font-size: 24px; line-height: 36px; white-space: nowrap; -`,ye=(0,w.ZP)("div")` +`,ve=(0,w.ZP)("div")` background-color: var(--color1); height: 28px; border-radius: 9999px; padding: 5px; -`,xe=(0,w.ZP)("div")` +`,ye=(0,w.ZP)("div")` width: 18px; height: 18px; border-radius: 9px; border: 4px solid var(--color2); background-color: white; -`,be=[{title:"Link your Github",description:"Developers who actively contribute to open-source projects on GitHub are eligible. We'll consider factors like lines of code written, commits made, and pull requests submitted.",color1:"#B2DFF2",color2:"#238AB5"},{title:"Claim your Credits",description:"Simply sign in OssInsight with Github account. We'll calculate your credit allocation based on your contributions. Just claim it with one click.",color1:"#FFE895",color2:"#A58927"},{title:"Start Building",description:"Once you have your credits, use them to build any project you want on TiDB Serverless. TiDB Serverless provides a full set of on-boarding supports and a few sets of sample data to help you get started.",color1:"#C1F6E2",color2:"#73D9B4"}];var Fe=n(13589),Me=n(18716),Ze=n(95421);const Ve=(0,b.createContext)({init:!1,current:"",setCurrent(){}});function We(e){let{children:t,defaultValue:n,values:r}=e;const[o,i]=(0,b.useState)(n),[l,a]=(0,b.useState)(!1),[s,c]=(0,b.useState)(0),[L,d]=(0,b.useState)(!1),u=(0,b.useRef)(null);return(0,b.useEffect)((()=>{a(!0);const e=u.current;if(e){if("undefined"!=typeof IntersectionObserver){const t=new IntersectionObserver((e=>{let[t]=e;d(t.isIntersecting)}),{threshold:.3});return t.observe(e),()=>{t.unobserve(e)}}d(!0)}}),[]),(0,b.useEffect)((()=>{if(s){const e=setTimeout((()=>{c(0)}),5e3);return()=>{clearTimeout(e)}}}),[s]),(0,b.useEffect)((()=>{if(!s&&L){const e=setInterval((()=>{i((e=>{const t=Math.max(r.indexOf(e),0);return r[(t+1)%r.length]}))}),4e3);return()=>{clearInterval(e)}}}),[s,L]),b.createElement("div",{ref:u,onMouseDown:()=>c((e=>e+1))},b.createElement(Ve.Provider,{value:{init:l,current:o,setCurrent:i}},t))}const De=(0,w.ZP)("ul")` +`,xe=[{title:"Link your Github",description:"Developers who actively contribute to open-source projects on GitHub are eligible. We'll consider factors like lines of code written, commits made, and pull requests submitted.",color1:"#B2DFF2",color2:"#238AB5"},{title:"Claim your Credits",description:"Simply sign in OssInsight with Github account. We'll calculate your credit allocation based on your contributions. Just claim it with one click.",color1:"#FFE895",color2:"#A58927"},{title:"Start Building",description:"Once you have your credits, use them to build any project you want on TiDB Serverless. TiDB Serverless provides a full set of on-boarding supports and a few sets of sample data to help you get started.",color1:"#C1F6E2",color2:"#73D9B4"}];var be=n(13589),Fe=n(18716),Me=n(95421);const Ze=(0,b.createContext)({init:!1,current:"",setCurrent(){}});function Ve(e){let{children:t,defaultValue:n,values:r}=e;const[o,i]=(0,b.useState)(n),[l,a]=(0,b.useState)(!1),[s,c]=(0,b.useState)(0),[L,d]=(0,b.useState)(!1),u=(0,b.useRef)(null);return(0,b.useEffect)((()=>{a(!0);const e=u.current;if(e){if("undefined"!=typeof IntersectionObserver){const t=new IntersectionObserver((e=>{let[t]=e;d(t.isIntersecting)}),{threshold:.3});return t.observe(e),()=>{t.unobserve(e)}}d(!0)}}),[]),(0,b.useEffect)((()=>{if(s){const e=setTimeout((()=>{c(0)}),5e3);return()=>{clearTimeout(e)}}}),[s]),(0,b.useEffect)((()=>{if(!s&&L){const e=setInterval((()=>{i((e=>{const t=Math.max(r.indexOf(e),0);return r[(t+1)%r.length]}))}),4e3);return()=>{clearInterval(e)}}}),[s,L]),b.createElement("div",{ref:u,onMouseDown:()=>c((e=>e+1))},b.createElement(Ze.Provider,{value:{init:l,current:o,setCurrent:i}},t))}const We=(0,w.ZP)("ul")` list-style: none; display: flex; align-items: center; @@ -227,7 +227,7 @@ flex-wrap: wrap; padding: 0 24px; gap: 32px; -`;function He(e){let{value:t,children:n}=e;const{current:r,setCurrent:o}=(0,b.useContext)(Ve);return b.createElement(Me.E.li,{style:{flex:1,position:"relative",whiteSpace:"nowrap",padding:"0",borderBottom:"2px solid #53524F"},initial:{color:"#53524F"},animate:t===r?{color:"#FFE895"}:{color:"#53524F"}},t===r&&b.createElement(Me.E.div,{layout:!0,layoutId:"active",style:{zIndex:0,pointerEvents:"none",position:"absolute",left:0,bottom:-2,width:"100%",height:"2px",background:"#FFE895"}}),b.createElement("button",{style:{width:"100%",textAlign:"left",cursor:"pointer",fontSize:"25px",lineHeight:"31px",fontWeight:500,position:"relative",color:"currentcolor",background:"none",appearance:"none",border:"none"},type:"button",onClick:()=>o(t)},n))}var Be=n(3905);const je={toc:[]};function Ae(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},je,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("ul",null,(0,Be.kt)("li",{parentName:"ul"},(0,Be.kt)("strong",{parentName:"li"},"Personal Website Hosting"),": Create websites or blogs using WordPress or Joomla."),(0,Be.kt)("li",{parentName:"ul"},(0,Be.kt)("strong",{parentName:"li"},"RAG Agent Prototyping"),": Develop RAG agents with your own knowledge base."),(0,Be.kt)("li",{parentName:"ul"},(0,Be.kt)("strong",{parentName:"li"},"Minecraft Server"),": Run a personal Minecraft server, where you can play on with your friends all day.")))}Ae.isMDXComponent=!0;const Te={toc:[]};function Se(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},Te,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"TiDB Serverless is a highly scalable, vector search built-in, and cost-effective serverless database, which is dedicated to powering modern applications with simple solutions. ",(0,Be.kt)("a",{href:"https://www.pingcap.com/tidb-cloud-serverless/?utm_source=ossinsight&utm_medium=referral&utm_campaign=plg_OSScontribution_credit_05",target:"_blank",rel:"noopener"},"Read more"),"."),(0,Be.kt)("p",null,"With it, you can:"),(0,Be.kt)("ul",null,(0,Be.kt)("li",{parentName:"ul"},"Build highly scalable applications with ease"),(0,Be.kt)("li",{parentName:"ul"},"Leverage advanced features like vector search"),(0,Be.kt)("li",{parentName:"ul"},"Enjoy seamless integration with what you use"),(0,Be.kt)("li",{parentName:"ul"},"Pay only for what you use, and only beyond free credits")))}Se.isMDXComponent=!0;const Ie={toc:[]};function Pe(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},Ie,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("ul",null,(0,Be.kt)("li",{parentName:"ul"},(0,Be.kt)("strong",{parentName:"li"},"Start small businesses"),": Power online stores, community forums, or customer feedback systems."),(0,Be.kt)("li",{parentName:"ul"},(0,Be.kt)("strong",{parentName:"li"},"Data API Backends"),": Host small databases for managing small-scale workloads like API backend")))}Pe.isMDXComponent=!0;const Re={toc:[]};function Ne(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},Re,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("ul",null,(0,Be.kt)("li",{parentName:"ul"},(0,Be.kt)("strong",{parentName:"li"},"Scale startups"),": Deploy SaaS applications, analytics dashboards, or e-commerce platforms with of thousands users and continuous read/write operations.")))}Ne.isMDXComponent=!0;const ze={toc:[]};function Oe(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},ze,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("ul",null,(0,Be.kt)("li",{parentName:"ul"},(0,Be.kt)("strong",{parentName:"li"},"Data-heavy applications"),": Scale applications with distributed databases, handle enterprise-level systems, or power data-heavy industries like fintech or healthcare.")))}Oe.isMDXComponent=!0;const Xe={toc:[]};function Qe(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},Xe,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("ul",null,(0,Be.kt)("li",{parentName:"ul"},(0,Be.kt)("strong",{parentName:"li"},"Power large-scale enterprises"),": Handle millions of users with high performance and reliability requirements."),(0,Be.kt)("li",{parentName:"ul"},(0,Be.kt)("strong",{parentName:"li"},"Run mission-critical systems"),": Support complex applications like fintech, gaming, or healthcare solutions.")))}function Je(){return b.createElement(ue,{dark:!0},b.createElement(me,null,b.createElement(pe,null,"With TiDB Serverless\u26a1\ufe0f, you can:"),b.createElement(Ue,{invert:!0},Ke,b.createElement("article",null,b.createElement(Se,null),b.createElement(F,{mt:0,variant:"contained"},"Try Free"))),b.createElement(pe,{sx:{mt:[20,20,40]}},"With TiDB Serverless credits \ud83d\udcb0 , you can:"),b.createElement(We,{defaultValue:"free",values:Ge},b.createElement(De,null,b.createElement(Fe.S,null,Ye.map((e=>b.createElement(He,{key:e.value,value:e.value},e.title))))),b.createElement(Ue,null,$e,b.createElement(Me.E.article,{layout:!0,style:{display:"flex",alignSelf:"stretch",flexDirection:"column",justifyContent:"space-between"}},b.createElement(Ve.Consumer,null,(e=>{let{init:t,current:n}=e;return b.createElement(Ze.M,{presenceAffectsLayout:!0},Ye.map((e=>(!t||n===e.value)&&b.createElement(Me.E.div,{key:e.value,initial:{opacity:0,position:"absolute"},animate:{opacity:1,position:"relative"},exit:{opacity:0,position:"absolute"}},e.content))))})),b.createElement("span",{className:"--spacer"}),b.createElement(m.Z,{variant:"contained",onClick:()=>{var e;window.scrollTo({top:0,behavior:"smooth"}),null==(e=document.getElementById("start-claim-trigger"))||e.click()}},"Claim your credits now"),b.createElement("footer",null,b.createElement("p",null,"*The scenarios above are for reference only. The actual bill will be based on real usage.")))))))}Qe.isMDXComponent=!0;const Ye=[{value:"free",title:"Free",content:b.createElement(Ae,null)},{value:"$5",title:"$5-$10",content:b.createElement(Pe,null)},{value:"$10",title:"$10-$100",content:b.createElement(Ne,null)},{value:"$100",title:"$100-$300",content:b.createElement(Oe,null)},{value:"$300",title:"$300-$2000",content:b.createElement(Qe,null)}],Ge=Ye.map((e=>e.value)),Ue=(0,w.ZP)("div")` +`;function De(e){let{value:t,children:n}=e;const{current:r,setCurrent:o}=(0,b.useContext)(Ze);return b.createElement(Fe.E.li,{style:{flex:1,position:"relative",whiteSpace:"nowrap",padding:"0",borderBottom:"2px solid #53524F"},initial:{color:"#53524F"},animate:t===r?{color:"#FFE895"}:{color:"#53524F"}},t===r&&b.createElement(Fe.E.div,{layout:!0,layoutId:"active",style:{zIndex:0,pointerEvents:"none",position:"absolute",left:0,bottom:-2,width:"100%",height:"2px",background:"#FFE895"}}),b.createElement("button",{style:{width:"100%",textAlign:"left",cursor:"pointer",fontSize:"25px",lineHeight:"31px",fontWeight:500,position:"relative",color:"currentcolor",background:"none",appearance:"none",border:"none"},type:"button",onClick:()=>o(t)},n))}var He=n(3905);const Be={toc:[]};function je(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Be,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("ul",null,(0,He.kt)("li",{parentName:"ul"},(0,He.kt)("strong",{parentName:"li"},"Personal Website Hosting"),": Create websites or blogs using WordPress or Joomla."),(0,He.kt)("li",{parentName:"ul"},(0,He.kt)("strong",{parentName:"li"},"RAG Agent Prototyping"),": Develop RAG agents with your own knowledge base."),(0,He.kt)("li",{parentName:"ul"},(0,He.kt)("strong",{parentName:"li"},"Minecraft Server"),": Run a personal Minecraft server, where you can play on with your friends all day.")))}je.isMDXComponent=!0;const Ae={toc:[]};function Te(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Ae,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"TiDB Serverless is a highly scalable, vector search built-in, and cost-effective serverless database, which is dedicated to powering modern applications with simple solutions. ",(0,He.kt)("a",{href:"https://www.pingcap.com/tidb-cloud-serverless/?utm_source=ossinsight&utm_medium=referral&utm_campaign=plg_OSScontribution_credit_05",target:"_blank",rel:"noopener"},"Read more"),"."),(0,He.kt)("p",null,"With it, you can:"),(0,He.kt)("ul",null,(0,He.kt)("li",{parentName:"ul"},"Build highly scalable applications with ease"),(0,He.kt)("li",{parentName:"ul"},"Leverage advanced features like vector search"),(0,He.kt)("li",{parentName:"ul"},"Enjoy seamless integration with what you use"),(0,He.kt)("li",{parentName:"ul"},"Pay only for what you use, and only beyond free credits")))}Te.isMDXComponent=!0;const Se={toc:[]};function Ie(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Se,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("ul",null,(0,He.kt)("li",{parentName:"ul"},(0,He.kt)("strong",{parentName:"li"},"Start small businesses"),": Power online stores, community forums, or customer feedback systems."),(0,He.kt)("li",{parentName:"ul"},(0,He.kt)("strong",{parentName:"li"},"Data API Backends"),": Host small databases for managing small-scale workloads like API backend")))}Ie.isMDXComponent=!0;const Pe={toc:[]};function Re(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Pe,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("ul",null,(0,He.kt)("li",{parentName:"ul"},(0,He.kt)("strong",{parentName:"li"},"Scale startups"),": Deploy SaaS applications, analytics dashboards, or e-commerce platforms with of thousands users and continuous read/write operations.")))}Re.isMDXComponent=!0;const Ne={toc:[]};function ze(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Ne,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("ul",null,(0,He.kt)("li",{parentName:"ul"},(0,He.kt)("strong",{parentName:"li"},"Data-heavy applications"),": Scale applications with distributed databases, handle enterprise-level systems, or power data-heavy industries like fintech or healthcare.")))}ze.isMDXComponent=!0;const Oe={toc:[]};function Xe(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Oe,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("ul",null,(0,He.kt)("li",{parentName:"ul"},(0,He.kt)("strong",{parentName:"li"},"Power large-scale enterprises"),": Handle millions of users with high performance and reliability requirements."),(0,He.kt)("li",{parentName:"ul"},(0,He.kt)("strong",{parentName:"li"},"Run mission-critical systems"),": Support complex applications like fintech, gaming, or healthcare solutions.")))}function Qe(){return b.createElement(de,{dark:!0},b.createElement(ue,null,b.createElement(me,null,"With TiDB Serverless\u26a1\ufe0f, you can:"),b.createElement(Ge,{invert:!0},Ue,b.createElement("article",null,b.createElement(Te,null),b.createElement(F,{mt:0,variant:"contained"},"Try Free"))),b.createElement(me,{sx:{mt:[20,20,40]}},"With TiDB Serverless credits \ud83d\udcb0 , you can:"),b.createElement(Ve,{defaultValue:"free",values:Ye},b.createElement(We,null,b.createElement(be.S,null,Je.map((e=>b.createElement(De,{key:e.value,value:e.value},e.title))))),b.createElement(Ge,null,Ke,b.createElement(Fe.E.article,{layout:!0,style:{display:"flex",alignSelf:"stretch",flexDirection:"column",justifyContent:"space-between"}},b.createElement(Ze.Consumer,null,(e=>{let{init:t,current:n}=e;return b.createElement(Me.M,{presenceAffectsLayout:!0},Je.map((e=>(!t||n===e.value)&&b.createElement(Fe.E.div,{key:e.value,initial:{opacity:0,position:"absolute"},animate:{opacity:1,position:"relative"},exit:{opacity:0,position:"absolute"}},e.content))))})),b.createElement("span",{className:"--spacer"}),b.createElement(m.Z,{variant:"contained",onClick:()=>{var e;window.scrollTo({top:0,behavior:"smooth"}),null==(e=document.getElementById("start-claim-trigger"))||e.click()}},"Claim your credits now"),b.createElement("footer",null,b.createElement("p",null,"*The scenarios above are for reference only. The actual bill will be based on real usage.")))))))}Xe.isMDXComponent=!0;const Je=[{value:"free",title:"Free",content:b.createElement(je,null)},{value:"$5",title:"$5-$10",content:b.createElement(Ie,null)},{value:"$10",title:"$10-$100",content:b.createElement(Re,null)},{value:"$100",title:"$100-$300",content:b.createElement(ze,null)},{value:"$300",title:"$300-$2000",content:b.createElement(Xe,null)}],Ye=Je.map((e=>e.value)),Ge=(0,w.ZP)("div")` margin-top: 36px; > article { @@ -265,7 +265,7 @@ } } - ${e=>{let{theme:t,invert:n}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t,invert:n}=e;return{[t.breakpoints.up("md")]:K.iv` margin-top: 80px; display: flex; @@ -284,23 +284,23 @@ } } `}}} -`,Ke=b.createElement("svg",{width:"358",height:"379",viewBox:"0 0 358 379",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M177.497 0.805861C176.496 0.814093 175.497 0.830541 174.5 0.855141L174.512 1.35499C173.518 1.37952 172.526 1.41218 171.536 1.45291L171.515 0.953334C170.518 0.994358 169.523 1.04354 168.53 1.10082L168.558 1.59999C167.562 1.65747 166.568 1.72312 165.576 1.79687L165.539 1.29825C164.544 1.37221 163.551 1.4543 162.561 1.54445L162.606 2.04239C161.616 2.13262 160.627 2.23094 159.641 2.33729L159.587 1.84018C158.592 1.94746 157.6 2.0629 156.61 2.18643L156.672 2.68258C155.685 2.80576 154.7 2.937 153.718 3.07623L153.648 2.58118C152.66 2.72122 151.675 2.86932 150.692 3.02542L150.771 3.51922C149.786 3.67573 148.803 3.8403 147.824 4.01286L147.737 3.52044C146.755 3.69349 145.775 3.87454 144.798 4.06354L144.893 4.55444C143.916 4.74341 142.942 4.94035 141.972 5.14518L141.868 4.65595C140.89 4.86233 139.915 5.07671 138.942 5.29901L139.054 5.78643C138.084 6.0081 137.117 6.23767 136.154 6.47506L136.034 5.98958C135.065 6.22825 134.1 6.4748 133.137 6.72917L133.265 7.21257C132.302 7.46724 131.341 7.72976 130.384 8.00006L130.248 7.51888C129.288 7.78995 128.332 8.06882 127.379 8.35542L127.523 8.83424C126.57 9.12075 125.62 9.415 124.674 9.71692L124.522 9.24059C123.57 9.54434 122.622 9.85583 121.677 10.175L121.837 10.6487C120.895 10.967 119.957 11.2929 119.022 11.6264L118.854 11.1554C117.914 11.4907 116.978 11.8335 116.045 12.184L116.221 12.652C115.289 13.0023 114.36 13.3602 113.435 13.7256L113.252 13.2606C112.324 13.627 111.401 14.0009 110.481 14.3823L110.672 14.8442C109.753 15.2254 108.838 15.6141 107.926 16.0101L107.727 15.5516C106.811 15.9494 105.9 16.3547 104.992 16.7674L105.199 17.2226C104.294 17.6341 103.393 18.0529 102.496 18.479L102.282 18.0274C101.38 18.4557 100.483 18.8913 99.5895 19.3341L99.8116 19.7821C98.9199 20.2242 98.0325 20.6735 97.1493 21.13L96.9197 20.6859C96.0341 21.1437 95.1528 21.6086 94.2759 22.0807L94.5129 22.5209C93.6365 22.9927 92.7645 23.4716 91.8969 23.9575L91.6526 23.5213C90.7821 24.0089 89.916 24.5036 89.0546 25.0052L89.3062 25.4373C88.4471 25.9376 87.5926 26.4448 86.7427 26.9589L86.4839 26.5311C85.6299 27.0477 84.7806 27.5712 83.936 28.1016L84.2019 28.525C83.3595 29.0541 82.5217 29.59 81.6888 30.1326L81.4159 29.7137C80.5806 30.2579 79.7502 30.8088 78.9247 31.3665L79.2046 31.7808C78.3799 32.3379 77.5601 32.9017 76.7453 33.4722L76.4586 33.0626C75.6415 33.6346 74.8294 34.2133 74.0224 34.7986L74.3159 35.2034C73.5111 35.7871 72.7112 36.3774 71.9166 36.9741L71.6163 36.5743C70.8185 37.1734 70.0259 37.7791 69.2385 38.3911L69.5453 38.7859C68.7601 39.3963 67.9801 40.013 67.2055 40.6361L66.8921 40.2465C66.1151 40.8715 65.3434 41.5028 64.5772 42.1405L64.897 42.5248C64.1324 43.161 63.3732 43.8036 62.6194 44.4523L62.2933 44.0733C61.5374 44.7238 60.7871 45.3805 60.0423 46.0434L60.3747 46.4169C59.6319 47.078 58.8947 47.7452 58.163 48.4185L57.8245 48.0505C57.0906 48.7258 56.3624 49.4072 55.6399 50.0945L55.9846 50.4568C55.2641 51.1422 54.5494 51.8336 53.8405 52.5309L53.4898 52.1744C52.7789 52.8736 52.0738 53.5787 51.3746 54.2896L51.7311 54.6402C51.0339 55.3491 50.3425 56.0639 49.657 56.7843L49.2948 56.4397C48.6075 57.1622 47.9261 57.8904 47.2508 58.6242L47.6187 58.9628C46.9455 59.6944 46.2782 60.4317 45.6171 61.1745L45.2436 60.8421C44.5808 61.5869 43.9241 62.3372 43.2736 63.093L43.6525 63.4192C43.0038 64.1729 42.3613 64.9322 41.725 65.6968L41.3407 65.377C40.7031 66.1432 40.0718 66.9149 39.4468 67.6918L39.8364 68.0052C39.2133 68.7799 38.5965 69.5599 37.9861 70.3451L37.5914 70.0382C36.9793 70.8256 36.3737 71.6183 35.7746 72.4161L36.1744 72.7163C35.5776 73.511 34.9873 74.3108 34.4036 75.1157L33.9988 74.8222C33.4136 75.6292 32.8349 76.4413 32.2628 77.2583L32.6724 77.5451C32.102 78.3599 31.5382 79.1797 30.9811 80.0044L30.5667 79.7245C30.0091 80.55 29.4581 81.3804 28.9139 82.2157L29.3329 82.4886C28.7902 83.3215 28.2543 84.1592 27.7253 85.0017L27.3018 84.7358C26.7715 85.5804 26.2479 86.4297 25.7313 87.2837L26.1591 87.5425C25.645 88.3924 25.1378 89.2469 24.6376 90.1059L24.2055 89.8543C23.7038 90.7158 23.2092 91.5819 22.7216 92.4524L23.1578 92.6967C22.6719 93.5643 22.193 94.4363 21.7212 95.3127L21.2809 95.0757C20.8089 95.9526 20.3439 96.8339 19.8861 97.7195L20.3303 97.9491C19.8738 98.8323 19.4245 99.7197 18.9824 100.611L18.5344 100.389C18.0916 101.282 17.656 102.18 17.2277 103.081L17.6793 103.296C17.2532 104.193 16.8344 105.094 16.4228 105.999L15.9677 105.792C15.555 106.699 15.1497 107.611 14.7518 108.527L15.2104 108.726C14.8144 109.638 14.4257 110.553 14.0445 111.472L13.5826 111.281C13.2012 112.2 12.8273 113.124 12.4609 114.051L12.9259 114.235C12.5605 115.16 12.2026 116.088 11.8523 117.021L11.3843 116.845C11.0338 117.777 10.6909 118.714 10.3557 119.653L10.8266 119.821C10.4932 120.756 10.1672 121.695 9.84897 122.637L9.37527 122.477C9.05611 123.422 8.74462 124.37 8.44088 125.322L8.91721 125.474C8.61529 126.42 8.32104 127.37 8.03453 128.322L7.55571 128.178C7.26911 129.132 6.99024 130.088 6.71917 131.048L7.20035 131.184C6.93005 132.141 6.66753 133.101 6.41287 134.065L5.92947 133.937C5.6751 134.9 5.42854 135.865 5.18988 136.834L5.67536 136.954C5.43797 137.917 5.2084 138.884 4.98673 139.853L4.4993 139.742C4.27701 140.714 4.06263 141.69 3.85624 142.668L4.34547 142.771C4.14065 143.742 3.94371 144.716 3.75474 145.693L3.26384 145.598C3.07484 146.575 2.89379 147.554 2.72074 148.537L3.21316 148.624C3.0406 149.603 2.87604 150.586 2.71952 151.571L2.22572 151.492C2.06962 152.475 1.92152 153.46 1.78148 154.448L2.27653 154.518C2.1373 155.5 2.00606 156.485 1.88288 157.472L1.38673 157.41C1.26321 158.4 1.14777 159.392 1.04048 160.387L1.5376 160.441C1.43125 161.427 1.33293 162.415 1.24271 163.406L0.744765 163.361C0.654612 164.351 0.572522 165.344 0.498561 166.338L0.997185 166.375C0.92343 167.367 0.857783 168.362 0.800308 169.358L0.301138 169.329C0.243858 170.322 0.194674 171.318 0.153651 172.315L0.653228 172.335C0.612501 173.326 0.579839 174.318 0.555307 175.312L0.0554587 175.3C0.0308585 176.297 0.0144103 177.296 0.00617816 178.297L0.506161 178.301C0.503425 178.634 0.501599 178.967 0.500685 179.3H1.49167V179.8H4.475V179.3H7.45833V179.8H10.4417V179.3H13.425V179.8H16.4083V179.3H19.3917V179.8H22.375V179.3H25.3583V179.8H28.3417V179.3H31.325V179.8H34.3083V179.3H37.2917V179.8H40.275V179.3H43.2583V179.8H46.2417V179.3H49.225V179.8H52.2083V179.3H55.1917V179.8H58.175V179.3H61.1583V179.8H64.1417V179.3H67.125V179.8H70.1083V179.3H73.0917V179.8H76.075V179.3H79.0583V179.8H82.0416V179.3H85.025V179.8H88.0083V179.3H90.9916V179.8H93.975V179.3H96.9583V179.8H99.9416V179.3H102.925V179.8H105.908V179.3H108.892V179.8H111.875V179.3H114.858V179.8H117.842V179.3H120.825V179.8H123.808V179.3H126.792V179.8H129.775V179.3H132.758V179.8H135.742V179.3H138.725V179.8H141.708V179.3H144.692V179.8H147.675V179.3H150.658V179.8H153.642V179.3H156.625V179.8H159.608V179.3H162.592V179.8H165.575V179.3H168.558V179.8H171.542V179.3H174.525V179.8H177.508V179.3H180.492V179.8H183.475V179.3H186.458V179.8H189.442V179.3H192.425V179.8H195.408V179.3H198.392V179.8H201.375V179.3H204.358V179.8H207.342V179.3H210.325V179.8H213.308V179.3H216.292V179.8H219.275V179.3H222.258V179.8H225.242V179.3H228.225V179.8H231.208V179.3H234.192V179.8H237.175V179.3H240.158V179.8H243.142V179.3H246.125V179.8H249.108V179.3H252.092V179.8H255.075V179.3H258.058V179.8H261.042V179.3H264.025V179.8H267.008V179.3H269.992V179.8H272.975V179.3H275.958V179.8H278.942V179.3H281.925V179.8H284.908V179.3H287.892V179.8H290.875V179.3H293.858V179.8H296.842V179.3H299.825V179.8H302.809V179.3H305.792V179.8H308.775V179.3H311.759V179.8H314.742V179.3H317.725V179.8H320.709V179.3H323.692V179.8H326.675V179.3H329.659V179.8H332.642V179.3H335.625V179.8H338.609V179.3H341.592V179.8H344.575V179.3H347.559V179.8H350.542V179.3H353.525V179.8H356.509V179.3H357.499C357.498 178.967 357.497 178.634 357.494 178.301L357.994 178.297C357.986 177.296 357.969 176.297 357.945 175.3L357.445 175.312C357.42 174.318 357.388 173.326 357.347 172.335L357.846 172.315C357.805 171.318 357.756 170.322 357.699 169.329L357.2 169.358C357.142 168.362 357.077 167.367 357.003 166.375L357.501 166.338C357.427 165.343 357.345 164.351 357.255 163.361L356.757 163.406C356.667 162.415 356.569 161.427 356.462 160.44L356.96 160.387C356.852 159.392 356.737 158.4 356.613 157.41L356.117 157.472C355.994 156.484 355.863 155.5 355.723 154.518L356.219 154.448C356.078 153.46 355.93 152.475 355.774 151.492L355.28 151.571C355.124 150.586 354.959 149.603 354.787 148.623L355.279 148.537C355.106 147.554 354.925 146.575 354.736 145.598L354.245 145.693C354.056 144.716 353.859 143.742 353.655 142.771L354.144 142.668C353.937 141.69 353.723 140.714 353.501 139.742L353.013 139.853C352.792 138.884 352.562 137.917 352.325 136.953L352.81 136.834C352.571 135.865 352.325 134.9 352.071 133.937L351.587 134.065C351.332 133.101 351.07 132.141 350.8 131.184L351.281 131.048C351.01 130.088 350.731 129.132 350.444 128.178L349.965 128.322C349.679 127.369 349.385 126.42 349.083 125.474L349.559 125.322C349.255 124.37 348.944 123.422 348.625 122.477L348.151 122.637C347.833 121.695 347.507 120.756 347.173 119.821L347.644 119.653C347.309 118.713 346.966 117.777 346.616 116.845L346.148 117.02C345.797 116.088 345.439 115.16 345.074 114.235L345.539 114.051C345.173 113.124 344.799 112.2 344.417 111.281L343.956 111.472C343.574 110.553 343.186 109.637 342.79 108.726L343.248 108.527C342.85 107.611 342.445 106.699 342.032 105.792L341.577 105.999C341.166 105.094 340.747 104.193 340.321 103.296L340.772 103.081C340.344 102.18 339.908 101.282 339.466 100.389L339.018 100.611C338.575 99.7196 338.126 98.8322 337.67 97.949L338.114 97.7194C337.656 96.8338 337.191 95.9525 336.719 95.0756L336.279 95.3126C335.807 94.4362 335.328 93.5642 334.842 92.6966L335.278 92.4523C334.791 91.5818 334.296 90.7157 333.794 89.8542L333.362 90.1059C332.862 89.2468 332.355 88.3923 331.841 87.5424L332.269 87.2836C331.752 86.4296 331.228 85.5803 330.698 84.7357L330.275 85.0016C329.746 84.1591 329.21 83.3214 328.667 82.4885L329.086 82.2156C328.542 81.3803 327.991 80.5499 327.433 79.7244L327.019 80.0043C326.462 79.1796 325.898 78.3598 325.328 77.545L325.737 77.2582C325.165 76.4412 324.586 75.6291 324.001 74.8221L323.596 75.1156C323.013 74.3107 322.422 73.5109 321.826 72.7162L322.225 72.416C321.626 71.6182 321.021 70.8255 320.409 70.0381L320.014 70.345C319.403 69.5598 318.787 68.7798 318.164 68.0051L318.553 67.6918C317.928 66.9148 317.297 66.1431 316.659 65.3769L316.275 65.6967C315.639 64.9321 314.996 64.1729 314.347 63.4191L314.726 63.093C314.076 62.3371 313.419 61.5868 312.756 60.842L312.383 61.1744C311.722 60.4316 311.054 59.6943 310.381 58.9627L310.749 58.6241C310.074 57.8903 309.392 57.1621 308.705 56.4396L308.343 56.7843C307.657 56.0638 306.966 55.3491 306.269 54.6401L306.625 54.2895C305.926 53.5786 305.221 52.8735 304.51 52.1743L304.159 52.5308C303.451 51.8335 302.736 51.1422 302.015 50.4567L302.36 50.0945C301.638 49.4071 300.909 48.7258 300.175 48.0505L299.837 48.4184C299.105 47.7451 298.368 47.0779 297.625 46.4168L297.958 46.0433C297.213 45.3805 296.462 44.7237 295.707 44.0732L295.38 44.4522C294.627 43.8035 293.868 43.161 293.103 42.5247L293.423 42.1404C292.656 41.5028 291.885 40.8714 291.108 40.2465L290.794 40.6361C290.02 40.013 289.24 39.3962 288.455 38.7858L288.761 38.3911C287.974 37.779 287.181 37.1734 286.384 36.5743L286.083 36.9741C285.289 36.3773 284.489 35.787 283.684 35.2033L283.978 34.7985C283.171 34.2133 282.358 33.6346 281.541 33.0625L281.255 33.4721C280.44 32.9017 279.62 32.3379 278.795 31.7807L279.075 31.3664C278.25 30.8088 277.419 30.2578 276.584 29.7136L276.311 30.1326C275.478 29.5899 274.64 29.054 273.798 28.5249L274.064 28.1015C273.219 27.5711 272.37 27.0476 271.516 26.531L271.257 26.9588C270.407 26.4447 269.553 25.9375 268.694 25.4373L268.945 25.0052C268.084 24.5035 267.218 24.0089 266.347 23.5212L266.103 23.9575C265.235 23.4716 264.363 22.9927 263.487 22.5209L263.724 22.0806C262.847 21.6086 261.966 21.1436 261.08 20.6858L260.851 21.13C259.967 20.6735 259.08 20.2242 258.188 19.7821L258.41 19.3341C257.517 18.8912 256.62 18.4556 255.718 18.0273L255.504 18.479C254.607 18.0529 253.706 17.634 252.801 17.2225L253.008 16.7674C252.1 16.3547 251.189 15.9494 250.273 15.5515L250.074 16.0101C249.162 15.614 248.247 15.2254 247.327 14.8441L247.519 14.3823C246.599 14.0009 245.676 13.627 244.748 13.2605L244.565 13.7256C243.64 13.3602 242.711 13.0023 241.779 12.652L241.955 12.184C241.022 11.8335 240.086 11.4906 239.146 11.1554L238.978 11.6263C238.043 11.2928 237.105 10.9669 236.163 10.6487L236.323 10.175C235.378 9.85579 234.429 9.54431 233.478 9.24056L233.326 9.7169C232.38 9.41497 231.43 9.12072 230.477 8.83422L230.621 8.35539C229.668 8.06879 228.712 7.78992 227.752 7.51886L227.616 8.00003C226.659 7.72973 225.698 7.46721 224.735 7.21255L224.863 6.72915C223.9 6.47478 222.934 6.22822 221.966 5.98956L221.846 6.47504C220.883 6.23765 219.916 6.00808 218.946 5.78641L219.058 5.29899C218.085 5.07669 217.11 4.86231 216.132 4.65593L216.028 5.14516C215.057 4.94033 214.084 4.74339 213.107 4.55442L213.202 4.06352C212.225 3.87453 211.245 3.69347 210.263 3.52043L210.176 4.01285C209.197 3.84029 208.214 3.67572 207.229 3.51921L207.307 3.0254C206.325 2.8693 205.34 2.7212 204.352 2.58116L204.282 3.07621C203.3 2.93698 202.315 2.80575 201.328 2.68257L201.39 2.18642C200.4 2.06289 199.408 1.94745 198.413 1.84017L198.359 2.33728C197.373 2.23093 196.384 2.13261 195.394 2.04239L195.439 1.54445C194.449 1.45429 193.456 1.3722 192.461 1.29824L192.424 1.79687C191.432 1.72311 190.438 1.65747 189.442 1.59999L189.47 1.10082C188.477 1.04354 187.482 0.994357 186.485 0.953333L186.464 1.45291C185.474 1.41218 184.482 1.37952 183.488 1.35499L183.5 0.855141C182.503 0.830541 181.504 0.814093 180.503 0.805861L180.499 1.30584C180 1.30174 179.5 1.29968 179 1.29968C178.5 1.29968 178 1.30174 177.501 1.30584L177.497 0.805861Z",stroke:"white",strokeDasharray:"3 3"}),b.createElement("path",{d:"M180.503 366.391C181.504 366.383 182.503 366.367 183.5 366.342L183.488 365.842C184.482 365.818 185.474 365.785 186.464 365.744L186.485 366.244C187.482 366.203 188.477 366.154 189.47 366.096L189.442 365.597C190.438 365.54 191.432 365.474 192.424 365.4L192.461 365.899C193.456 365.825 194.449 365.743 195.439 365.653L195.394 365.155C196.384 365.065 197.373 364.966 198.359 364.86L198.413 365.357C199.408 365.25 200.4 365.134 201.39 365.011L201.328 364.515C202.315 364.391 203.3 364.26 204.282 364.121L204.352 364.616C205.34 364.476 206.325 364.328 207.308 364.172L207.229 363.678C208.214 363.521 209.197 363.357 210.176 363.184L210.263 363.677C211.245 363.504 212.225 363.323 213.202 363.134L213.107 362.643C214.084 362.454 215.058 362.257 216.028 362.052L216.132 362.541C217.11 362.335 218.085 362.12 219.058 361.898L218.946 361.411C219.916 361.189 220.883 360.959 221.846 360.722L221.966 361.208C222.935 360.969 223.9 360.722 224.863 360.468L224.735 359.985C225.698 359.73 226.659 359.467 227.616 359.197L227.752 359.678C228.712 359.407 229.668 359.128 230.621 358.842L230.477 358.363C231.43 358.076 232.38 357.782 233.326 357.48L233.478 357.957C234.43 357.653 235.378 357.341 236.323 357.022L236.163 356.548C237.105 356.23 238.043 355.904 238.978 355.571L239.146 356.042C240.086 355.706 241.023 355.364 241.955 355.013L241.779 354.545C242.711 354.195 243.64 353.837 244.565 353.472L244.748 353.937C245.676 353.57 246.599 353.196 247.519 352.815L247.328 352.353C248.247 351.972 249.162 351.583 250.074 351.187L250.273 351.646C251.189 351.248 252.1 350.842 253.008 350.43L252.801 349.975C253.706 349.563 254.607 349.144 255.504 348.718L255.718 349.17C256.62 348.741 257.517 348.306 258.411 347.863L258.188 347.415C259.08 346.973 259.968 346.524 260.851 346.067L261.08 346.511C261.966 346.053 262.847 345.589 263.724 345.116L263.487 344.676C264.364 344.204 265.236 343.726 266.103 343.24L266.347 343.676C267.218 343.188 268.084 342.694 268.945 342.192L268.694 341.76C269.553 341.26 270.407 340.752 271.257 340.238L271.516 340.666C272.37 340.149 273.219 339.626 274.064 339.096L273.798 338.672C274.641 338.143 275.478 337.607 276.311 337.065L276.584 337.483C277.419 336.939 278.25 336.388 279.075 335.831L278.795 335.416C279.62 334.859 280.44 334.295 281.255 333.725L281.541 334.135C282.359 333.563 283.171 332.984 283.978 332.399L283.684 331.994C284.489 331.41 285.289 330.82 286.083 330.223L286.384 330.623C287.181 330.024 287.974 329.418 288.762 328.806L288.455 328.411C289.24 327.801 290.02 327.184 290.795 326.561L291.108 326.951C291.885 326.326 292.657 325.694 293.423 325.057L293.103 324.672C293.868 324.036 294.627 323.394 295.381 322.745L295.707 323.124C296.463 322.473 297.213 321.817 297.958 321.154L297.625 320.78C298.368 320.119 299.105 319.452 299.837 318.779L300.176 319.147C300.909 318.471 301.638 317.79 302.36 317.103L302.015 316.74C302.736 316.055 303.451 315.364 304.16 314.666L304.51 315.023C305.221 314.324 305.926 313.618 306.625 312.908L306.269 312.557C306.966 311.848 307.658 311.133 308.343 310.413L308.705 310.757C309.393 310.035 310.074 309.307 310.749 308.573L310.381 308.234C311.055 307.503 311.722 306.765 312.383 306.023L312.756 306.355C313.419 305.61 314.076 304.86 314.726 304.104L314.347 303.778C314.996 303.024 315.639 302.265 316.275 301.5L316.659 301.82C317.297 301.054 317.928 300.282 318.553 299.505L318.164 299.192C318.787 298.417 319.404 297.637 320.014 296.852L320.409 297.159C321.021 296.372 321.626 295.579 322.225 294.781L321.826 294.481C322.422 293.686 323.013 292.886 323.596 292.081L324.001 292.375C324.586 291.568 325.165 290.756 325.737 289.939L325.328 289.652C325.898 288.837 326.462 288.017 327.019 287.193L327.433 287.473C327.991 286.647 328.542 285.817 329.086 284.981L328.667 284.709C329.21 283.876 329.746 283.038 330.275 282.195L330.698 282.461C331.229 281.617 331.752 280.767 332.269 279.913L331.841 279.655C332.355 278.805 332.862 277.95 333.362 277.091L333.795 277.343C334.296 276.481 334.791 275.615 335.278 274.745L334.842 274.5C335.328 273.633 335.807 272.761 336.279 271.884L336.719 272.121C337.191 271.245 337.656 270.363 338.114 269.478L337.67 269.248C338.126 268.365 338.576 267.477 339.018 266.586L339.466 266.808C339.908 265.915 340.344 265.017 340.772 264.116L340.321 263.901C340.747 263.004 341.166 262.103 341.577 261.198L342.032 261.405C342.445 260.498 342.85 259.586 343.248 258.67L342.79 258.471C343.186 257.56 343.574 256.644 343.956 255.725L344.417 255.916C344.799 254.997 345.173 254.073 345.539 253.146L345.074 252.962C345.44 252.037 345.797 251.109 346.148 250.177L346.616 250.352C346.966 249.42 347.309 248.484 347.644 247.544L347.173 247.376C347.507 246.441 347.833 245.502 348.151 244.56L348.625 244.72C348.944 243.775 349.255 242.827 349.559 241.875L349.083 241.723C349.385 240.777 349.679 239.828 349.965 238.875L350.444 239.019C350.731 238.065 351.01 237.109 351.281 236.149L350.8 236.013C351.07 235.056 351.332 234.096 351.587 233.132L352.071 233.26C352.325 232.298 352.571 231.332 352.81 230.363L352.325 230.244C352.562 229.28 352.792 228.313 353.013 227.344L353.501 227.455C353.723 226.483 353.937 225.507 354.144 224.529L353.655 224.426C353.859 223.455 354.056 222.481 354.245 221.504L354.736 221.599C354.925 220.622 355.106 219.643 355.279 218.66L354.787 218.574C354.959 217.594 355.124 216.612 355.28 215.626L355.774 215.705C355.93 214.722 356.078 213.737 356.219 212.749L355.723 212.679C355.863 211.697 355.994 210.713 356.117 209.725L356.613 209.787C356.737 208.797 356.852 207.805 356.96 206.81L356.462 206.757C356.569 205.77 356.667 204.782 356.757 203.791L357.255 203.836C357.345 202.846 357.427 201.854 357.501 200.859L357.003 200.822C357.077 199.83 357.142 198.836 357.2 197.839L357.699 197.868C357.756 196.875 357.805 195.88 357.846 194.882L357.347 194.862C357.388 193.872 357.42 192.879 357.445 191.885L357.945 191.897C357.969 190.9 357.986 189.901 357.994 188.9L357.494 188.896C357.497 188.564 357.498 188.231 357.499 187.897L356.508 187.897L356.508 187.397L353.525 187.397L353.525 187.897L350.542 187.897L350.542 187.397L347.558 187.397L347.558 187.897L344.575 187.897L344.575 187.397L341.592 187.397L341.592 187.897L338.608 187.897L338.608 187.397L335.625 187.397L335.625 187.897L332.642 187.897L332.642 187.397L329.658 187.397L329.658 187.897L326.675 187.897L326.675 187.397L323.692 187.397L323.692 187.897L320.708 187.897L320.708 187.397L317.725 187.397L317.725 187.897L314.742 187.897L314.742 187.397L311.758 187.397L311.758 187.897L308.775 187.897L308.775 187.397L305.792 187.397L305.792 187.897L302.808 187.897L302.808 187.397L299.825 187.397L299.825 187.897L296.842 187.897L296.842 187.397L293.858 187.397L293.858 187.897L290.875 187.897L290.875 187.397L287.892 187.397L287.892 187.897L284.908 187.897L284.908 187.397L281.925 187.397L281.925 187.897L278.942 187.897L278.942 187.397L275.958 187.397L275.958 187.897L272.975 187.897L272.975 187.397L269.992 187.397L269.992 187.897L267.008 187.897L267.008 187.397L264.025 187.397L264.025 187.897L261.042 187.897L261.042 187.397L258.058 187.397L258.058 187.897L255.075 187.897L255.075 187.397L252.092 187.397L252.092 187.897L249.108 187.897L249.108 187.397L246.125 187.397L246.125 187.897L243.142 187.897L243.142 187.397L240.158 187.397L240.158 187.897L237.175 187.897L237.175 187.397L234.192 187.397L234.192 187.897L231.208 187.897L231.208 187.397L228.225 187.397L228.225 187.897L225.242 187.897L225.242 187.397L222.258 187.397L222.258 187.897L219.275 187.897L219.275 187.397L216.292 187.397L216.292 187.897L213.308 187.897L213.308 187.397L210.325 187.397L210.325 187.897L207.342 187.897L207.342 187.397L204.358 187.397L204.358 187.897L201.375 187.897L201.375 187.397L198.392 187.397L198.392 187.897L195.408 187.897L195.408 187.397L192.425 187.397L192.425 187.897L189.442 187.897L189.442 187.397L186.458 187.397L186.458 187.897L183.475 187.897L183.475 187.397L180.492 187.397L180.492 187.897L177.508 187.897L177.508 187.397L174.525 187.397L174.525 187.897L171.542 187.897L171.542 187.397L168.558 187.397L168.558 187.897L165.575 187.897L165.575 187.397L162.592 187.397L162.592 187.897L159.608 187.897L159.608 187.397L156.625 187.397L156.625 187.897L153.642 187.897L153.642 187.397L150.658 187.397L150.658 187.897L147.675 187.897L147.675 187.397L144.692 187.397L144.692 187.897L141.708 187.897L141.708 187.397L138.725 187.397L138.725 187.897L135.742 187.897L135.742 187.397L132.758 187.397L132.758 187.897L129.775 187.897L129.775 187.397L126.792 187.397L126.792 187.897L123.808 187.897L123.808 187.397L120.825 187.397L120.825 187.897L117.842 187.897L117.842 187.397L114.858 187.397L114.858 187.897L111.875 187.897L111.875 187.397L108.892 187.397L108.892 187.897L105.908 187.897L105.908 187.397L102.925 187.397L102.925 187.897L99.9416 187.897L99.9416 187.397L96.9582 187.397L96.9582 187.897L93.9749 187.897L93.9749 187.397L90.9916 187.397L90.9916 187.897L88.0082 187.897L88.0082 187.397L85.0249 187.397L85.0249 187.897L82.0416 187.897L82.0416 187.397L79.0582 187.397L79.0582 187.897L76.0749 187.897L76.0749 187.397L73.0915 187.397L73.0915 187.897L70.1082 187.897L70.1082 187.397L67.1249 187.397L67.1249 187.897L64.1415 187.897L64.1415 187.397L61.1582 187.397L61.1582 187.897L58.1749 187.897L58.1749 187.397L55.1915 187.397L55.1915 187.897L52.2082 187.897L52.2082 187.397L49.2248 187.397L49.2248 187.897L46.2415 187.897L46.2415 187.397L43.2582 187.397L43.2582 187.897L40.2748 187.897L40.2748 187.397L37.2915 187.397L37.2915 187.897L34.3082 187.897L34.3082 187.397L31.3248 187.397L31.3248 187.897L28.3415 187.897L28.3415 187.397L25.3581 187.397L25.3581 187.897L22.3748 187.897L22.3748 187.397L19.3915 187.397L19.3915 187.897L16.4081 187.897L16.4081 187.397L13.4248 187.397L13.4248 187.897L10.4415 187.897L10.4415 187.397L7.45812 187.397L7.45811 187.897L4.47478 187.897L4.47478 187.397L1.49144 187.397L1.49144 187.897L0.500687 187.897C0.501602 188.231 0.503434 188.564 0.50618 188.896L0.00618007 188.9C0.0144197 189.901 0.0308686 190.9 0.0554657 191.897L0.555313 191.885C0.579849 192.879 0.612503 193.872 0.653244 194.862L0.153671 194.882C0.194687 195.88 0.243881 196.875 0.301162 197.868L0.800338 197.839C0.857803 198.836 0.923446 199.83 0.997207 200.822L0.49858 200.859C0.572555 201.854 0.654647 202.846 0.744796 203.836L1.24272 203.791C1.33296 204.782 1.43126 205.771 1.53761 206.757L1.04051 206.81C1.14781 207.805 1.26323 208.798 1.38676 209.787L1.88292 209.726C2.00609 210.713 2.13731 211.697 2.27656 212.679L1.78151 212.75C1.92155 213.737 2.06965 214.722 2.22575 215.705L2.71956 215.626C2.87605 216.612 3.04063 217.594 3.21318 218.574L2.72078 218.66C2.89381 219.643 3.07487 220.623 3.26387 221.599L3.75477 221.504C3.94374 222.481 4.14067 223.455 4.3455 224.426L3.85627 224.529C4.06266 225.507 4.27705 226.483 4.49934 227.455L4.98677 227.344C5.20845 228.313 5.438 229.28 5.6754 230.244L5.18992 230.363C5.4286 231.332 5.67512 232.298 5.92949 233.26L6.41291 233.132C6.66755 234.096 6.9301 235.056 7.20039 236.013L6.71922 236.149C6.99028 237.109 7.26915 238.066 7.55574 239.019L8.03456 238.875C8.32109 239.828 8.61534 240.777 8.91725 241.723L8.44093 241.875C8.74467 242.827 9.05616 243.775 9.37532 244.72L9.84901 244.56C10.1673 245.502 10.4932 246.441 10.8267 247.376L10.3558 247.544C10.691 248.484 11.0339 249.42 11.3843 250.353L11.8524 250.177C12.2027 251.109 12.5606 252.037 12.9259 252.962L12.4609 253.146C12.8273 254.073 13.2012 254.997 13.5826 255.916L14.0445 255.725C14.4257 256.644 14.8144 257.56 15.2105 258.471L14.7519 258.67C15.1498 259.586 15.5551 260.498 15.9677 261.405L16.4229 261.198C16.8344 262.103 17.2532 263.004 17.6793 263.901L17.2277 264.116C17.656 265.017 18.0916 265.915 18.5345 266.808L18.9824 266.586C19.4245 267.478 19.8739 268.365 20.3304 269.248L19.8862 269.478C20.344 270.363 20.809 271.245 21.281 272.122L21.7213 271.885C22.193 272.761 22.6719 273.633 23.1578 274.5L22.7216 274.745C23.2092 275.615 23.7039 276.481 24.2055 277.343L24.6376 277.091C25.1379 277.95 25.6451 278.805 26.1592 279.655L25.7314 279.914C26.248 280.768 26.7715 281.617 27.3019 282.461L27.7253 282.196C28.2544 283.038 28.7903 283.876 29.333 284.709L28.914 284.982C29.4582 285.817 30.0091 286.647 30.5668 287.473L30.9811 287.193C31.5382 288.018 32.1021 288.837 32.6725 289.652L32.2629 289.939C32.835 290.756 33.4136 291.568 33.9989 292.375L34.4037 292.081C34.9874 292.886 35.5777 293.686 36.1744 294.481L35.7746 294.781C36.3738 295.579 36.9794 296.372 37.5914 297.159L37.9862 296.852C38.5966 297.637 39.2134 298.417 39.8365 299.192L39.4468 299.505C40.0718 300.282 40.7032 301.054 41.3408 301.82L41.7251 301.5C42.3614 302.265 43.0039 303.024 43.6526 303.778L43.2736 304.104C43.9241 304.86 44.5808 305.61 45.2437 306.355L45.6172 306.023C46.2783 306.766 46.9455 307.503 47.6188 308.234L47.2509 308.573C47.9262 309.307 48.6075 310.035 49.2949 310.757L49.6571 310.413C50.3425 311.133 51.0339 311.848 51.7312 312.557L51.3747 312.908C52.0739 313.618 52.779 314.324 53.4899 315.023L53.8405 314.666C54.5495 315.364 55.2642 316.055 55.9847 316.74L55.64 317.103C56.3625 317.79 57.0907 318.471 57.8246 319.147L58.1631 318.779C58.8947 319.452 59.632 320.119 60.3748 320.78L60.0424 321.154C60.7872 321.817 61.5375 322.473 62.2934 323.124L62.6195 322.745C63.3733 323.394 64.1325 324.036 64.8971 324.672L64.5773 325.057C65.3435 325.694 66.1152 326.326 66.8922 326.951L67.2055 326.561C67.9802 327.184 68.7602 327.801 69.5454 328.411L69.2386 328.806C70.0259 329.418 70.8186 330.024 71.6164 330.623L71.9166 330.223C72.7113 330.82 73.5111 331.41 74.316 331.994L74.0225 332.399C74.8295 332.984 75.6416 333.563 76.4587 334.135L76.7454 333.725C77.5602 334.295 78.38 334.859 79.2047 335.416L78.9248 335.831C79.7503 336.388 80.5807 336.939 81.416 337.483L81.6889 337.065C82.5218 337.607 83.3596 338.143 84.202 338.672L83.9361 339.096C84.7807 339.626 85.63 340.15 86.484 340.666L86.7428 340.238C87.5927 340.752 88.4472 341.26 89.3062 341.76L89.0547 342.192C89.9161 342.694 90.7822 343.188 91.6527 343.676L91.8971 343.24C92.7646 343.726 93.6366 344.204 94.513 344.676L94.276 345.117C95.1529 345.589 96.0342 346.054 96.9198 346.511L97.1494 346.067C98.0326 346.524 98.92 346.973 99.8117 347.415L99.5896 347.863C100.483 348.306 101.38 348.741 102.282 349.17L102.496 348.718C103.393 349.144 104.294 349.563 105.199 349.975L104.992 350.43C105.9 350.842 106.811 351.248 107.727 351.646L107.926 351.187C108.838 351.583 109.753 351.972 110.673 352.353L110.481 352.815C111.401 353.196 112.324 353.57 113.252 353.937L113.435 353.472C114.36 353.837 115.289 354.195 116.221 354.545L116.045 355.013C116.978 355.364 117.914 355.706 118.854 356.042L119.022 355.571C119.957 355.904 120.895 356.23 121.837 356.548L121.677 357.022C122.622 357.341 123.571 357.653 124.522 357.957L124.674 357.48C125.62 357.782 126.57 358.076 127.523 358.363L127.379 358.842C128.332 359.128 129.288 359.407 130.248 359.678L130.384 359.197C131.341 359.467 132.302 359.73 133.265 359.985L133.137 360.468C134.1 360.722 135.066 360.969 136.034 361.208L136.154 360.722C137.117 360.959 138.084 361.189 139.054 361.411L138.942 361.898C139.915 362.12 140.89 362.335 141.868 362.541L141.972 362.052C142.943 362.257 143.916 362.454 144.893 362.643L144.798 363.134C145.775 363.323 146.755 363.504 147.737 363.677L147.824 363.184C148.803 363.357 149.786 363.521 150.771 363.678L150.693 364.172C151.675 364.328 152.66 364.476 153.648 364.616L153.718 364.121C154.7 364.26 155.685 364.391 156.672 364.515L156.61 365.011C157.6 365.134 158.592 365.25 159.587 365.357L159.641 364.86C160.627 364.966 161.616 365.065 162.606 365.155L162.561 365.653C163.551 365.743 164.544 365.825 165.539 365.899L165.576 365.4C166.568 365.474 167.562 365.54 168.558 365.597L168.53 366.096C169.523 366.154 170.518 366.203 171.515 366.244L171.536 365.744C172.526 365.785 173.518 365.818 174.512 365.842L174.5 366.342C175.497 366.367 176.496 366.383 177.497 366.391L177.501 365.891C178 365.895 178.5 365.897 179 365.897C179.5 365.897 180 365.895 180.499 365.891L180.503 366.391Z",stroke:"white",strokeDasharray:"3 3"}),b.createElement("path",{d:"M323.365 179.881H34.6327C35.1704 100.608 99.5994 36.5112 178.999 36.5112C258.399 36.5112 322.828 100.608 323.365 179.881Z",stroke:"#FFE895",strokeWidth:"2"}),b.createElement("path",{d:"M34.6347 188.394L323.367 188.394C322.83 267.667 258.401 331.764 179.001 331.764C99.6015 331.764 35.1725 267.667 34.6347 188.394Z",stroke:"#FFE895",strokeWidth:"2"}),b.createElement("path",{d:"M285.394 178.796H73.6877C74.2217 120.489 121.414 73.396 179.541 73.396C237.668 73.396 284.86 120.489 285.394 178.796Z",stroke:"#73D9B4",strokeWidth:"2"}),b.createElement("path",{d:"M73.6885 189.479L285.395 189.479C284.86 247.786 237.668 294.879 179.542 294.879C121.415 294.879 74.2226 247.786 73.6885 189.479Z",stroke:"#73D9B4",strokeWidth:"2"}),b.createElement("path",{d:"M177.041 143.34C178.588 142.446 180.494 142.446 182.041 143.34L211.273 160.216C212.82 161.11 213.773 162.76 213.773 164.546V198.3C213.773 200.086 212.82 201.737 211.273 202.63L182.041 219.507C180.494 220.4 178.588 220.4 177.041 219.507L147.81 202.63C146.263 201.737 145.31 200.086 145.31 198.3V164.546C145.31 162.76 146.263 161.11 147.81 160.216L177.041 143.34Z",fill:"#5DC1ED",stroke:"white",strokeWidth:"2"}),b.createElement("path",{d:"M65.9074 107.991C65.4109 108.12 65.1288 108.687 65.2774 109.257L67.6986 118.543C67.8472 119.112 68.3701 119.469 68.8666 119.34C69.3631 119.211 69.6451 118.644 69.4965 118.074L67.3444 109.82L74.5362 107.945C75.0327 107.815 75.3148 107.248 75.1662 106.678C75.0176 106.109 74.4947 105.752 73.9982 105.881L65.9074 107.991ZM65.7309 109.918L178.099 186.628L178.99 184.837L66.6218 108.127L65.7309 109.918Z",fill:"#FFE895"}),b.createElement("path",{d:"M177.832 309.6C178.222 309.991 178.856 309.991 179.246 309.601L185.61 303.244C186.001 302.854 186.001 302.221 185.61 301.83C185.22 301.439 184.587 301.438 184.196 301.828L178.539 307.479L172.882 301.817C172.492 301.426 171.859 301.425 171.468 301.815C171.078 302.205 171.078 302.839 171.468 303.229L177.832 309.6ZM179.539 308.895L179.543 185.748L177.543 185.746L177.539 308.892L179.539 308.895Z",fill:"#FFE895"}),b.createElement("path",{d:"M293.226 108.431C293.375 107.862 293.094 107.294 292.597 107.165L284.508 105.048C284.011 104.918 283.488 105.275 283.339 105.844C283.19 106.414 283.471 106.981 283.968 107.111L291.159 108.992L289 117.244C288.851 117.814 289.132 118.381 289.629 118.511C290.125 118.641 290.648 118.284 290.798 117.715L293.226 108.431ZM178.99 186.619L292.772 109.092L291.883 107.3L178.101 184.827L178.99 186.619Z",fill:"#FFE895"}),b.createElement("path",{d:"M180.082 341.122C193.263 341.122 203.949 337.552 203.949 333.148C203.949 328.745 193.263 325.175 180.082 325.175C166.901 325.175 156.215 328.745 156.215 333.148C156.215 337.552 166.901 341.122 180.082 341.122Z",fill:"#FFE895"}),b.createElement("path",{d:"M203.949 345.694C203.949 350.106 193.341 353.668 180.082 353.668C166.823 353.668 156.215 350.106 156.215 345.694",fill:"#FFE895"}),b.createElement("path",{d:"M203.949 358.239C203.949 362.651 193.341 366.212 180.082 366.212C166.823 366.212 156.215 362.651 156.215 358.239",fill:"#FFE895"}),b.createElement("path",{d:"M156.215 333.148V370.359C156.215 374.771 166.823 378.332 180.082 378.332C193.341 378.332 203.949 374.771 203.949 370.359V333.148",fill:"#FFE895"}),b.createElement("path",{d:"M203.949 333.148C203.949 337.552 193.263 341.122 180.082 341.122C166.901 341.122 156.215 337.552 156.215 333.148M203.949 333.148C203.949 328.745 193.263 325.175 180.082 325.175C166.901 325.175 156.215 328.745 156.215 333.148M203.949 333.148V370.359C203.949 374.771 193.341 378.332 180.082 378.332C166.823 378.332 156.215 374.771 156.215 370.359V333.148M203.949 345.694C203.949 350.106 193.341 353.668 180.082 353.668C166.823 353.668 156.215 350.106 156.215 345.694M203.949 358.239C203.949 362.651 193.341 366.212 180.082 366.212C166.823 366.212 156.215 362.651 156.215 358.239",stroke:"white",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M32.5423 77.5033C45.7235 77.5033 56.409 73.9334 56.409 69.5297C56.409 65.1259 45.7235 61.556 32.5423 61.556C19.3611 61.556 8.67566 65.1259 8.67566 69.5297C8.67566 73.9334 19.3611 77.5033 32.5423 77.5033Z",fill:"#5DC1ED"}),b.createElement("path",{d:"M56.409 82.0754C56.409 86.4875 45.8016 90.0491 32.5423 90.0491C19.2831 90.0491 8.67566 86.4875 8.67566 82.0754",fill:"#5DC1ED"}),b.createElement("path",{d:"M56.409 94.62C56.409 99.0321 45.8016 102.594 32.5423 102.594C19.2831 102.594 8.67566 99.0321 8.67566 94.62",fill:"#5DC1ED"}),b.createElement("path",{d:"M8.67566 69.5297V106.74C8.67566 111.152 19.2831 114.714 32.5423 114.714C45.8016 114.714 56.409 111.152 56.409 106.74V69.5297",fill:"#5DC1ED"}),b.createElement("path",{d:"M56.409 69.5297C56.409 73.9334 45.7235 77.5033 32.5423 77.5033C19.3611 77.5033 8.67566 73.9334 8.67566 69.5297M56.409 69.5297C56.409 65.1259 45.7235 61.556 32.5423 61.556C19.3611 61.556 8.67566 65.1259 8.67566 69.5297M56.409 69.5297V106.74C56.409 111.152 45.8016 114.714 32.5423 114.714C19.2831 114.714 8.67566 111.152 8.67566 106.74V69.5297M56.409 82.0754C56.409 86.4875 45.8016 90.0491 32.5423 90.0491C19.2831 90.0491 8.67566 86.4875 8.67566 82.0754M56.409 94.62C56.409 99.0321 45.8016 102.594 32.5423 102.594C19.2831 102.594 8.67566 99.0321 8.67566 94.62",stroke:"white",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M326.535 77.5033C339.716 77.5033 350.402 73.9334 350.402 69.5297C350.402 65.1259 339.716 61.556 326.535 61.556C313.354 61.556 302.668 65.1259 302.668 69.5297C302.668 73.9334 313.354 77.5033 326.535 77.5033Z",fill:"#73D9B4"}),b.createElement("path",{d:"M350.402 82.0754C350.402 86.4875 339.794 90.0491 326.535 90.0491C313.276 90.0491 302.668 86.4875 302.668 82.0754",fill:"#73D9B4"}),b.createElement("path",{d:"M350.402 94.62C350.402 99.0321 339.794 102.594 326.535 102.594C313.276 102.594 302.668 99.0321 302.668 94.62",fill:"#73D9B4"}),b.createElement("path",{d:"M302.668 69.5297V106.74C302.668 111.152 313.276 114.714 326.535 114.714C339.794 114.714 350.402 111.152 350.402 106.74V69.5297",fill:"#73D9B4"}),b.createElement("path",{d:"M350.402 69.5297C350.402 73.9334 339.716 77.5033 326.535 77.5033C313.354 77.5033 302.668 73.9334 302.668 69.5297M350.402 69.5297C350.402 65.1259 339.716 61.556 326.535 61.556C313.354 61.556 302.668 65.1259 302.668 69.5297M350.402 69.5297V106.74C350.402 111.152 339.794 114.714 326.535 114.714C313.276 114.714 302.668 111.152 302.668 106.74V69.5297M350.402 82.0754C350.402 86.4875 339.794 90.0491 326.535 90.0491C313.276 90.0491 302.668 86.4875 302.668 82.0754M350.402 94.62C350.402 99.0321 339.794 102.594 326.535 102.594C313.276 102.594 302.668 99.0321 302.668 94.62",stroke:"white",strokeLinecap:"round",strokeLinejoin:"round"})),$e=b.createElement("svg",{width:"449",height:"460",viewBox:"0 0 449 460",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M199.744 172.422L150.154 143.814V86.5952L199.741 115.2L199.744 172.422Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.33 86.5953L199.744 115.203L150.154 86.5986L199.741 57.991L249.33 86.5953Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 172.419L249.33 143.811V86.5989L199.747 115.203L199.744 172.419Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 279.597L88.1672 250.986V193.771L137.754 222.375L137.757 279.597Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 193.771L137.757 222.378L88.1672 193.771L137.757 165.167L187.347 193.771Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 279.594L187.343 250.986V193.774L137.76 222.375L137.757 279.594Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.115L88.1672 179.504V122.289L137.754 150.893L137.757 208.115Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 122.289L137.757 150.897L88.1672 122.289L137.757 93.6848L187.347 122.289Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.112L187.343 179.504V122.292L137.76 150.893L137.757 208.112Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 279.628L212.139 251.017V193.802L261.725 222.406L261.728 279.628Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.318 193.802L261.729 222.409L212.142 193.802L261.729 165.197L311.318 193.802Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 279.624L311.314 251.017V193.805L261.731 222.406L261.728 279.624Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 279.628L212.139 251.017V193.802L261.725 222.406L261.728 279.628Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.318 193.802L261.729 222.409L212.142 193.802L261.729 165.197L311.318 193.802Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 208.146L212.139 179.538V122.32L261.725 150.924L261.728 208.146Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.318 122.32L261.729 150.927L212.142 122.323L261.729 93.7153L311.318 122.32Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 208.142L311.314 179.535V122.323L261.731 150.927L261.728 208.142Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 315.376L150.154 286.768V229.552L199.741 258.157L199.744 315.376Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.334 229.553L199.744 258.16L150.154 229.553L199.744 200.945L249.334 229.553Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 315.372L249.33 286.768V229.556L199.747 258.157L199.744 315.372Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 243.894L150.154 215.286V158.071L199.741 186.675L199.744 243.894Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.334 158.071L199.744 186.678L150.154 158.071L199.744 129.463L249.334 158.071Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 243.891L249.33 215.286V158.074L199.747 186.675L199.744 243.891Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7734 243.904L26.1802 215.296V158.081L75.77 186.685L75.7734 243.904Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M125.36 158.081L75.7735 186.688L26.1838 158.081L75.7701 129.473L125.36 158.081Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7735 243.9L125.36 215.296V158.081L75.7769 186.685L75.7735 243.9Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 351.11L88.1672 322.499V265.283L137.754 293.888L137.757 351.11Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 265.284L137.757 293.891L88.1672 265.287L137.757 236.679L187.347 265.284Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 351.107L187.343 322.499V265.287L137.76 293.888L137.757 351.107Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 351.11L88.1672 322.499V265.283L137.754 293.888L137.757 351.11Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 265.284L137.757 293.891L88.1672 265.287L137.757 236.679L187.347 265.284Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 279.628L88.1672 251.02V193.802L137.754 222.409L137.757 279.628Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 193.805L137.757 222.413L88.1672 193.805L137.757 165.197L187.347 193.805Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 279.624L187.343 251.017V193.805L137.76 222.409L137.757 279.624Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7732 386.861L26.1834 358.25V301.034L75.7698 329.639L75.7732 386.861Z",fill:"#141414",stroke:"#D8D3E7",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M125.363 301.034L75.7732 329.642L26.1834 301.034L75.7732 272.43L125.363 301.034Z",fill:"#141414",stroke:"#D8D3E7",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7731 386.858L125.36 358.25V301.038L75.7765 329.639L75.7731 386.858Z",fill:"#141414",stroke:"#D8D3E7",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7731 315.379L26.1833 286.768V229.552L75.7697 258.157L75.7731 315.379Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M125.363 229.553L75.7731 258.16L26.1833 229.553L75.7731 200.948L125.363 229.553Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7729 315.376L125.359 286.768V229.556L75.7763 258.157L75.7729 315.376Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M50.5899 329.937L1.00018 301.326V244.11L50.5865 272.715L50.5899 329.937Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M100.18 244.11L50.5899 272.718L1.00012 244.11L50.5899 215.506L100.18 244.11Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M50.5899 329.933L100.176 301.326V244.114L50.5933 272.715L50.5899 329.933Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M323.719 243.948L274.129 215.34V158.125L323.715 186.729L323.719 243.948Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M373.308 158.125L323.719 186.732L274.129 158.125L323.715 129.517L373.308 158.125Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M323.719 243.944L373.305 215.34V158.128L323.722 186.729L323.719 243.944Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 351.124L212.142 322.516V265.298L261.728 293.902L261.731 351.124Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 265.301L261.732 293.905L212.146 265.301L261.732 236.693L311.322 265.301Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 351.12L311.318 322.513V265.301L261.735 293.905L261.731 351.12Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 279.641L212.142 251.033V193.815L261.728 222.419L261.731 279.641Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 193.818L261.732 222.422L212.146 193.818L261.732 165.21L311.322 193.818Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 279.638L311.318 251.03V193.818L261.735 222.422L261.731 279.638Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M323.722 315.423L274.129 286.812V229.596L323.719 258.201L323.722 315.423Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M373.309 229.596L323.722 258.204L274.133 229.6L323.719 200.992L373.309 229.596Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M323.722 315.42L373.309 286.812V229.6L323.722 258.201V315.42Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 315.433L150.158 286.822V229.607L199.744 258.211L199.747 315.433Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.337 229.607L199.747 258.214L150.158 229.607L199.744 201.002L249.337 229.607Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 315.43L249.334 286.822V229.61L199.751 258.211L199.747 315.43Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.001 422.169L87.4117 393.558L88.1706 336.782L137.757 365.387L137.001 422.169Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.35 336.782L137.761 365.39L88.1743 336.782L137.761 308.175L187.35 336.782Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.76 422.602L187.347 393.998V336.786L137.764 365.387L137.76 422.602Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.761 351.124L88.1708 322.516V265.301L137.757 293.905L137.761 351.124Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.351 265.301L137.761 293.908L88.1749 265.301L137.761 236.693L187.351 265.301Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.761 351.12L187.347 322.516V265.301L137.764 293.905L137.761 351.12Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 422.636L212.142 394.028V336.809L261.731 365.414L261.735 422.636Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 336.813L261.735 365.417L212.146 336.813L261.732 308.205L311.322 336.813Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 422.633L311.321 394.025V336.813L261.735 365.417V422.633Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 422.636L212.142 394.028V336.809L261.731 365.414L261.735 422.636Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 336.813L261.735 365.417L212.146 336.813L261.732 308.205L311.322 336.813Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 351.157L212.142 322.546V265.331L261.731 293.935L261.735 351.157Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 265.331L261.735 293.939L212.146 265.331L261.732 236.727L311.322 265.331Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 351.154L311.321 322.546V265.334L261.735 293.935V351.154Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 386.905L150.158 358.297V301.078L199.747 329.683V386.905Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.338 301.082L199.751 329.686L150.162 301.082L199.748 272.474L249.338 301.082Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 386.902L249.334 358.294V301.082L199.751 329.686L199.747 386.902Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M63.5898 115.431L14 86.823V29.6042L63.5864 58.2085L63.5898 115.431Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M113.176 29.6043L63.5898 58.212L14 29.6077L63.5864 1L113.176 29.6043Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M63.5897 115.427L113.176 86.8196V29.6077L63.5931 58.212L63.5897 115.427Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M398.59 423.431L349 394.823V337.604L398.586 366.209L398.59 423.431Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M448.176 337.604L398.59 366.212L349 337.608L398.586 309L448.176 337.604Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M398.59 423.427L448.176 394.82V337.608L398.593 366.212L398.59 423.427Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M199.744 172.385L150.154 143.777V86.5615L199.741 115.166L199.744 172.385Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.334 86.5615L199.744 115.169L150.154 86.5615L199.744 57.9539L249.334 86.5615Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 172.381L249.33 143.777V86.5649L199.747 115.166L199.744 172.381Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.119L88.1672 179.508V122.292L137.754 150.897L137.757 208.119Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 122.292L137.757 150.9L88.1672 122.296L137.757 93.688L187.347 122.292Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.115L187.343 179.508V122.296L137.76 150.897L137.757 208.115Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.119L88.1672 179.508V122.292L137.754 150.897L137.757 208.119Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 122.292L137.757 150.9L88.1672 122.296L137.757 93.688L187.347 122.292Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7732 243.87L26.1834 215.259V158.043L75.7698 186.648L75.7732 243.87Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M125.363 158.044L75.7732 186.651L26.1834 158.044L75.7732 129.439L125.363 158.044Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7731 243.867L125.36 215.259V158.047L75.7765 186.648L75.7731 243.867Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 208.133L212.142 179.525V122.306L261.728 150.91L261.731 208.133Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 122.31L261.732 150.914L212.146 122.31L261.732 93.7019L311.322 122.31Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 208.129L311.318 179.521V122.309L261.735 150.914L261.731 208.129Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M343.413 231.993L293.82 203.382V146.167L343.41 174.771L343.413 231.993Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M393 146.167L343.414 174.775L293.824 146.17L343.411 117.563L393 146.167Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M343.414 231.99L393 203.382V146.17L343.414 174.771V231.99Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 279.645L212.142 251.037V193.818L261.731 222.423L261.735 279.645Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 193.822L261.735 222.426L212.146 193.822L261.732 165.214L311.322 193.822Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 279.641L311.321 251.034V193.822L261.735 222.426V279.641Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.715 219.875L150.122 191.263V134.048L199.712 162.652L199.715 219.875Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.302 134.048L199.716 162.656L150.126 134.052L199.712 105.444L249.302 134.048Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.715 219.871L249.301 191.263V134.051L199.715 162.652V219.871Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.001 279.178L87.4117 250.567L88.1706 193.791L137.757 222.396L137.001 279.178Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.35 193.791L137.761 222.399L88.1743 193.791L137.761 165.184L187.35 193.791Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.76 279.611L187.347 251.006V193.794L137.764 222.395L137.76 279.611Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 279.645L212.142 251.037V193.818L261.731 222.423L261.735 279.645Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 193.822L261.735 222.426L212.146 193.822L261.732 165.214L311.322 193.822Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 315.396L150.158 286.788V229.569L199.747 258.174V315.396Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.338 229.573L199.751 258.177L150.162 229.573L199.748 200.965L249.338 229.573Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 315.393L249.334 286.785V229.573L199.751 258.177L199.747 315.393Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 458.387L150.158 429.779V372.561L199.747 401.165V458.387Z",fill:"#238AB5",stroke:"white",strokeWidth:"2",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.338 372.564L199.751 401.168L150.162 372.564L199.748 343.956L249.338 372.564Z",fill:"#B2DFF2",stroke:"white",strokeWidth:"2",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 458.384L249.334 429.776V372.564L199.751 401.168L199.747 458.384Z",fill:"#5DC1ED",stroke:"white",strokeWidth:"2",strokeLinejoin:"round"}));var qe=n(78672);const _e={toc:[]};function et(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},_e,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"In the following years, we will definitely migrate more clusters from MySQL to TiDB, use TiCDC to set up multi-region clusters on AWS for failover, and try TiFlash for instant analytical ",(0,Be.kt)("strong",{parentName:"p"},"queries"),"."))}et.isMDXComponent=!0;const tt=b.createElement("svg",{width:"72",height:"73",viewBox:"0 0 72 73",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36.9141",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M48.6863 26.1738L54.3276 47.4095L45.3686 49.732V62.0086C41.166 61.7874 31.6991 59.4869 27.452 52.0546",stroke:"#AE621B",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M27.1193 22.5239H17.4978",stroke:"#AE621B",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),nt="@Kaustav Chakravorty",rt="Senior Architect, Flipkart",ot="Logistics",it="#E3A15236",lt="#DD7514",at={toc:[]};function st(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},at,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"TiDB's architecture, sort of a SQL layer on top of a key value store, was ",(0,Be.kt)("strong",{parentName:"p"},"more scalable")," and more likely to cause fewer problems down the line. With TiDB, we don't need to worry about cross-charge transactions. That's huge."))}st.isMDXComponent=!0;const ct=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M32.3814 29.7871V57.7181",stroke:"#2E6BE5",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("circle",{cx:"16.3456",cy:"28.266",r:"3.06995",stroke:"#2E6BE5",strokeWidth:"6"}),b.createElement("path",{d:"M43.3389 28.322H58.6959",stroke:"#2E6BE5",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),Lt="@Henry Qin",dt="Software Engineer",ut="FinTech",mt="#9990FF36",pt="#2E6BE5",ht={toc:[]};function Ct(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},ht,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"The ease and comfort of getting started are paramount for us, and the ",(0,Be.kt)("strong",{parentName:"p"},"fully managed")," operations of TiDB Serverless allow us to focus more on our core business, ensuring that our development resources are utilized where they matter most."))}Ct.isMDXComponent=!0;const kt=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M26.5031 15.809L13.9319 47.3409L26.5031 49.7643V62.5739C32.4001 62.3431 45.6839 59.9428 51.6433 52.1877",stroke:"#52CC7A",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("circle",{cx:"46.9818",cy:"24.0155",r:"5.97791",fill:"#52CC7A"})),Et="@Sky Dong",gt="Founding Engineer, Chaintool",ft="Web 3",wt="#C1FF9036",vt="#52CC7A",yt={toc:[]};function xt(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},yt,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"We heavily utilized TiDB's serverless feature to power our backend. This allowed us to scale our backend to handle thousands of requests per second effortlessly while keeping ",(0,Be.kt)("strong",{parentName:"p"},"costs low"),", as we only pay for what we use."))}xt.isMDXComponent=!0;const bt=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M23.4191 22.196L10.2882 32.8647M48.0388 25.4788L59.1177 35.7371",stroke:"#A711ED",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M34.703 35.7375L27.0515 43.3897L34.703 48.9554",stroke:"#A711ED",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),Ft="@Eliotte",Mt="Hackathon AI Track Winner, Quizmefy",Zt="AI App",Vt="#C8BAF036",Wt="#AA95FF",Dt={toc:[]};function Ht(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},Dt,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"The NO.1 benefit is ",(0,Be.kt)("strong",{parentName:"p"},"simplicity"),". With TiDB, our applications can retain their SQL data model and the ACID guarantees. We don't have to implement any kind of sharding logic, and the database management becomes simpler too."))}Ht.isMDXComponent=!0;const Bt=b.createElement("svg",{width:"72",height:"73",viewBox:"0 0 72 73",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36.9141",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M33.6494 19.3936C40.1424 27.0686 51.1805 44.0127 43.3889 50.3887C35.5973 56.7648 31.3308 53.0454 30.1716 50.3887",stroke:"#129B93",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M12.1457 33.3175C11.4264 29.883 10.9528 22.8213 14.8119 22.051C18.671 21.2806 22.5151 26.4658 23.9547 29.1546",stroke:"#129B93",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),jt="@Kaustav Chakravorty",At="Senior Architect, Flipkart",Tt="E-Commerce",St="#56B28636",It="#1CCFBC",Pt={toc:[]};function Rt(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},Pt,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"TiDB Serverless is especially beneficial for experimental or early-stage features. It's ",(0,Be.kt)("strong",{parentName:"p"},"cost-effective")," for startups, scalable, and development-friendly."))}Rt.isMDXComponent=!0;const Nt=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("ellipse",{cx:"47.1453",cy:"23.8925",rx:"5.96479",ry:"6.10095",stroke:"#F2AA18",strokeWidth:"6"}),b.createElement("path",{d:"M30.3556 20.884C25.5692 32.667 18.5591 56.498 28.81 57.5586",stroke:"#F2AA18",strokeWidth:"6",strokeLinecap:"round"})),zt="@Thomas Yu",Ot="Founder, KNN3 Networks",Xt="Web 3",Qt="#D6B12C36",Jt="#FFE790",Yt={toc:[]};function Gt(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},Yt,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"With TiDB Serverless, setting up a database is as easy as clicking a button. It handles analytics ",(0,Be.kt)("strong",{parentName:"p"},"seamlessly"),", without the need for manual scaling."))}Gt.isMDXComponent=!0;const Ut=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M34.7616 23.8372C35.5823 27.9405 36.321 36.5575 32.71 38.1988C28.1962 40.2504 22.0413 43.1231 23.2723 45.9954C24.2571 48.2932 29.9744 50.509 32.71 51.3297",stroke:"#E65C5C",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M13.4247 27.5308L22.4523 23.0173L24.5037 27.5308",stroke:"#E65C5C",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M56.977 29.7872L48.2848 25.2737L46.3096 29.7872",stroke:"#E65C5C",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),Kt="@Godwin",$t="Project Owner of AI-Mon",qt="AI App",_t="#FF909036",en="#FF8888",tn={toc:[]};function nn(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},tn,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"Scale-in and scale-out in a cluster configuration is also ",(0,Be.kt)("strong",{parentName:"p"},"easy"),", and the ecosystem is very rich, with operation monitoring tools such as Grafana being able to be installed immediately with the installation command (TiUP)."))}nn.isMDXComponent=!0;const rn=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M22.1947 12.9844C18.3239 20.7492 11.3819 36.6637 14.5807 38.203C17.7796 39.7422 27.1957 40.1995 31.5039 40.2357C33.936 47.3554 38.8002 61.5947 38.8002 61.5947",stroke:"#11A6ED",strokeWidth:"6",strokeLinecap:"round"}),b.createElement("circle",{cx:"47.1448",cy:"23.7563",r:"5.96479",stroke:"#0EA6F1",strokeWidth:"6"})),on="@Kentaro Kitagawa",ln="Senior DBA, LINE Corporation",an="Internet",sn="#3BBDFB36",cn="#11A6ED",Ln={toc:[]};function dn(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},Ln,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("p",null,"TiDB Serverless's ",(0,Be.kt)("strong",{parentName:"p"},"automatic scaling")," capabilities allow us to swiftly scale up to meet performance demands and scale down during quieter periods for optimizing costs."))}dn.isMDXComponent=!0;const un=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M35.4805 21.6723L18.9297 39.4198C18.0909 40.3882 16.7792 42.5791 18.2429 43.5944C19.7067 44.6098 26.8324 46.6211 30.2124 47.4999L28.3292 58.9467",stroke:"#A9C941",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"})),mn="@Yaohui Sun",pn="Data Platform Lead, Chainbase",hn="Web 3",Cn="#A9C94136",kn="#A9C941";function En(){return b.createElement(ue,null,b.createElement(me,null,b.createElement(pe,null,"We Build with ",b.createElement("a",{href:"https://www.pingcap.com/tidb-cloud-serverless/?utm_source=ossinsight&utm_medium=referral&utm_campaign=plg_OSScontribution_credit_05",target:"_blank",rel:"noreferrer"},"TiDB")),b.createElement(qe.ZP,{sequential:!0,sx:{mt:7,listStyle:"none"},component:"ul",columns:[1,1,2,3],spacing:3},gn.map(((e,t)=>b.createElement(fn,{key:t,style:{"--color1":e.color,"--color2":e.backgroundColor}},b.createElement(wn,null,e.avatar,b.createElement(vn,null,b.createElement(yn,null,e.name),b.createElement(xn,null,e.bio),b.createElement(bn,null,e.label))),b.createElement(p.Z,{sx:{display:"flex",pt:2}},b.createElement("svg",{style:{flexShrink:0,marginRight:8},width:"20",height:"30",viewBox:"0 0 20 30",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M2 22V14.496C2 12.5547 2.61407 10.912 3.8081 9.75467C4.6951 8.82133 5.47974 8.41067 7.11727 8L8.61834 10.8373C7.28785 11.0613 6.60554 11.36 5.92324 11.9947C5.30917 12.5547 5.07036 13.152 4.96802 14.496H8.89126V22H2ZM11.1429 22V14.496C11.1429 12.5547 11.7569 10.912 12.9168 9.75467C13.838 8.82133 14.6226 8.41067 16.226 8L17.7271 10.8373C16.3966 11.0613 15.7143 11.36 15.0661 11.9947C14.4179 12.5547 14.2132 13.152 14.1109 14.496H18V22H11.1429Z",fill:"white"})),b.createElement(Fn,null,b.createElement(e.content,null)))))))))}const gn=[r,o,i,l,a,s,c,L,d],fn=(0,w.ZP)("li")` +`,Ue=b.createElement("svg",{width:"358",height:"379",viewBox:"0 0 358 379",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M177.497 0.805861C176.496 0.814093 175.497 0.830541 174.5 0.855141L174.512 1.35499C173.518 1.37952 172.526 1.41218 171.536 1.45291L171.515 0.953334C170.518 0.994358 169.523 1.04354 168.53 1.10082L168.558 1.59999C167.562 1.65747 166.568 1.72312 165.576 1.79687L165.539 1.29825C164.544 1.37221 163.551 1.4543 162.561 1.54445L162.606 2.04239C161.616 2.13262 160.627 2.23094 159.641 2.33729L159.587 1.84018C158.592 1.94746 157.6 2.0629 156.61 2.18643L156.672 2.68258C155.685 2.80576 154.7 2.937 153.718 3.07623L153.648 2.58118C152.66 2.72122 151.675 2.86932 150.692 3.02542L150.771 3.51922C149.786 3.67573 148.803 3.8403 147.824 4.01286L147.737 3.52044C146.755 3.69349 145.775 3.87454 144.798 4.06354L144.893 4.55444C143.916 4.74341 142.942 4.94035 141.972 5.14518L141.868 4.65595C140.89 4.86233 139.915 5.07671 138.942 5.29901L139.054 5.78643C138.084 6.0081 137.117 6.23767 136.154 6.47506L136.034 5.98958C135.065 6.22825 134.1 6.4748 133.137 6.72917L133.265 7.21257C132.302 7.46724 131.341 7.72976 130.384 8.00006L130.248 7.51888C129.288 7.78995 128.332 8.06882 127.379 8.35542L127.523 8.83424C126.57 9.12075 125.62 9.415 124.674 9.71692L124.522 9.24059C123.57 9.54434 122.622 9.85583 121.677 10.175L121.837 10.6487C120.895 10.967 119.957 11.2929 119.022 11.6264L118.854 11.1554C117.914 11.4907 116.978 11.8335 116.045 12.184L116.221 12.652C115.289 13.0023 114.36 13.3602 113.435 13.7256L113.252 13.2606C112.324 13.627 111.401 14.0009 110.481 14.3823L110.672 14.8442C109.753 15.2254 108.838 15.6141 107.926 16.0101L107.727 15.5516C106.811 15.9494 105.9 16.3547 104.992 16.7674L105.199 17.2226C104.294 17.6341 103.393 18.0529 102.496 18.479L102.282 18.0274C101.38 18.4557 100.483 18.8913 99.5895 19.3341L99.8116 19.7821C98.9199 20.2242 98.0325 20.6735 97.1493 21.13L96.9197 20.6859C96.0341 21.1437 95.1528 21.6086 94.2759 22.0807L94.5129 22.5209C93.6365 22.9927 92.7645 23.4716 91.8969 23.9575L91.6526 23.5213C90.7821 24.0089 89.916 24.5036 89.0546 25.0052L89.3062 25.4373C88.4471 25.9376 87.5926 26.4448 86.7427 26.9589L86.4839 26.5311C85.6299 27.0477 84.7806 27.5712 83.936 28.1016L84.2019 28.525C83.3595 29.0541 82.5217 29.59 81.6888 30.1326L81.4159 29.7137C80.5806 30.2579 79.7502 30.8088 78.9247 31.3665L79.2046 31.7808C78.3799 32.3379 77.5601 32.9017 76.7453 33.4722L76.4586 33.0626C75.6415 33.6346 74.8294 34.2133 74.0224 34.7986L74.3159 35.2034C73.5111 35.7871 72.7112 36.3774 71.9166 36.9741L71.6163 36.5743C70.8185 37.1734 70.0259 37.7791 69.2385 38.3911L69.5453 38.7859C68.7601 39.3963 67.9801 40.013 67.2055 40.6361L66.8921 40.2465C66.1151 40.8715 65.3434 41.5028 64.5772 42.1405L64.897 42.5248C64.1324 43.161 63.3732 43.8036 62.6194 44.4523L62.2933 44.0733C61.5374 44.7238 60.7871 45.3805 60.0423 46.0434L60.3747 46.4169C59.6319 47.078 58.8947 47.7452 58.163 48.4185L57.8245 48.0505C57.0906 48.7258 56.3624 49.4072 55.6399 50.0945L55.9846 50.4568C55.2641 51.1422 54.5494 51.8336 53.8405 52.5309L53.4898 52.1744C52.7789 52.8736 52.0738 53.5787 51.3746 54.2896L51.7311 54.6402C51.0339 55.3491 50.3425 56.0639 49.657 56.7843L49.2948 56.4397C48.6075 57.1622 47.9261 57.8904 47.2508 58.6242L47.6187 58.9628C46.9455 59.6944 46.2782 60.4317 45.6171 61.1745L45.2436 60.8421C44.5808 61.5869 43.9241 62.3372 43.2736 63.093L43.6525 63.4192C43.0038 64.1729 42.3613 64.9322 41.725 65.6968L41.3407 65.377C40.7031 66.1432 40.0718 66.9149 39.4468 67.6918L39.8364 68.0052C39.2133 68.7799 38.5965 69.5599 37.9861 70.3451L37.5914 70.0382C36.9793 70.8256 36.3737 71.6183 35.7746 72.4161L36.1744 72.7163C35.5776 73.511 34.9873 74.3108 34.4036 75.1157L33.9988 74.8222C33.4136 75.6292 32.8349 76.4413 32.2628 77.2583L32.6724 77.5451C32.102 78.3599 31.5382 79.1797 30.9811 80.0044L30.5667 79.7245C30.0091 80.55 29.4581 81.3804 28.9139 82.2157L29.3329 82.4886C28.7902 83.3215 28.2543 84.1592 27.7253 85.0017L27.3018 84.7358C26.7715 85.5804 26.2479 86.4297 25.7313 87.2837L26.1591 87.5425C25.645 88.3924 25.1378 89.2469 24.6376 90.1059L24.2055 89.8543C23.7038 90.7158 23.2092 91.5819 22.7216 92.4524L23.1578 92.6967C22.6719 93.5643 22.193 94.4363 21.7212 95.3127L21.2809 95.0757C20.8089 95.9526 20.3439 96.8339 19.8861 97.7195L20.3303 97.9491C19.8738 98.8323 19.4245 99.7197 18.9824 100.611L18.5344 100.389C18.0916 101.282 17.656 102.18 17.2277 103.081L17.6793 103.296C17.2532 104.193 16.8344 105.094 16.4228 105.999L15.9677 105.792C15.555 106.699 15.1497 107.611 14.7518 108.527L15.2104 108.726C14.8144 109.638 14.4257 110.553 14.0445 111.472L13.5826 111.281C13.2012 112.2 12.8273 113.124 12.4609 114.051L12.9259 114.235C12.5605 115.16 12.2026 116.088 11.8523 117.021L11.3843 116.845C11.0338 117.777 10.6909 118.714 10.3557 119.653L10.8266 119.821C10.4932 120.756 10.1672 121.695 9.84897 122.637L9.37527 122.477C9.05611 123.422 8.74462 124.37 8.44088 125.322L8.91721 125.474C8.61529 126.42 8.32104 127.37 8.03453 128.322L7.55571 128.178C7.26911 129.132 6.99024 130.088 6.71917 131.048L7.20035 131.184C6.93005 132.141 6.66753 133.101 6.41287 134.065L5.92947 133.937C5.6751 134.9 5.42854 135.865 5.18988 136.834L5.67536 136.954C5.43797 137.917 5.2084 138.884 4.98673 139.853L4.4993 139.742C4.27701 140.714 4.06263 141.69 3.85624 142.668L4.34547 142.771C4.14065 143.742 3.94371 144.716 3.75474 145.693L3.26384 145.598C3.07484 146.575 2.89379 147.554 2.72074 148.537L3.21316 148.624C3.0406 149.603 2.87604 150.586 2.71952 151.571L2.22572 151.492C2.06962 152.475 1.92152 153.46 1.78148 154.448L2.27653 154.518C2.1373 155.5 2.00606 156.485 1.88288 157.472L1.38673 157.41C1.26321 158.4 1.14777 159.392 1.04048 160.387L1.5376 160.441C1.43125 161.427 1.33293 162.415 1.24271 163.406L0.744765 163.361C0.654612 164.351 0.572522 165.344 0.498561 166.338L0.997185 166.375C0.92343 167.367 0.857783 168.362 0.800308 169.358L0.301138 169.329C0.243858 170.322 0.194674 171.318 0.153651 172.315L0.653228 172.335C0.612501 173.326 0.579839 174.318 0.555307 175.312L0.0554587 175.3C0.0308585 176.297 0.0144103 177.296 0.00617816 178.297L0.506161 178.301C0.503425 178.634 0.501599 178.967 0.500685 179.3H1.49167V179.8H4.475V179.3H7.45833V179.8H10.4417V179.3H13.425V179.8H16.4083V179.3H19.3917V179.8H22.375V179.3H25.3583V179.8H28.3417V179.3H31.325V179.8H34.3083V179.3H37.2917V179.8H40.275V179.3H43.2583V179.8H46.2417V179.3H49.225V179.8H52.2083V179.3H55.1917V179.8H58.175V179.3H61.1583V179.8H64.1417V179.3H67.125V179.8H70.1083V179.3H73.0917V179.8H76.075V179.3H79.0583V179.8H82.0416V179.3H85.025V179.8H88.0083V179.3H90.9916V179.8H93.975V179.3H96.9583V179.8H99.9416V179.3H102.925V179.8H105.908V179.3H108.892V179.8H111.875V179.3H114.858V179.8H117.842V179.3H120.825V179.8H123.808V179.3H126.792V179.8H129.775V179.3H132.758V179.8H135.742V179.3H138.725V179.8H141.708V179.3H144.692V179.8H147.675V179.3H150.658V179.8H153.642V179.3H156.625V179.8H159.608V179.3H162.592V179.8H165.575V179.3H168.558V179.8H171.542V179.3H174.525V179.8H177.508V179.3H180.492V179.8H183.475V179.3H186.458V179.8H189.442V179.3H192.425V179.8H195.408V179.3H198.392V179.8H201.375V179.3H204.358V179.8H207.342V179.3H210.325V179.8H213.308V179.3H216.292V179.8H219.275V179.3H222.258V179.8H225.242V179.3H228.225V179.8H231.208V179.3H234.192V179.8H237.175V179.3H240.158V179.8H243.142V179.3H246.125V179.8H249.108V179.3H252.092V179.8H255.075V179.3H258.058V179.8H261.042V179.3H264.025V179.8H267.008V179.3H269.992V179.8H272.975V179.3H275.958V179.8H278.942V179.3H281.925V179.8H284.908V179.3H287.892V179.8H290.875V179.3H293.858V179.8H296.842V179.3H299.825V179.8H302.809V179.3H305.792V179.8H308.775V179.3H311.759V179.8H314.742V179.3H317.725V179.8H320.709V179.3H323.692V179.8H326.675V179.3H329.659V179.8H332.642V179.3H335.625V179.8H338.609V179.3H341.592V179.8H344.575V179.3H347.559V179.8H350.542V179.3H353.525V179.8H356.509V179.3H357.499C357.498 178.967 357.497 178.634 357.494 178.301L357.994 178.297C357.986 177.296 357.969 176.297 357.945 175.3L357.445 175.312C357.42 174.318 357.388 173.326 357.347 172.335L357.846 172.315C357.805 171.318 357.756 170.322 357.699 169.329L357.2 169.358C357.142 168.362 357.077 167.367 357.003 166.375L357.501 166.338C357.427 165.343 357.345 164.351 357.255 163.361L356.757 163.406C356.667 162.415 356.569 161.427 356.462 160.44L356.96 160.387C356.852 159.392 356.737 158.4 356.613 157.41L356.117 157.472C355.994 156.484 355.863 155.5 355.723 154.518L356.219 154.448C356.078 153.46 355.93 152.475 355.774 151.492L355.28 151.571C355.124 150.586 354.959 149.603 354.787 148.623L355.279 148.537C355.106 147.554 354.925 146.575 354.736 145.598L354.245 145.693C354.056 144.716 353.859 143.742 353.655 142.771L354.144 142.668C353.937 141.69 353.723 140.714 353.501 139.742L353.013 139.853C352.792 138.884 352.562 137.917 352.325 136.953L352.81 136.834C352.571 135.865 352.325 134.9 352.071 133.937L351.587 134.065C351.332 133.101 351.07 132.141 350.8 131.184L351.281 131.048C351.01 130.088 350.731 129.132 350.444 128.178L349.965 128.322C349.679 127.369 349.385 126.42 349.083 125.474L349.559 125.322C349.255 124.37 348.944 123.422 348.625 122.477L348.151 122.637C347.833 121.695 347.507 120.756 347.173 119.821L347.644 119.653C347.309 118.713 346.966 117.777 346.616 116.845L346.148 117.02C345.797 116.088 345.439 115.16 345.074 114.235L345.539 114.051C345.173 113.124 344.799 112.2 344.417 111.281L343.956 111.472C343.574 110.553 343.186 109.637 342.79 108.726L343.248 108.527C342.85 107.611 342.445 106.699 342.032 105.792L341.577 105.999C341.166 105.094 340.747 104.193 340.321 103.296L340.772 103.081C340.344 102.18 339.908 101.282 339.466 100.389L339.018 100.611C338.575 99.7196 338.126 98.8322 337.67 97.949L338.114 97.7194C337.656 96.8338 337.191 95.9525 336.719 95.0756L336.279 95.3126C335.807 94.4362 335.328 93.5642 334.842 92.6966L335.278 92.4523C334.791 91.5818 334.296 90.7157 333.794 89.8542L333.362 90.1059C332.862 89.2468 332.355 88.3923 331.841 87.5424L332.269 87.2836C331.752 86.4296 331.228 85.5803 330.698 84.7357L330.275 85.0016C329.746 84.1591 329.21 83.3214 328.667 82.4885L329.086 82.2156C328.542 81.3803 327.991 80.5499 327.433 79.7244L327.019 80.0043C326.462 79.1796 325.898 78.3598 325.328 77.545L325.737 77.2582C325.165 76.4412 324.586 75.6291 324.001 74.8221L323.596 75.1156C323.013 74.3107 322.422 73.5109 321.826 72.7162L322.225 72.416C321.626 71.6182 321.021 70.8255 320.409 70.0381L320.014 70.345C319.403 69.5598 318.787 68.7798 318.164 68.0051L318.553 67.6918C317.928 66.9148 317.297 66.1431 316.659 65.3769L316.275 65.6967C315.639 64.9321 314.996 64.1729 314.347 63.4191L314.726 63.093C314.076 62.3371 313.419 61.5868 312.756 60.842L312.383 61.1744C311.722 60.4316 311.054 59.6943 310.381 58.9627L310.749 58.6241C310.074 57.8903 309.392 57.1621 308.705 56.4396L308.343 56.7843C307.657 56.0638 306.966 55.3491 306.269 54.6401L306.625 54.2895C305.926 53.5786 305.221 52.8735 304.51 52.1743L304.159 52.5308C303.451 51.8335 302.736 51.1422 302.015 50.4567L302.36 50.0945C301.638 49.4071 300.909 48.7258 300.175 48.0505L299.837 48.4184C299.105 47.7451 298.368 47.0779 297.625 46.4168L297.958 46.0433C297.213 45.3805 296.462 44.7237 295.707 44.0732L295.38 44.4522C294.627 43.8035 293.868 43.161 293.103 42.5247L293.423 42.1404C292.656 41.5028 291.885 40.8714 291.108 40.2465L290.794 40.6361C290.02 40.013 289.24 39.3962 288.455 38.7858L288.761 38.3911C287.974 37.779 287.181 37.1734 286.384 36.5743L286.083 36.9741C285.289 36.3773 284.489 35.787 283.684 35.2033L283.978 34.7985C283.171 34.2133 282.358 33.6346 281.541 33.0625L281.255 33.4721C280.44 32.9017 279.62 32.3379 278.795 31.7807L279.075 31.3664C278.25 30.8088 277.419 30.2578 276.584 29.7136L276.311 30.1326C275.478 29.5899 274.64 29.054 273.798 28.5249L274.064 28.1015C273.219 27.5711 272.37 27.0476 271.516 26.531L271.257 26.9588C270.407 26.4447 269.553 25.9375 268.694 25.4373L268.945 25.0052C268.084 24.5035 267.218 24.0089 266.347 23.5212L266.103 23.9575C265.235 23.4716 264.363 22.9927 263.487 22.5209L263.724 22.0806C262.847 21.6086 261.966 21.1436 261.08 20.6858L260.851 21.13C259.967 20.6735 259.08 20.2242 258.188 19.7821L258.41 19.3341C257.517 18.8912 256.62 18.4556 255.718 18.0273L255.504 18.479C254.607 18.0529 253.706 17.634 252.801 17.2225L253.008 16.7674C252.1 16.3547 251.189 15.9494 250.273 15.5515L250.074 16.0101C249.162 15.614 248.247 15.2254 247.327 14.8441L247.519 14.3823C246.599 14.0009 245.676 13.627 244.748 13.2605L244.565 13.7256C243.64 13.3602 242.711 13.0023 241.779 12.652L241.955 12.184C241.022 11.8335 240.086 11.4906 239.146 11.1554L238.978 11.6263C238.043 11.2928 237.105 10.9669 236.163 10.6487L236.323 10.175C235.378 9.85579 234.429 9.54431 233.478 9.24056L233.326 9.7169C232.38 9.41497 231.43 9.12072 230.477 8.83422L230.621 8.35539C229.668 8.06879 228.712 7.78992 227.752 7.51886L227.616 8.00003C226.659 7.72973 225.698 7.46721 224.735 7.21255L224.863 6.72915C223.9 6.47478 222.934 6.22822 221.966 5.98956L221.846 6.47504C220.883 6.23765 219.916 6.00808 218.946 5.78641L219.058 5.29899C218.085 5.07669 217.11 4.86231 216.132 4.65593L216.028 5.14516C215.057 4.94033 214.084 4.74339 213.107 4.55442L213.202 4.06352C212.225 3.87453 211.245 3.69347 210.263 3.52043L210.176 4.01285C209.197 3.84029 208.214 3.67572 207.229 3.51921L207.307 3.0254C206.325 2.8693 205.34 2.7212 204.352 2.58116L204.282 3.07621C203.3 2.93698 202.315 2.80575 201.328 2.68257L201.39 2.18642C200.4 2.06289 199.408 1.94745 198.413 1.84017L198.359 2.33728C197.373 2.23093 196.384 2.13261 195.394 2.04239L195.439 1.54445C194.449 1.45429 193.456 1.3722 192.461 1.29824L192.424 1.79687C191.432 1.72311 190.438 1.65747 189.442 1.59999L189.47 1.10082C188.477 1.04354 187.482 0.994357 186.485 0.953333L186.464 1.45291C185.474 1.41218 184.482 1.37952 183.488 1.35499L183.5 0.855141C182.503 0.830541 181.504 0.814093 180.503 0.805861L180.499 1.30584C180 1.30174 179.5 1.29968 179 1.29968C178.5 1.29968 178 1.30174 177.501 1.30584L177.497 0.805861Z",stroke:"white",strokeDasharray:"3 3"}),b.createElement("path",{d:"M180.503 366.391C181.504 366.383 182.503 366.367 183.5 366.342L183.488 365.842C184.482 365.818 185.474 365.785 186.464 365.744L186.485 366.244C187.482 366.203 188.477 366.154 189.47 366.096L189.442 365.597C190.438 365.54 191.432 365.474 192.424 365.4L192.461 365.899C193.456 365.825 194.449 365.743 195.439 365.653L195.394 365.155C196.384 365.065 197.373 364.966 198.359 364.86L198.413 365.357C199.408 365.25 200.4 365.134 201.39 365.011L201.328 364.515C202.315 364.391 203.3 364.26 204.282 364.121L204.352 364.616C205.34 364.476 206.325 364.328 207.308 364.172L207.229 363.678C208.214 363.521 209.197 363.357 210.176 363.184L210.263 363.677C211.245 363.504 212.225 363.323 213.202 363.134L213.107 362.643C214.084 362.454 215.058 362.257 216.028 362.052L216.132 362.541C217.11 362.335 218.085 362.12 219.058 361.898L218.946 361.411C219.916 361.189 220.883 360.959 221.846 360.722L221.966 361.208C222.935 360.969 223.9 360.722 224.863 360.468L224.735 359.985C225.698 359.73 226.659 359.467 227.616 359.197L227.752 359.678C228.712 359.407 229.668 359.128 230.621 358.842L230.477 358.363C231.43 358.076 232.38 357.782 233.326 357.48L233.478 357.957C234.43 357.653 235.378 357.341 236.323 357.022L236.163 356.548C237.105 356.23 238.043 355.904 238.978 355.571L239.146 356.042C240.086 355.706 241.023 355.364 241.955 355.013L241.779 354.545C242.711 354.195 243.64 353.837 244.565 353.472L244.748 353.937C245.676 353.57 246.599 353.196 247.519 352.815L247.328 352.353C248.247 351.972 249.162 351.583 250.074 351.187L250.273 351.646C251.189 351.248 252.1 350.842 253.008 350.43L252.801 349.975C253.706 349.563 254.607 349.144 255.504 348.718L255.718 349.17C256.62 348.741 257.517 348.306 258.411 347.863L258.188 347.415C259.08 346.973 259.968 346.524 260.851 346.067L261.08 346.511C261.966 346.053 262.847 345.589 263.724 345.116L263.487 344.676C264.364 344.204 265.236 343.726 266.103 343.24L266.347 343.676C267.218 343.188 268.084 342.694 268.945 342.192L268.694 341.76C269.553 341.26 270.407 340.752 271.257 340.238L271.516 340.666C272.37 340.149 273.219 339.626 274.064 339.096L273.798 338.672C274.641 338.143 275.478 337.607 276.311 337.065L276.584 337.483C277.419 336.939 278.25 336.388 279.075 335.831L278.795 335.416C279.62 334.859 280.44 334.295 281.255 333.725L281.541 334.135C282.359 333.563 283.171 332.984 283.978 332.399L283.684 331.994C284.489 331.41 285.289 330.82 286.083 330.223L286.384 330.623C287.181 330.024 287.974 329.418 288.762 328.806L288.455 328.411C289.24 327.801 290.02 327.184 290.795 326.561L291.108 326.951C291.885 326.326 292.657 325.694 293.423 325.057L293.103 324.672C293.868 324.036 294.627 323.394 295.381 322.745L295.707 323.124C296.463 322.473 297.213 321.817 297.958 321.154L297.625 320.78C298.368 320.119 299.105 319.452 299.837 318.779L300.176 319.147C300.909 318.471 301.638 317.79 302.36 317.103L302.015 316.74C302.736 316.055 303.451 315.364 304.16 314.666L304.51 315.023C305.221 314.324 305.926 313.618 306.625 312.908L306.269 312.557C306.966 311.848 307.658 311.133 308.343 310.413L308.705 310.757C309.393 310.035 310.074 309.307 310.749 308.573L310.381 308.234C311.055 307.503 311.722 306.765 312.383 306.023L312.756 306.355C313.419 305.61 314.076 304.86 314.726 304.104L314.347 303.778C314.996 303.024 315.639 302.265 316.275 301.5L316.659 301.82C317.297 301.054 317.928 300.282 318.553 299.505L318.164 299.192C318.787 298.417 319.404 297.637 320.014 296.852L320.409 297.159C321.021 296.372 321.626 295.579 322.225 294.781L321.826 294.481C322.422 293.686 323.013 292.886 323.596 292.081L324.001 292.375C324.586 291.568 325.165 290.756 325.737 289.939L325.328 289.652C325.898 288.837 326.462 288.017 327.019 287.193L327.433 287.473C327.991 286.647 328.542 285.817 329.086 284.981L328.667 284.709C329.21 283.876 329.746 283.038 330.275 282.195L330.698 282.461C331.229 281.617 331.752 280.767 332.269 279.913L331.841 279.655C332.355 278.805 332.862 277.95 333.362 277.091L333.795 277.343C334.296 276.481 334.791 275.615 335.278 274.745L334.842 274.5C335.328 273.633 335.807 272.761 336.279 271.884L336.719 272.121C337.191 271.245 337.656 270.363 338.114 269.478L337.67 269.248C338.126 268.365 338.576 267.477 339.018 266.586L339.466 266.808C339.908 265.915 340.344 265.017 340.772 264.116L340.321 263.901C340.747 263.004 341.166 262.103 341.577 261.198L342.032 261.405C342.445 260.498 342.85 259.586 343.248 258.67L342.79 258.471C343.186 257.56 343.574 256.644 343.956 255.725L344.417 255.916C344.799 254.997 345.173 254.073 345.539 253.146L345.074 252.962C345.44 252.037 345.797 251.109 346.148 250.177L346.616 250.352C346.966 249.42 347.309 248.484 347.644 247.544L347.173 247.376C347.507 246.441 347.833 245.502 348.151 244.56L348.625 244.72C348.944 243.775 349.255 242.827 349.559 241.875L349.083 241.723C349.385 240.777 349.679 239.828 349.965 238.875L350.444 239.019C350.731 238.065 351.01 237.109 351.281 236.149L350.8 236.013C351.07 235.056 351.332 234.096 351.587 233.132L352.071 233.26C352.325 232.298 352.571 231.332 352.81 230.363L352.325 230.244C352.562 229.28 352.792 228.313 353.013 227.344L353.501 227.455C353.723 226.483 353.937 225.507 354.144 224.529L353.655 224.426C353.859 223.455 354.056 222.481 354.245 221.504L354.736 221.599C354.925 220.622 355.106 219.643 355.279 218.66L354.787 218.574C354.959 217.594 355.124 216.612 355.28 215.626L355.774 215.705C355.93 214.722 356.078 213.737 356.219 212.749L355.723 212.679C355.863 211.697 355.994 210.713 356.117 209.725L356.613 209.787C356.737 208.797 356.852 207.805 356.96 206.81L356.462 206.757C356.569 205.77 356.667 204.782 356.757 203.791L357.255 203.836C357.345 202.846 357.427 201.854 357.501 200.859L357.003 200.822C357.077 199.83 357.142 198.836 357.2 197.839L357.699 197.868C357.756 196.875 357.805 195.88 357.846 194.882L357.347 194.862C357.388 193.872 357.42 192.879 357.445 191.885L357.945 191.897C357.969 190.9 357.986 189.901 357.994 188.9L357.494 188.896C357.497 188.564 357.498 188.231 357.499 187.897L356.508 187.897L356.508 187.397L353.525 187.397L353.525 187.897L350.542 187.897L350.542 187.397L347.558 187.397L347.558 187.897L344.575 187.897L344.575 187.397L341.592 187.397L341.592 187.897L338.608 187.897L338.608 187.397L335.625 187.397L335.625 187.897L332.642 187.897L332.642 187.397L329.658 187.397L329.658 187.897L326.675 187.897L326.675 187.397L323.692 187.397L323.692 187.897L320.708 187.897L320.708 187.397L317.725 187.397L317.725 187.897L314.742 187.897L314.742 187.397L311.758 187.397L311.758 187.897L308.775 187.897L308.775 187.397L305.792 187.397L305.792 187.897L302.808 187.897L302.808 187.397L299.825 187.397L299.825 187.897L296.842 187.897L296.842 187.397L293.858 187.397L293.858 187.897L290.875 187.897L290.875 187.397L287.892 187.397L287.892 187.897L284.908 187.897L284.908 187.397L281.925 187.397L281.925 187.897L278.942 187.897L278.942 187.397L275.958 187.397L275.958 187.897L272.975 187.897L272.975 187.397L269.992 187.397L269.992 187.897L267.008 187.897L267.008 187.397L264.025 187.397L264.025 187.897L261.042 187.897L261.042 187.397L258.058 187.397L258.058 187.897L255.075 187.897L255.075 187.397L252.092 187.397L252.092 187.897L249.108 187.897L249.108 187.397L246.125 187.397L246.125 187.897L243.142 187.897L243.142 187.397L240.158 187.397L240.158 187.897L237.175 187.897L237.175 187.397L234.192 187.397L234.192 187.897L231.208 187.897L231.208 187.397L228.225 187.397L228.225 187.897L225.242 187.897L225.242 187.397L222.258 187.397L222.258 187.897L219.275 187.897L219.275 187.397L216.292 187.397L216.292 187.897L213.308 187.897L213.308 187.397L210.325 187.397L210.325 187.897L207.342 187.897L207.342 187.397L204.358 187.397L204.358 187.897L201.375 187.897L201.375 187.397L198.392 187.397L198.392 187.897L195.408 187.897L195.408 187.397L192.425 187.397L192.425 187.897L189.442 187.897L189.442 187.397L186.458 187.397L186.458 187.897L183.475 187.897L183.475 187.397L180.492 187.397L180.492 187.897L177.508 187.897L177.508 187.397L174.525 187.397L174.525 187.897L171.542 187.897L171.542 187.397L168.558 187.397L168.558 187.897L165.575 187.897L165.575 187.397L162.592 187.397L162.592 187.897L159.608 187.897L159.608 187.397L156.625 187.397L156.625 187.897L153.642 187.897L153.642 187.397L150.658 187.397L150.658 187.897L147.675 187.897L147.675 187.397L144.692 187.397L144.692 187.897L141.708 187.897L141.708 187.397L138.725 187.397L138.725 187.897L135.742 187.897L135.742 187.397L132.758 187.397L132.758 187.897L129.775 187.897L129.775 187.397L126.792 187.397L126.792 187.897L123.808 187.897L123.808 187.397L120.825 187.397L120.825 187.897L117.842 187.897L117.842 187.397L114.858 187.397L114.858 187.897L111.875 187.897L111.875 187.397L108.892 187.397L108.892 187.897L105.908 187.897L105.908 187.397L102.925 187.397L102.925 187.897L99.9416 187.897L99.9416 187.397L96.9582 187.397L96.9582 187.897L93.9749 187.897L93.9749 187.397L90.9916 187.397L90.9916 187.897L88.0082 187.897L88.0082 187.397L85.0249 187.397L85.0249 187.897L82.0416 187.897L82.0416 187.397L79.0582 187.397L79.0582 187.897L76.0749 187.897L76.0749 187.397L73.0915 187.397L73.0915 187.897L70.1082 187.897L70.1082 187.397L67.1249 187.397L67.1249 187.897L64.1415 187.897L64.1415 187.397L61.1582 187.397L61.1582 187.897L58.1749 187.897L58.1749 187.397L55.1915 187.397L55.1915 187.897L52.2082 187.897L52.2082 187.397L49.2248 187.397L49.2248 187.897L46.2415 187.897L46.2415 187.397L43.2582 187.397L43.2582 187.897L40.2748 187.897L40.2748 187.397L37.2915 187.397L37.2915 187.897L34.3082 187.897L34.3082 187.397L31.3248 187.397L31.3248 187.897L28.3415 187.897L28.3415 187.397L25.3581 187.397L25.3581 187.897L22.3748 187.897L22.3748 187.397L19.3915 187.397L19.3915 187.897L16.4081 187.897L16.4081 187.397L13.4248 187.397L13.4248 187.897L10.4415 187.897L10.4415 187.397L7.45812 187.397L7.45811 187.897L4.47478 187.897L4.47478 187.397L1.49144 187.397L1.49144 187.897L0.500687 187.897C0.501602 188.231 0.503434 188.564 0.50618 188.896L0.00618007 188.9C0.0144197 189.901 0.0308686 190.9 0.0554657 191.897L0.555313 191.885C0.579849 192.879 0.612503 193.872 0.653244 194.862L0.153671 194.882C0.194687 195.88 0.243881 196.875 0.301162 197.868L0.800338 197.839C0.857803 198.836 0.923446 199.83 0.997207 200.822L0.49858 200.859C0.572555 201.854 0.654647 202.846 0.744796 203.836L1.24272 203.791C1.33296 204.782 1.43126 205.771 1.53761 206.757L1.04051 206.81C1.14781 207.805 1.26323 208.798 1.38676 209.787L1.88292 209.726C2.00609 210.713 2.13731 211.697 2.27656 212.679L1.78151 212.75C1.92155 213.737 2.06965 214.722 2.22575 215.705L2.71956 215.626C2.87605 216.612 3.04063 217.594 3.21318 218.574L2.72078 218.66C2.89381 219.643 3.07487 220.623 3.26387 221.599L3.75477 221.504C3.94374 222.481 4.14067 223.455 4.3455 224.426L3.85627 224.529C4.06266 225.507 4.27705 226.483 4.49934 227.455L4.98677 227.344C5.20845 228.313 5.438 229.28 5.6754 230.244L5.18992 230.363C5.4286 231.332 5.67512 232.298 5.92949 233.26L6.41291 233.132C6.66755 234.096 6.9301 235.056 7.20039 236.013L6.71922 236.149C6.99028 237.109 7.26915 238.066 7.55574 239.019L8.03456 238.875C8.32109 239.828 8.61534 240.777 8.91725 241.723L8.44093 241.875C8.74467 242.827 9.05616 243.775 9.37532 244.72L9.84901 244.56C10.1673 245.502 10.4932 246.441 10.8267 247.376L10.3558 247.544C10.691 248.484 11.0339 249.42 11.3843 250.353L11.8524 250.177C12.2027 251.109 12.5606 252.037 12.9259 252.962L12.4609 253.146C12.8273 254.073 13.2012 254.997 13.5826 255.916L14.0445 255.725C14.4257 256.644 14.8144 257.56 15.2105 258.471L14.7519 258.67C15.1498 259.586 15.5551 260.498 15.9677 261.405L16.4229 261.198C16.8344 262.103 17.2532 263.004 17.6793 263.901L17.2277 264.116C17.656 265.017 18.0916 265.915 18.5345 266.808L18.9824 266.586C19.4245 267.478 19.8739 268.365 20.3304 269.248L19.8862 269.478C20.344 270.363 20.809 271.245 21.281 272.122L21.7213 271.885C22.193 272.761 22.6719 273.633 23.1578 274.5L22.7216 274.745C23.2092 275.615 23.7039 276.481 24.2055 277.343L24.6376 277.091C25.1379 277.95 25.6451 278.805 26.1592 279.655L25.7314 279.914C26.248 280.768 26.7715 281.617 27.3019 282.461L27.7253 282.196C28.2544 283.038 28.7903 283.876 29.333 284.709L28.914 284.982C29.4582 285.817 30.0091 286.647 30.5668 287.473L30.9811 287.193C31.5382 288.018 32.1021 288.837 32.6725 289.652L32.2629 289.939C32.835 290.756 33.4136 291.568 33.9989 292.375L34.4037 292.081C34.9874 292.886 35.5777 293.686 36.1744 294.481L35.7746 294.781C36.3738 295.579 36.9794 296.372 37.5914 297.159L37.9862 296.852C38.5966 297.637 39.2134 298.417 39.8365 299.192L39.4468 299.505C40.0718 300.282 40.7032 301.054 41.3408 301.82L41.7251 301.5C42.3614 302.265 43.0039 303.024 43.6526 303.778L43.2736 304.104C43.9241 304.86 44.5808 305.61 45.2437 306.355L45.6172 306.023C46.2783 306.766 46.9455 307.503 47.6188 308.234L47.2509 308.573C47.9262 309.307 48.6075 310.035 49.2949 310.757L49.6571 310.413C50.3425 311.133 51.0339 311.848 51.7312 312.557L51.3747 312.908C52.0739 313.618 52.779 314.324 53.4899 315.023L53.8405 314.666C54.5495 315.364 55.2642 316.055 55.9847 316.74L55.64 317.103C56.3625 317.79 57.0907 318.471 57.8246 319.147L58.1631 318.779C58.8947 319.452 59.632 320.119 60.3748 320.78L60.0424 321.154C60.7872 321.817 61.5375 322.473 62.2934 323.124L62.6195 322.745C63.3733 323.394 64.1325 324.036 64.8971 324.672L64.5773 325.057C65.3435 325.694 66.1152 326.326 66.8922 326.951L67.2055 326.561C67.9802 327.184 68.7602 327.801 69.5454 328.411L69.2386 328.806C70.0259 329.418 70.8186 330.024 71.6164 330.623L71.9166 330.223C72.7113 330.82 73.5111 331.41 74.316 331.994L74.0225 332.399C74.8295 332.984 75.6416 333.563 76.4587 334.135L76.7454 333.725C77.5602 334.295 78.38 334.859 79.2047 335.416L78.9248 335.831C79.7503 336.388 80.5807 336.939 81.416 337.483L81.6889 337.065C82.5218 337.607 83.3596 338.143 84.202 338.672L83.9361 339.096C84.7807 339.626 85.63 340.15 86.484 340.666L86.7428 340.238C87.5927 340.752 88.4472 341.26 89.3062 341.76L89.0547 342.192C89.9161 342.694 90.7822 343.188 91.6527 343.676L91.8971 343.24C92.7646 343.726 93.6366 344.204 94.513 344.676L94.276 345.117C95.1529 345.589 96.0342 346.054 96.9198 346.511L97.1494 346.067C98.0326 346.524 98.92 346.973 99.8117 347.415L99.5896 347.863C100.483 348.306 101.38 348.741 102.282 349.17L102.496 348.718C103.393 349.144 104.294 349.563 105.199 349.975L104.992 350.43C105.9 350.842 106.811 351.248 107.727 351.646L107.926 351.187C108.838 351.583 109.753 351.972 110.673 352.353L110.481 352.815C111.401 353.196 112.324 353.57 113.252 353.937L113.435 353.472C114.36 353.837 115.289 354.195 116.221 354.545L116.045 355.013C116.978 355.364 117.914 355.706 118.854 356.042L119.022 355.571C119.957 355.904 120.895 356.23 121.837 356.548L121.677 357.022C122.622 357.341 123.571 357.653 124.522 357.957L124.674 357.48C125.62 357.782 126.57 358.076 127.523 358.363L127.379 358.842C128.332 359.128 129.288 359.407 130.248 359.678L130.384 359.197C131.341 359.467 132.302 359.73 133.265 359.985L133.137 360.468C134.1 360.722 135.066 360.969 136.034 361.208L136.154 360.722C137.117 360.959 138.084 361.189 139.054 361.411L138.942 361.898C139.915 362.12 140.89 362.335 141.868 362.541L141.972 362.052C142.943 362.257 143.916 362.454 144.893 362.643L144.798 363.134C145.775 363.323 146.755 363.504 147.737 363.677L147.824 363.184C148.803 363.357 149.786 363.521 150.771 363.678L150.693 364.172C151.675 364.328 152.66 364.476 153.648 364.616L153.718 364.121C154.7 364.26 155.685 364.391 156.672 364.515L156.61 365.011C157.6 365.134 158.592 365.25 159.587 365.357L159.641 364.86C160.627 364.966 161.616 365.065 162.606 365.155L162.561 365.653C163.551 365.743 164.544 365.825 165.539 365.899L165.576 365.4C166.568 365.474 167.562 365.54 168.558 365.597L168.53 366.096C169.523 366.154 170.518 366.203 171.515 366.244L171.536 365.744C172.526 365.785 173.518 365.818 174.512 365.842L174.5 366.342C175.497 366.367 176.496 366.383 177.497 366.391L177.501 365.891C178 365.895 178.5 365.897 179 365.897C179.5 365.897 180 365.895 180.499 365.891L180.503 366.391Z",stroke:"white",strokeDasharray:"3 3"}),b.createElement("path",{d:"M323.365 179.881H34.6327C35.1704 100.608 99.5994 36.5112 178.999 36.5112C258.399 36.5112 322.828 100.608 323.365 179.881Z",stroke:"#FFE895",strokeWidth:"2"}),b.createElement("path",{d:"M34.6347 188.394L323.367 188.394C322.83 267.667 258.401 331.764 179.001 331.764C99.6015 331.764 35.1725 267.667 34.6347 188.394Z",stroke:"#FFE895",strokeWidth:"2"}),b.createElement("path",{d:"M285.394 178.796H73.6877C74.2217 120.489 121.414 73.396 179.541 73.396C237.668 73.396 284.86 120.489 285.394 178.796Z",stroke:"#73D9B4",strokeWidth:"2"}),b.createElement("path",{d:"M73.6885 189.479L285.395 189.479C284.86 247.786 237.668 294.879 179.542 294.879C121.415 294.879 74.2226 247.786 73.6885 189.479Z",stroke:"#73D9B4",strokeWidth:"2"}),b.createElement("path",{d:"M177.041 143.34C178.588 142.446 180.494 142.446 182.041 143.34L211.273 160.216C212.82 161.11 213.773 162.76 213.773 164.546V198.3C213.773 200.086 212.82 201.737 211.273 202.63L182.041 219.507C180.494 220.4 178.588 220.4 177.041 219.507L147.81 202.63C146.263 201.737 145.31 200.086 145.31 198.3V164.546C145.31 162.76 146.263 161.11 147.81 160.216L177.041 143.34Z",fill:"#5DC1ED",stroke:"white",strokeWidth:"2"}),b.createElement("path",{d:"M65.9074 107.991C65.4109 108.12 65.1288 108.687 65.2774 109.257L67.6986 118.543C67.8472 119.112 68.3701 119.469 68.8666 119.34C69.3631 119.211 69.6451 118.644 69.4965 118.074L67.3444 109.82L74.5362 107.945C75.0327 107.815 75.3148 107.248 75.1662 106.678C75.0176 106.109 74.4947 105.752 73.9982 105.881L65.9074 107.991ZM65.7309 109.918L178.099 186.628L178.99 184.837L66.6218 108.127L65.7309 109.918Z",fill:"#FFE895"}),b.createElement("path",{d:"M177.832 309.6C178.222 309.991 178.856 309.991 179.246 309.601L185.61 303.244C186.001 302.854 186.001 302.221 185.61 301.83C185.22 301.439 184.587 301.438 184.196 301.828L178.539 307.479L172.882 301.817C172.492 301.426 171.859 301.425 171.468 301.815C171.078 302.205 171.078 302.839 171.468 303.229L177.832 309.6ZM179.539 308.895L179.543 185.748L177.543 185.746L177.539 308.892L179.539 308.895Z",fill:"#FFE895"}),b.createElement("path",{d:"M293.226 108.431C293.375 107.862 293.094 107.294 292.597 107.165L284.508 105.048C284.011 104.918 283.488 105.275 283.339 105.844C283.19 106.414 283.471 106.981 283.968 107.111L291.159 108.992L289 117.244C288.851 117.814 289.132 118.381 289.629 118.511C290.125 118.641 290.648 118.284 290.798 117.715L293.226 108.431ZM178.99 186.619L292.772 109.092L291.883 107.3L178.101 184.827L178.99 186.619Z",fill:"#FFE895"}),b.createElement("path",{d:"M180.082 341.122C193.263 341.122 203.949 337.552 203.949 333.148C203.949 328.745 193.263 325.175 180.082 325.175C166.901 325.175 156.215 328.745 156.215 333.148C156.215 337.552 166.901 341.122 180.082 341.122Z",fill:"#FFE895"}),b.createElement("path",{d:"M203.949 345.694C203.949 350.106 193.341 353.668 180.082 353.668C166.823 353.668 156.215 350.106 156.215 345.694",fill:"#FFE895"}),b.createElement("path",{d:"M203.949 358.239C203.949 362.651 193.341 366.212 180.082 366.212C166.823 366.212 156.215 362.651 156.215 358.239",fill:"#FFE895"}),b.createElement("path",{d:"M156.215 333.148V370.359C156.215 374.771 166.823 378.332 180.082 378.332C193.341 378.332 203.949 374.771 203.949 370.359V333.148",fill:"#FFE895"}),b.createElement("path",{d:"M203.949 333.148C203.949 337.552 193.263 341.122 180.082 341.122C166.901 341.122 156.215 337.552 156.215 333.148M203.949 333.148C203.949 328.745 193.263 325.175 180.082 325.175C166.901 325.175 156.215 328.745 156.215 333.148M203.949 333.148V370.359C203.949 374.771 193.341 378.332 180.082 378.332C166.823 378.332 156.215 374.771 156.215 370.359V333.148M203.949 345.694C203.949 350.106 193.341 353.668 180.082 353.668C166.823 353.668 156.215 350.106 156.215 345.694M203.949 358.239C203.949 362.651 193.341 366.212 180.082 366.212C166.823 366.212 156.215 362.651 156.215 358.239",stroke:"white",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M32.5423 77.5033C45.7235 77.5033 56.409 73.9334 56.409 69.5297C56.409 65.1259 45.7235 61.556 32.5423 61.556C19.3611 61.556 8.67566 65.1259 8.67566 69.5297C8.67566 73.9334 19.3611 77.5033 32.5423 77.5033Z",fill:"#5DC1ED"}),b.createElement("path",{d:"M56.409 82.0754C56.409 86.4875 45.8016 90.0491 32.5423 90.0491C19.2831 90.0491 8.67566 86.4875 8.67566 82.0754",fill:"#5DC1ED"}),b.createElement("path",{d:"M56.409 94.62C56.409 99.0321 45.8016 102.594 32.5423 102.594C19.2831 102.594 8.67566 99.0321 8.67566 94.62",fill:"#5DC1ED"}),b.createElement("path",{d:"M8.67566 69.5297V106.74C8.67566 111.152 19.2831 114.714 32.5423 114.714C45.8016 114.714 56.409 111.152 56.409 106.74V69.5297",fill:"#5DC1ED"}),b.createElement("path",{d:"M56.409 69.5297C56.409 73.9334 45.7235 77.5033 32.5423 77.5033C19.3611 77.5033 8.67566 73.9334 8.67566 69.5297M56.409 69.5297C56.409 65.1259 45.7235 61.556 32.5423 61.556C19.3611 61.556 8.67566 65.1259 8.67566 69.5297M56.409 69.5297V106.74C56.409 111.152 45.8016 114.714 32.5423 114.714C19.2831 114.714 8.67566 111.152 8.67566 106.74V69.5297M56.409 82.0754C56.409 86.4875 45.8016 90.0491 32.5423 90.0491C19.2831 90.0491 8.67566 86.4875 8.67566 82.0754M56.409 94.62C56.409 99.0321 45.8016 102.594 32.5423 102.594C19.2831 102.594 8.67566 99.0321 8.67566 94.62",stroke:"white",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M326.535 77.5033C339.716 77.5033 350.402 73.9334 350.402 69.5297C350.402 65.1259 339.716 61.556 326.535 61.556C313.354 61.556 302.668 65.1259 302.668 69.5297C302.668 73.9334 313.354 77.5033 326.535 77.5033Z",fill:"#73D9B4"}),b.createElement("path",{d:"M350.402 82.0754C350.402 86.4875 339.794 90.0491 326.535 90.0491C313.276 90.0491 302.668 86.4875 302.668 82.0754",fill:"#73D9B4"}),b.createElement("path",{d:"M350.402 94.62C350.402 99.0321 339.794 102.594 326.535 102.594C313.276 102.594 302.668 99.0321 302.668 94.62",fill:"#73D9B4"}),b.createElement("path",{d:"M302.668 69.5297V106.74C302.668 111.152 313.276 114.714 326.535 114.714C339.794 114.714 350.402 111.152 350.402 106.74V69.5297",fill:"#73D9B4"}),b.createElement("path",{d:"M350.402 69.5297C350.402 73.9334 339.716 77.5033 326.535 77.5033C313.354 77.5033 302.668 73.9334 302.668 69.5297M350.402 69.5297C350.402 65.1259 339.716 61.556 326.535 61.556C313.354 61.556 302.668 65.1259 302.668 69.5297M350.402 69.5297V106.74C350.402 111.152 339.794 114.714 326.535 114.714C313.276 114.714 302.668 111.152 302.668 106.74V69.5297M350.402 82.0754C350.402 86.4875 339.794 90.0491 326.535 90.0491C313.276 90.0491 302.668 86.4875 302.668 82.0754M350.402 94.62C350.402 99.0321 339.794 102.594 326.535 102.594C313.276 102.594 302.668 99.0321 302.668 94.62",stroke:"white",strokeLinecap:"round",strokeLinejoin:"round"})),Ke=b.createElement("svg",{width:"449",height:"460",viewBox:"0 0 449 460",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M199.744 172.422L150.154 143.814V86.5952L199.741 115.2L199.744 172.422Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.33 86.5953L199.744 115.203L150.154 86.5986L199.741 57.991L249.33 86.5953Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 172.419L249.33 143.811V86.5989L199.747 115.203L199.744 172.419Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 279.597L88.1672 250.986V193.771L137.754 222.375L137.757 279.597Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 193.771L137.757 222.378L88.1672 193.771L137.757 165.167L187.347 193.771Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 279.594L187.343 250.986V193.774L137.76 222.375L137.757 279.594Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.115L88.1672 179.504V122.289L137.754 150.893L137.757 208.115Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 122.289L137.757 150.897L88.1672 122.289L137.757 93.6848L187.347 122.289Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.112L187.343 179.504V122.292L137.76 150.893L137.757 208.112Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 279.628L212.139 251.017V193.802L261.725 222.406L261.728 279.628Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.318 193.802L261.729 222.409L212.142 193.802L261.729 165.197L311.318 193.802Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 279.624L311.314 251.017V193.805L261.731 222.406L261.728 279.624Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 279.628L212.139 251.017V193.802L261.725 222.406L261.728 279.628Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.318 193.802L261.729 222.409L212.142 193.802L261.729 165.197L311.318 193.802Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 208.146L212.139 179.538V122.32L261.725 150.924L261.728 208.146Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.318 122.32L261.729 150.927L212.142 122.323L261.729 93.7153L311.318 122.32Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.728 208.142L311.314 179.535V122.323L261.731 150.927L261.728 208.142Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 315.376L150.154 286.768V229.552L199.741 258.157L199.744 315.376Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.334 229.553L199.744 258.16L150.154 229.553L199.744 200.945L249.334 229.553Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 315.372L249.33 286.768V229.556L199.747 258.157L199.744 315.372Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 243.894L150.154 215.286V158.071L199.741 186.675L199.744 243.894Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.334 158.071L199.744 186.678L150.154 158.071L199.744 129.463L249.334 158.071Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 243.891L249.33 215.286V158.074L199.747 186.675L199.744 243.891Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7734 243.904L26.1802 215.296V158.081L75.77 186.685L75.7734 243.904Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M125.36 158.081L75.7735 186.688L26.1838 158.081L75.7701 129.473L125.36 158.081Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7735 243.9L125.36 215.296V158.081L75.7769 186.685L75.7735 243.9Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 351.11L88.1672 322.499V265.283L137.754 293.888L137.757 351.11Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 265.284L137.757 293.891L88.1672 265.287L137.757 236.679L187.347 265.284Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 351.107L187.343 322.499V265.287L137.76 293.888L137.757 351.107Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 351.11L88.1672 322.499V265.283L137.754 293.888L137.757 351.11Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 265.284L137.757 293.891L88.1672 265.287L137.757 236.679L187.347 265.284Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 279.628L88.1672 251.02V193.802L137.754 222.409L137.757 279.628Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 193.805L137.757 222.413L88.1672 193.805L137.757 165.197L187.347 193.805Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 279.624L187.343 251.017V193.805L137.76 222.409L137.757 279.624Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7732 386.861L26.1834 358.25V301.034L75.7698 329.639L75.7732 386.861Z",fill:"#141414",stroke:"#D8D3E7",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M125.363 301.034L75.7732 329.642L26.1834 301.034L75.7732 272.43L125.363 301.034Z",fill:"#141414",stroke:"#D8D3E7",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7731 386.858L125.36 358.25V301.038L75.7765 329.639L75.7731 386.858Z",fill:"#141414",stroke:"#D8D3E7",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7731 315.379L26.1833 286.768V229.552L75.7697 258.157L75.7731 315.379Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M125.363 229.553L75.7731 258.16L26.1833 229.553L75.7731 200.948L125.363 229.553Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7729 315.376L125.359 286.768V229.556L75.7763 258.157L75.7729 315.376Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M50.5899 329.937L1.00018 301.326V244.11L50.5865 272.715L50.5899 329.937Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M100.18 244.11L50.5899 272.718L1.00012 244.11L50.5899 215.506L100.18 244.11Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M50.5899 329.933L100.176 301.326V244.114L50.5933 272.715L50.5899 329.933Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M323.719 243.948L274.129 215.34V158.125L323.715 186.729L323.719 243.948Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M373.308 158.125L323.719 186.732L274.129 158.125L323.715 129.517L373.308 158.125Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M323.719 243.944L373.305 215.34V158.128L323.722 186.729L323.719 243.944Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 351.124L212.142 322.516V265.298L261.728 293.902L261.731 351.124Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 265.301L261.732 293.905L212.146 265.301L261.732 236.693L311.322 265.301Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 351.12L311.318 322.513V265.301L261.735 293.905L261.731 351.12Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 279.641L212.142 251.033V193.815L261.728 222.419L261.731 279.641Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 193.818L261.732 222.422L212.146 193.818L261.732 165.21L311.322 193.818Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 279.638L311.318 251.03V193.818L261.735 222.422L261.731 279.638Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M323.722 315.423L274.129 286.812V229.596L323.719 258.201L323.722 315.423Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M373.309 229.596L323.722 258.204L274.133 229.6L323.719 200.992L373.309 229.596Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M323.722 315.42L373.309 286.812V229.6L323.722 258.201V315.42Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 315.433L150.158 286.822V229.607L199.744 258.211L199.747 315.433Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.337 229.607L199.747 258.214L150.158 229.607L199.744 201.002L249.337 229.607Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 315.43L249.334 286.822V229.61L199.751 258.211L199.747 315.43Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.001 422.169L87.4117 393.558L88.1706 336.782L137.757 365.387L137.001 422.169Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.35 336.782L137.761 365.39L88.1743 336.782L137.761 308.175L187.35 336.782Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.76 422.602L187.347 393.998V336.786L137.764 365.387L137.76 422.602Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.761 351.124L88.1708 322.516V265.301L137.757 293.905L137.761 351.124Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.351 265.301L137.761 293.908L88.1749 265.301L137.761 236.693L187.351 265.301Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.761 351.12L187.347 322.516V265.301L137.764 293.905L137.761 351.12Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 422.636L212.142 394.028V336.809L261.731 365.414L261.735 422.636Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 336.813L261.735 365.417L212.146 336.813L261.732 308.205L311.322 336.813Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 422.633L311.321 394.025V336.813L261.735 365.417V422.633Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 422.636L212.142 394.028V336.809L261.731 365.414L261.735 422.636Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 336.813L261.735 365.417L212.146 336.813L261.732 308.205L311.322 336.813Z",fill:"#141414",stroke:"#E6A1B5",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 351.157L212.142 322.546V265.331L261.731 293.935L261.735 351.157Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 265.331L261.735 293.939L212.146 265.331L261.732 236.727L311.322 265.331Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 351.154L311.321 322.546V265.334L261.735 293.935V351.154Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 386.905L150.158 358.297V301.078L199.747 329.683V386.905Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.338 301.082L199.751 329.686L150.162 301.082L199.748 272.474L249.338 301.082Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 386.902L249.334 358.294V301.082L199.751 329.686L199.747 386.902Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M63.5898 115.431L14 86.823V29.6042L63.5864 58.2085L63.5898 115.431Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M113.176 29.6043L63.5898 58.212L14 29.6077L63.5864 1L113.176 29.6043Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M63.5897 115.427L113.176 86.8196V29.6077L63.5931 58.212L63.5897 115.427Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M398.59 423.431L349 394.823V337.604L398.586 366.209L398.59 423.431Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M448.176 337.604L398.59 366.212L349 337.608L398.586 309L448.176 337.604Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M398.59 423.427L448.176 394.82V337.608L398.593 366.212L398.59 423.427Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round",strokeDasharray:"8 8"}),b.createElement("path",{d:"M199.744 172.385L150.154 143.777V86.5615L199.741 115.166L199.744 172.385Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.334 86.5615L199.744 115.169L150.154 86.5615L199.744 57.9539L249.334 86.5615Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.744 172.381L249.33 143.777V86.5649L199.747 115.166L199.744 172.381Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.119L88.1672 179.508V122.292L137.754 150.897L137.757 208.119Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 122.292L137.757 150.9L88.1672 122.296L137.757 93.688L187.347 122.292Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.115L187.343 179.508V122.296L137.76 150.897L137.757 208.115Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.757 208.119L88.1672 179.508V122.292L137.754 150.897L137.757 208.119Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.347 122.292L137.757 150.9L88.1672 122.296L137.757 93.688L187.347 122.292Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7732 243.87L26.1834 215.259V158.043L75.7698 186.648L75.7732 243.87Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M125.363 158.044L75.7732 186.651L26.1834 158.044L75.7732 129.439L125.363 158.044Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M75.7731 243.867L125.36 215.259V158.047L75.7765 186.648L75.7731 243.867Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 208.133L212.142 179.525V122.306L261.728 150.91L261.731 208.133Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 122.31L261.732 150.914L212.146 122.31L261.732 93.7019L311.322 122.31Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.731 208.129L311.318 179.521V122.309L261.735 150.914L261.731 208.129Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M343.413 231.993L293.82 203.382V146.167L343.41 174.771L343.413 231.993Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M393 146.167L343.414 174.775L293.824 146.17L343.411 117.563L393 146.167Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M343.414 231.99L393 203.382V146.17L343.414 174.771V231.99Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 279.645L212.142 251.037V193.818L261.731 222.423L261.735 279.645Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 193.822L261.735 222.426L212.146 193.822L261.732 165.214L311.322 193.822Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 279.641L311.321 251.034V193.822L261.735 222.426V279.641Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.715 219.875L150.122 191.263V134.048L199.712 162.652L199.715 219.875Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.302 134.048L199.716 162.656L150.126 134.052L199.712 105.444L249.302 134.048Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.715 219.871L249.301 191.263V134.051L199.715 162.652V219.871Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.001 279.178L87.4117 250.567L88.1706 193.791L137.757 222.396L137.001 279.178Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M187.35 193.791L137.761 222.399L88.1743 193.791L137.761 165.184L187.35 193.791Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M137.76 279.611L187.347 251.006V193.794L137.764 222.395L137.76 279.611Z",fill:"#141414",stroke:"#5DC1ED",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M261.735 279.645L212.142 251.037V193.818L261.731 222.423L261.735 279.645Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M311.322 193.822L261.735 222.426L212.146 193.822L261.732 165.214L311.322 193.822Z",fill:"#141414",stroke:"#73D9B4",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 315.396L150.158 286.788V229.569L199.747 258.174V315.396Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.338 229.573L199.751 258.177L150.162 229.573L199.748 200.965L249.338 229.573Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 315.393L249.334 286.785V229.573L199.751 258.177L199.747 315.393Z",fill:"#141414",stroke:"#FFE895",strokeWidth:"1.5",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 458.387L150.158 429.779V372.561L199.747 401.165V458.387Z",fill:"#238AB5",stroke:"white",strokeWidth:"2",strokeLinejoin:"round"}),b.createElement("path",{d:"M249.338 372.564L199.751 401.168L150.162 372.564L199.748 343.956L249.338 372.564Z",fill:"#B2DFF2",stroke:"white",strokeWidth:"2",strokeLinejoin:"round"}),b.createElement("path",{d:"M199.747 458.384L249.334 429.776V372.564L199.751 401.168L199.747 458.384Z",fill:"#5DC1ED",stroke:"white",strokeWidth:"2",strokeLinejoin:"round"}));var $e=n(78672);const qe={toc:[]};function _e(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},qe,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"In the following years, we will definitely migrate more clusters from MySQL to TiDB, use TiCDC to set up multi-region clusters on AWS for failover, and try TiFlash for instant analytical ",(0,He.kt)("strong",{parentName:"p"},"queries"),"."))}_e.isMDXComponent=!0;const et=b.createElement("svg",{width:"72",height:"73",viewBox:"0 0 72 73",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36.9141",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M48.6863 26.1738L54.3276 47.4095L45.3686 49.732V62.0086C41.166 61.7874 31.6991 59.4869 27.452 52.0546",stroke:"#AE621B",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M27.1193 22.5239H17.4978",stroke:"#AE621B",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),tt="@Kaustav Chakravorty",nt="Senior Architect, Flipkart",rt="Logistics",ot="#E3A15236",it="#DD7514",lt={toc:[]};function at(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},lt,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"TiDB's architecture, sort of a SQL layer on top of a key value store, was ",(0,He.kt)("strong",{parentName:"p"},"more scalable")," and more likely to cause fewer problems down the line. With TiDB, we don't need to worry about cross-charge transactions. That's huge."))}at.isMDXComponent=!0;const st=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M32.3814 29.7871V57.7181",stroke:"#2E6BE5",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("circle",{cx:"16.3456",cy:"28.266",r:"3.06995",stroke:"#2E6BE5",strokeWidth:"6"}),b.createElement("path",{d:"M43.3389 28.322H58.6959",stroke:"#2E6BE5",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),ct="@Henry Qin",Lt="Software Engineer",dt="FinTech",ut="#9990FF36",mt="#2E6BE5",pt={toc:[]};function ht(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},pt,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"The ease and comfort of getting started are paramount for us, and the ",(0,He.kt)("strong",{parentName:"p"},"fully managed")," operations of TiDB Serverless allow us to focus more on our core business, ensuring that our development resources are utilized where they matter most."))}ht.isMDXComponent=!0;const Ct=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M26.5031 15.809L13.9319 47.3409L26.5031 49.7643V62.5739C32.4001 62.3431 45.6839 59.9428 51.6433 52.1877",stroke:"#52CC7A",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("circle",{cx:"46.9818",cy:"24.0155",r:"5.97791",fill:"#52CC7A"})),kt="@Sky Dong",Et="Founding Engineer, Chaintool",gt="Web 3",ft="#C1FF9036",wt="#52CC7A",vt={toc:[]};function yt(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},vt,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"We heavily utilized TiDB's serverless feature to power our backend. This allowed us to scale our backend to handle thousands of requests per second effortlessly while keeping ",(0,He.kt)("strong",{parentName:"p"},"costs low"),", as we only pay for what we use."))}yt.isMDXComponent=!0;const xt=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M23.4191 22.196L10.2882 32.8647M48.0388 25.4788L59.1177 35.7371",stroke:"#A711ED",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M34.703 35.7375L27.0515 43.3897L34.703 48.9554",stroke:"#A711ED",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),bt="@Eliotte",Ft="Hackathon AI Track Winner, Quizmefy",Mt="AI App",Zt="#C8BAF036",Vt="#AA95FF",Wt={toc:[]};function Dt(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Wt,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"The NO.1 benefit is ",(0,He.kt)("strong",{parentName:"p"},"simplicity"),". With TiDB, our applications can retain their SQL data model and the ACID guarantees. We don't have to implement any kind of sharding logic, and the database management becomes simpler too."))}Dt.isMDXComponent=!0;const Ht=b.createElement("svg",{width:"72",height:"73",viewBox:"0 0 72 73",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36.9141",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M33.6494 19.3936C40.1424 27.0686 51.1805 44.0127 43.3889 50.3887C35.5973 56.7648 31.3308 53.0454 30.1716 50.3887",stroke:"#129B93",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M12.1457 33.3175C11.4264 29.883 10.9528 22.8213 14.8119 22.051C18.671 21.2806 22.5151 26.4658 23.9547 29.1546",stroke:"#129B93",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),Bt="@Kaustav Chakravorty",jt="Senior Architect, Flipkart",At="E-Commerce",Tt="#56B28636",St="#1CCFBC",It={toc:[]};function Pt(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},It,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"TiDB Serverless is especially beneficial for experimental or early-stage features. It's ",(0,He.kt)("strong",{parentName:"p"},"cost-effective")," for startups, scalable, and development-friendly."))}Pt.isMDXComponent=!0;const Rt=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("ellipse",{cx:"47.1453",cy:"23.8925",rx:"5.96479",ry:"6.10095",stroke:"#F2AA18",strokeWidth:"6"}),b.createElement("path",{d:"M30.3556 20.884C25.5692 32.667 18.5591 56.498 28.81 57.5586",stroke:"#F2AA18",strokeWidth:"6",strokeLinecap:"round"})),Nt="@Thomas Yu",zt="Founder, KNN3 Networks",Ot="Web 3",Xt="#D6B12C36",Qt="#FFE790",Jt={toc:[]};function Yt(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Jt,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"With TiDB Serverless, setting up a database is as easy as clicking a button. It handles analytics ",(0,He.kt)("strong",{parentName:"p"},"seamlessly"),", without the need for manual scaling."))}Yt.isMDXComponent=!0;const Gt=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M34.7616 23.8372C35.5823 27.9405 36.321 36.5575 32.71 38.1988C28.1962 40.2504 22.0413 43.1231 23.2723 45.9954C24.2571 48.2932 29.9744 50.509 32.71 51.3297",stroke:"#E65C5C",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M13.4247 27.5308L22.4523 23.0173L24.5037 27.5308",stroke:"#E65C5C",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"}),b.createElement("path",{d:"M56.977 29.7872L48.2848 25.2737L46.3096 29.7872",stroke:"#E65C5C",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})),Ut="@Godwin",Kt="Project Owner of AI-Mon",$t="AI App",qt="#FF909036",_t="#FF8888",en={toc:[]};function tn(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},en,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"Scale-in and scale-out in a cluster configuration is also ",(0,He.kt)("strong",{parentName:"p"},"easy"),", and the ecosystem is very rich, with operation monitoring tools such as Grafana being able to be installed immediately with the installation command (TiUP)."))}tn.isMDXComponent=!0;const nn=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M22.1947 12.9844C18.3239 20.7492 11.3819 36.6637 14.5807 38.203C17.7796 39.7422 27.1957 40.1995 31.5039 40.2357C33.936 47.3554 38.8002 61.5947 38.8002 61.5947",stroke:"#11A6ED",strokeWidth:"6",strokeLinecap:"round"}),b.createElement("circle",{cx:"47.1448",cy:"23.7563",r:"5.96479",stroke:"#0EA6F1",strokeWidth:"6"})),rn="@Kentaro Kitagawa",on="Senior DBA, LINE Corporation",ln="Internet",an="#3BBDFB36",sn="#11A6ED",cn={toc:[]};function Ln(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},cn,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("p",null,"TiDB Serverless's ",(0,He.kt)("strong",{parentName:"p"},"automatic scaling")," capabilities allow us to swiftly scale up to meet performance demands and scale down during quieter periods for optimizing costs."))}Ln.isMDXComponent=!0;const dn=b.createElement("svg",{width:"72",height:"72",viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("circle",{cx:"36",cy:"36",r:"35.5",stroke:"#707070"}),b.createElement("path",{d:"M35.4805 21.6723L18.9297 39.4198C18.0909 40.3882 16.7792 42.5791 18.2429 43.5944C19.7067 44.6098 26.8324 46.6211 30.2124 47.4999L28.3292 58.9467",stroke:"#A9C941",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"})),un="@Yaohui Sun",mn="Data Platform Lead, Chainbase",pn="Web 3",hn="#A9C94136",Cn="#A9C941";function kn(){return b.createElement(de,null,b.createElement(ue,null,b.createElement(me,null,"We Build with ",b.createElement("a",{href:"https://www.pingcap.com/tidb-cloud-serverless/?utm_source=ossinsight&utm_medium=referral&utm_campaign=plg_OSScontribution_credit_05",target:"_blank",rel:"noreferrer"},"TiDB")),b.createElement($e.ZP,{sequential:!0,sx:{mt:7,listStyle:"none"},component:"ul",columns:[1,1,2,3],spacing:3},En.map(((e,t)=>b.createElement(gn,{key:t,style:{"--color1":e.color,"--color2":e.backgroundColor}},b.createElement(fn,null,e.avatar,b.createElement(wn,null,b.createElement(vn,null,e.name),b.createElement(yn,null,e.bio),b.createElement(xn,null,e.label))),b.createElement(p.Z,{sx:{display:"flex",pt:2}},b.createElement("svg",{style:{flexShrink:0,marginRight:8},width:"20",height:"30",viewBox:"0 0 20 30",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M2 22V14.496C2 12.5547 2.61407 10.912 3.8081 9.75467C4.6951 8.82133 5.47974 8.41067 7.11727 8L8.61834 10.8373C7.28785 11.0613 6.60554 11.36 5.92324 11.9947C5.30917 12.5547 5.07036 13.152 4.96802 14.496H8.89126V22H2ZM11.1429 22V14.496C11.1429 12.5547 11.7569 10.912 12.9168 9.75467C13.838 8.82133 14.6226 8.41067 16.226 8L17.7271 10.8373C16.3966 11.0613 15.7143 11.36 15.0661 11.9947C14.4179 12.5547 14.2132 13.152 14.1109 14.496H18V22H11.1429Z",fill:"white"})),b.createElement(bn,null,b.createElement(e.content,null)))))))))}const En=[r,o,i,l,a,s,c,L,d],gn=(0,w.ZP)("li")` background-color: #141414; border-radius: 20px; padding: 24px; -`,wn=(0,w.ZP)("div")` +`,fn=(0,w.ZP)("div")` display: flex; gap: 24px; -`,vn=(0,w.ZP)("div")` +`,wn=(0,w.ZP)("div")` font-size: 12px; font-weight: 700; line-height: 24px; -`,yn=(0,w.ZP)("div")` +`,vn=(0,w.ZP)("div")` color: white; -`,xn=(0,w.ZP)("div")` +`,yn=(0,w.ZP)("div")` color: #C6C6C6; -`,bn=(0,w.ZP)("div")` +`,xn=(0,w.ZP)("div")` margin-top: 4px; width: max-content; padding: 4px 10px; @@ -310,7 +310,7 @@ font-weight: 700; line-height: 1; color: var(--color1); -`,Fn=(0,w.ZP)("blockquote")` +`,bn=(0,w.ZP)("blockquote")` padding: 0; border: none; margin-bottom: 0; @@ -328,18 +328,18 @@ position: absolute; margin-top: 9px; } -`;var Mn=n(93703),Zn=n(6971),Vn=n(61802);function Wn(){const{data:e}=(0,H.ZP)(["pingcap/tidb","gh:repo"],Mn.getRepo),t=null==e?void 0:e.id,{data:n}=(0,Zn.WV)("analyze-repo-pr-overview",{repoId:t},!1,(0,Vn.nf)(t)),r=[{count:(null==e?void 0:e.watchers)??"-",description:"\u2728 GitHub Stars",color:"#73D9B4"},{count:(null==n?void 0:n.data[0].pull_requests)??"-",description:"\u270f\ufe0f Pull Requests",color:"#5DC1ED"},{count:873,description:"\ud83d\udc6b Contributors",color:"#5DC1ED"}];return b.createElement(ue,null,b.createElement(me,null,b.createElement(pe,null,"TiDB \u2764\ufe0f Open Source"),b.createElement(he,null,"We take pride in our ",b.createElement("strong",null,"open-source")," roots.",b.createElement("br",null),"With the developer community, we align our product, to make sure it perfectly fits modern application developer's needs."),b.createElement(Dn,null,Sn),b.createElement(Hn,null,Sn,b.createElement(Bn,null,r.map(((e,t)=>b.createElement(jn,{key:t,style:{"--color1":e.color}},b.createElement(An,null,e.count),b.createElement(Tn,null,e.description)))))),b.createElement(he,{sx:{mt:4}},b.createElement("a",{href:"https://github.com/pingcap/ossinsight",target:"_blank",rel:"noreferrer"},"Discover TiDB on GitHub ->"))))}const Dn=(0,w.ZP)("div")` +`;var Fn=n(93703),Mn=n(6971),Zn=n(61802);function Vn(){const{data:e}=(0,D.ZP)(["pingcap/tidb","gh:repo"],Fn.getRepo),t=null==e?void 0:e.id,{data:n}=(0,Mn.WV)("analyze-repo-pr-overview",{repoId:t},!1,(0,Zn.nf)(t)),r=[{count:(null==e?void 0:e.watchers)??"-",description:"\u2728 GitHub Stars",color:"#73D9B4"},{count:(null==n?void 0:n.data[0].pull_requests)??"-",description:"\u270f\ufe0f Pull Requests",color:"#5DC1ED"},{count:873,description:"\ud83d\udc6b Contributors",color:"#5DC1ED"}];return b.createElement(de,null,b.createElement(ue,null,b.createElement(me,null,"TiDB \u2764\ufe0f Open Source"),b.createElement(pe,null,"We take pride in our ",b.createElement("strong",null,"open-source")," roots.",b.createElement("br",null),"With the developer community, we align our product, to make sure it perfectly fits modern application developer's needs."),b.createElement(Wn,null,Tn),b.createElement(Dn,null,Tn,b.createElement(Hn,null,r.map(((e,t)=>b.createElement(Bn,{key:t,style:{"--color1":e.color}},b.createElement(jn,null,e.count),b.createElement(An,null,e.description)))))),b.createElement(pe,{sx:{mt:4}},b.createElement("a",{href:"https://github.com/pingcap/ossinsight",target:"_blank",rel:"noreferrer"},"Discover TiDB on GitHub ->"))))}const Wn=(0,w.ZP)("div")` display: block; margin-top: 120px; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` display: none; `}}} > svg { display: block; margin: auto; } -`,Hn=(0,w.ZP)("div")` +`,Dn=(0,w.ZP)("div")` padding: 36px; display: flex; background-color: #141414; @@ -355,51 +355,51 @@ display: none; margin-right: 42px; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` display: block; `}}} } -`,Bn=(0,w.ZP)("div")` +`,Hn=(0,w.ZP)("div")` display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 56px; max-width: 100%; -`,jn=(0,w.ZP)("div")` +`,Bn=(0,w.ZP)("div")` display: flex; flex-direction: column; align-items: center; -`,An=(0,w.ZP)("div")` +`,jn=(0,w.ZP)("div")` font-size: 24px; line-height: 32px; font-weight: 700; color: white; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` font-size: 36px; line-height: 48px; `}}} -`,Tn=(0,w.ZP)("div")` +`,An=(0,w.ZP)("div")` color: var(--color1); font-size: 18px; line-height: 30px; font-weight: 500; - ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:$.iv` + ${e=>{let{theme:t}=e;return{[t.breakpoints.up("md")]:K.iv` font-size: 24px; line-height: 36px; `}}} -`,Sn=b.createElement("svg",{width:"85.2",height:"84",viewBox:"0 0 142 140",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("g",{clipPath:"url(#clip0_4_501)"},b.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M70.7885 0C31.6443 0 0 32.0833 0 71.7748C0 103.502 20.2756 130.359 48.4032 139.864C51.9198 140.579 53.208 138.32 53.208 136.42C53.208 134.756 53.0921 129.052 53.0921 123.11C33.4004 127.388 29.2998 114.554 29.2998 114.554C26.1352 106.235 21.4463 104.097 21.4463 104.097C15.0013 99.7004 21.9158 99.7004 21.9158 99.7004C29.0651 100.176 32.8165 107.068 32.8165 107.068C39.1442 118 49.3407 114.911 53.4427 113.009C54.0281 108.375 55.9045 105.166 57.8969 103.384C42.1914 101.72 25.6672 95.5413 25.6672 67.9715C25.6672 60.1285 28.4782 53.7119 32.9324 48.7215C32.2297 46.9394 29.7678 39.5704 33.6366 29.7077C33.6366 29.7077 39.6137 27.806 53.0906 37.0752C58.8606 35.5041 64.8111 34.7049 70.7885 34.6981C76.7655 34.6981 82.8585 35.5308 88.4848 37.0752C101.963 27.806 107.94 29.7077 107.94 29.7077C111.809 39.5704 109.346 46.9394 108.643 48.7215C113.215 53.7119 115.91 60.1285 115.91 67.9715C115.91 95.5413 99.3855 101.601 83.5627 103.384C86.1418 105.642 88.3675 109.919 88.3675 116.693C88.3675 126.318 88.2515 134.043 88.2515 136.418C88.2515 138.32 89.5411 140.579 93.0564 139.866C121.184 130.357 141.46 103.502 141.46 71.7748C141.575 32.0833 109.815 0 70.7885 0Z",fill:"white"})),b.createElement("defs",null,b.createElement("clipPath",{id:"clip0_4_501"},b.createElement("rect",{width:"142",height:"140",fill:"white"})))),In={toc:[{value:"Why would TiDB commit to the open source community?",id:"why-would-tidb-commit-to-the-open-source-community",level:3},{value:"How do I claim my credits?",id:"how-do-i-claim-my-credits",level:3},{value:"How can I contact support if I face issues redeeming my credits?",id:"how-can-i-contact-support-if-i-face-issues-redeeming-my-credits",level:3}]};function Pn(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},In,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("h3",{id:"why-would-tidb-commit-to-the-open-source-community"},"Why would TiDB commit to the open source community?"),(0,Be.kt)("p",null,"TiDB believes that open source fosters innovation, collaboration, and community-driven development. By actively contributing to and supporting open-source projects, TiDB aims to create a vibrant ecosystem that benefits all participants."),(0,Be.kt)("h3",{id:"how-do-i-claim-my-credits"},"How do I claim my credits?"),(0,Be.kt)("p",null,"Once you\u2019ve logged in with your GitHub Username and your credits have been calculated, you can redeem them by logging into your OssInsight or TiDB Cloud account. The credits will be automatically applied to your account. Make sure you use the the same Github account for both OSSInsight SSO login and TiDB Cloud SSO login."),(0,Be.kt)("h3",{id:"how-can-i-contact-support-if-i-face-issues-redeeming-my-credits"},"How can I contact support if I face issues redeeming my credits?"),(0,Be.kt)("p",null,"You can reach out to our support team through ",(0,Be.kt)("a",{href:"mailto:ossinsight@pingcap.com"},(0,Be.kt)("a",{parentName:"p",href:"mailto:ossinsight@pingcap.com"},"ossinsight@pingcap.com"))))}function Rn(){return b.createElement(ue,null,b.createElement(me,null,b.createElement(pe,null,"FAQ"),b.createElement(Pn,null)))}function Nn(e){let{children:t}=e;const[n,r]=(0,b.useState)(!0);return b.createElement(Xn,null,b.createElement(Qn,{initial:n?"collapsed":"flatten",animate:n?"collapsed":"flatten",variants:zn,transition:{bounce:0}},t,b.createElement(Jn,{variants:On})),b.createElement(m.Z,{sx:{mt:2},onClick:()=>r((e=>!e))},n?"Read more":"Collapse"))}Pn.isMDXComponent=!0;const zn={collapsed:{height:240},flatten:{height:"auto"}},On={collapsed:{boxShadow:"0 0 40px 40px #141414"},flatten:{boxShadow:"none"}},Xn=(0,w.ZP)("div")` +`,Tn=b.createElement("svg",{width:"85.2",height:"84",viewBox:"0 0 142 140",fill:"none",xmlns:"http://www.w3.org/2000/svg"},b.createElement("g",{clipPath:"url(#clip0_4_501)"},b.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M70.7885 0C31.6443 0 0 32.0833 0 71.7748C0 103.502 20.2756 130.359 48.4032 139.864C51.9198 140.579 53.208 138.32 53.208 136.42C53.208 134.756 53.0921 129.052 53.0921 123.11C33.4004 127.388 29.2998 114.554 29.2998 114.554C26.1352 106.235 21.4463 104.097 21.4463 104.097C15.0013 99.7004 21.9158 99.7004 21.9158 99.7004C29.0651 100.176 32.8165 107.068 32.8165 107.068C39.1442 118 49.3407 114.911 53.4427 113.009C54.0281 108.375 55.9045 105.166 57.8969 103.384C42.1914 101.72 25.6672 95.5413 25.6672 67.9715C25.6672 60.1285 28.4782 53.7119 32.9324 48.7215C32.2297 46.9394 29.7678 39.5704 33.6366 29.7077C33.6366 29.7077 39.6137 27.806 53.0906 37.0752C58.8606 35.5041 64.8111 34.7049 70.7885 34.6981C76.7655 34.6981 82.8585 35.5308 88.4848 37.0752C101.963 27.806 107.94 29.7077 107.94 29.7077C111.809 39.5704 109.346 46.9394 108.643 48.7215C113.215 53.7119 115.91 60.1285 115.91 67.9715C115.91 95.5413 99.3855 101.601 83.5627 103.384C86.1418 105.642 88.3675 109.919 88.3675 116.693C88.3675 126.318 88.2515 134.043 88.2515 136.418C88.2515 138.32 89.5411 140.579 93.0564 139.866C121.184 130.357 141.46 103.502 141.46 71.7748C141.575 32.0833 109.815 0 70.7885 0Z",fill:"white"})),b.createElement("defs",null,b.createElement("clipPath",{id:"clip0_4_501"},b.createElement("rect",{width:"142",height:"140",fill:"white"})))),Sn={toc:[{value:"Why would TiDB commit to the open source community?",id:"why-would-tidb-commit-to-the-open-source-community",level:3},{value:"How do I claim my credits?",id:"how-do-i-claim-my-credits",level:3},{value:"How can I contact support if I face issues redeeming my credits?",id:"how-can-i-contact-support-if-i-face-issues-redeeming-my-credits",level:3}]};function In(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Sn,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("h3",{id:"why-would-tidb-commit-to-the-open-source-community"},"Why would TiDB commit to the open source community?"),(0,He.kt)("p",null,"TiDB believes that open source fosters innovation, collaboration, and community-driven development. By actively contributing to and supporting open-source projects, TiDB aims to create a vibrant ecosystem that benefits all participants."),(0,He.kt)("h3",{id:"how-do-i-claim-my-credits"},"How do I claim my credits?"),(0,He.kt)("p",null,"Once you\u2019ve logged in with your GitHub Username and your credits have been calculated, you can redeem them by logging into your OssInsight or TiDB Cloud account. The credits will be automatically applied to your account. Make sure you use the the same Github account for both OSSInsight SSO login and TiDB Cloud SSO login."),(0,He.kt)("h3",{id:"how-can-i-contact-support-if-i-face-issues-redeeming-my-credits"},"How can I contact support if I face issues redeeming my credits?"),(0,He.kt)("p",null,"You can reach out to our support team through ",(0,He.kt)("a",{href:"mailto:ossinsight@pingcap.com"},(0,He.kt)("a",{parentName:"p",href:"mailto:ossinsight@pingcap.com"},"ossinsight@pingcap.com"))))}function Pn(){return b.createElement(de,null,b.createElement(ue,null,b.createElement(me,null,"FAQ"),b.createElement(In,null)))}function Rn(e){let{children:t}=e;const[n,r]=(0,b.useState)(!0);return b.createElement(On,null,b.createElement(Xn,{initial:n?"collapsed":"flatten",animate:n?"collapsed":"flatten",variants:Nn,transition:{bounce:0}},t,b.createElement(Qn,{variants:zn})),b.createElement(m.Z,{sx:{mt:2},onClick:()=>r((e=>!e))},n?"Read more":"Collapse"))}In.isMDXComponent=!0;const Nn={collapsed:{height:240},flatten:{height:"auto"}},zn={collapsed:{boxShadow:"0 0 40px 40px #141414"},flatten:{boxShadow:"none"}},On=(0,w.ZP)("div")` border: 1px solid #565656; background: #141414; border-radius: 2px; padding: 56px; -`,Qn=(0,Me.E)((0,w.ZP)("div")` +`,Xn=(0,Fe.E)((0,w.ZP)("div")` overflow: hidden; position: relative; -`),Jn=(0,Me.E)((0,w.ZP)("div")` +`),Qn=(0,Fe.E)((0,w.ZP)("div")` position: absolute; left: 0; bottom: 0; @@ -407,4 +407,4 @@ display: block; width: 100%; height: 0; -`),Yn={toc:[{value:"General Terms",id:"general-terms",level:3},{value:"Who Can Participate",id:"who-can-participate",level:3},{value:"Rewards",id:"rewards",level:3},{value:"Privacy",id:"privacy",level:3},{value:"No Guarantees",id:"no-guarantees",level:3},{value:"Limitation of Liability",id:"limitation-of-liability",level:3},{value:"Legal Stuff",id:"legal-stuff",level:3},{value:"Contact Us",id:"contact-us",level:3}]};function Gn(e){let{components:t,...n}=e;return(0,Be.kt)("wrapper",(0,y.Z)({},Yn,n,{components:t,mdxType:"MDXLayout"}),(0,Be.kt)("h3",{id:"general-terms"},"General Terms"),(0,Be.kt)("p",null,"By participating in this campaign, you agree to these terms. PingCAP can change or end the campaign at any time without notice. Follow all rules, laws, and GitHub's terms of service."),(0,Be.kt)("h3",{id:"who-can-participate"},"Who Can Participate"),(0,Be.kt)("p",null,"The campaign is open to anyone, except PingCAP employees, contractors, affiliates, and their immediate family members."),(0,Be.kt)("h3",{id:"rewards"},"Rewards"),(0,Be.kt)("p",null,"TiDB Cloud credits are valid for 1 year and cannot be transferred, refunded, or exchanged for cash. The cutoff date to claim the credits is October 1, 2025. PingCAP reserves the right to end the promotion earlier or extend the cutoff date."),(0,Be.kt)("h3",{id:"privacy"},"Privacy"),(0,Be.kt)("p",null,"By participating, you agree that PingCAP can use your data according to our ",(0,Be.kt)("a",{target:"_blank",href:"https://www.pingcap.com/privacy-policy/"},"Privacy Policy"),". Your data will only be used to run this campaign and won't be shared without your consent, except as required by law."),(0,Be.kt)("h3",{id:"no-guarantees"},"No Guarantees"),(0,Be.kt)("p",null,"PingCAP does not guarantee the availability or operation of the TiDB software, the TiDB Cloud platform, or the credits offered in this campaign. Use them at your own risk."),(0,Be.kt)("h3",{id:"limitation-of-liability"},"Limitation of Liability"),(0,Be.kt)("p",null,"PingCAP is not responsible for any losses or damages that may happen from participating in this campaign or using the TiDB Cloud credits."),(0,Be.kt)("h3",{id:"legal-stuff"},"Legal Stuff"),(0,Be.kt)("p",null,"This campaign follows the laws of California. Any disputes will be resolved through arbitration in San Mateo, California, USA."),(0,Be.kt)("h3",{id:"contact-us"},"Contact Us"),(0,Be.kt)("p",null,"For questions or concerns, please contact us at ",(0,Be.kt)("a",{target:"_blank",href:"https://www.pingcap.com/contact-us/"},(0,Be.kt)("a",{parentName:"p",href:"https://www.pingcap.com/contact-us/"},"https://www.pingcap.com/contact-us/")),"."))}function Un(){return b.createElement(ue,null,b.createElement(me,null,b.createElement(pe,null,"Legal Statement"),b.createElement(Nn,null,b.createElement(Gn,null))))}Gn.isMDXComponent=!0;var Kn=n(88242);function $n(){return b.createElement(Kn.Z,{title:"Open Source Heroes Claim FREE TiDB Serverless Credits!",description:"TiDB Serverless rewards your contributions with up to $1,000 in FREE credits to build modern, scalable, AI-powered applications. Power your next big idea with a powerful serverless database. Learn more & qualify!",keywords:["opensource","database","cloud","developer","tidbserverless"],dark:!0,footer:!1},b.createElement(Le,null),b.createElement(Ce,null),b.createElement(Je,null),b.createElement(En,null),b.createElement(Wn,null),b.createElement(Rn,null),b.createElement(Un,null))}},88242:(e,t,n)=>{n.d(t,{Z:()=>s});var r=n(87462),o=n(5018),i=n(67294),l=n(61802),a=n(5616);function s(e){let{children:t,header:n,dark:s,sideWidth:c,Side:L,footer:d=!0,...u}=e;return(0,i.useLayoutEffect)((()=>{var e;const t=location.hash.replace(/^#/,"");null==(e=document.getElementById(t))||e.scrollIntoView()}),[]),i.createElement(o.Z,(0,r.Z)({},u,{customFooter:d,header:n,sideWidth:c,side:c&&(0,l.nf)(L)?i.createElement(a.Z,{component:"aside",width:c,position:"sticky",top:"calc(var(--ifm-navbar-height) + 76px)",height:0,zIndex:0},i.createElement(a.Z,{marginTop:"-76px",height:"calc(100vh - var(--ifm-navbar-height))"},i.createElement(L,null))):void 0}),i.createElement("div",{hidden:!0,style:{height:72}}),i.createElement("div",{style:{paddingLeft:c,paddingRight:c}},i.createElement("main",{style:{"--ifm-container-width-xl":"1200px"}},t)))}},1969:(e,t,n)=>{function r(e){const t=Object.entries(e).filter((e=>{let[,t]=e;return null!=t})).map((e=>{let[t,n]=e;return`${encodeURIComponent(t)}=${encodeURIComponent(String(n))}`}));return t.length>0?`?${t.join("&")}`:""}function o(e,t){let{title:n,via:o,hashtags:i=[],related:l=[]}=t;return"https://twitter.com/share"+r({url:e,text:n,via:o,hashtags:i.length>0?i.join(","):void 0,related:l.length>0?l.join(","):void 0})}function i(e,t){let{title:n,summary:o,source:i}=t;return"https://linkedin.com/shareArticle"+r({url:e,mini:"true",title:n,summary:o,source:i})}function l(e,t){let{title:n}=t;return"https://www.reddit.com/submit"+r({url:e,title:n})}function a(e,t){let{title:n}=t;return"https://telegram.me/share/url"+r({url:e,text:n})}n.d(t,{$Z:()=>l,BE:()=>i,OA:()=>a,PE:()=>o})},4302:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/ossi-logo-8946ac897fa79c8af7819c7f4c24167b.png"},86033:(e,t,n)=>{n.d(t,{Z:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQgAAACICAYAAAAbMXWTAAANTklEQVR4Xu3dCawkVRUGYJgZFhcW2RxxYApDWETFYQm4gk4giIYEVARUwuKCASNEERIRBM1MIiFgVCJgiAQEjCLjStwyKghBRIhGFkXeKEYxyAygIij4e87c12PV/+rV0n2ruqv6/5KTyOu659523j2vu+rWrY02EhEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREZEoACywOMriufyaiEwxKwrLLe5CsMbiaIuN+TgRmSJWBJZa3Gjx7GxxSPuhxV7cRkR6zib+lhYXWzyZrQm5PmexlHOISA/ZZH+3xUNUBMr48edYLOJ8ItIDNrlfZfHT7Lyvbcbi7ZxbRDrKJvSLLC7KzvORfc9iN+5LRDrCJvBmFh+yeCw7t6P5j8Wl0GVRke6wCbuxxREWD2amc3Met3iPxUIei4hMEJuke1v8ODt/W3OfxQE8JhEZM5uYOyF83M9bz9A2X1ehy6Ii44awnsHPMzyanaNj5+c9Pm2xmMcsIi2wyfcGi7uz83Li+HmQ90PrJ0TaYZMtsfhmdh5OvF9avJ7fi4hEYhPs+RafRLi82EV+fuRKi534vYnICGxSnWDxt+x8i26Vxf4Wn+EXInvC4gKLBfw+RaQGm0QHWdyRmV7x+W3eh1O/+1p8n46L7fcWR6f7FZEKbOLsbHG9xVPZORXVXy3Ottic+x9A+OSyJtssOl+2rdvKRcrYRNnCYoXF2uwcispv8f68xQ7cfx47blOEQtLUku2Byy125P5Fpp5NjEUWx1s8kJ0z0fkmMMu4/yqs3WKLaylfbP6p5iMWW3L/IlPJJsMr0Pz3/T9avBkR1iMgnMj8VTZ9dPeDzouITBWbAC+wuMriv9m5EdU6i1MtnsP9jwrhE0/T5ye8cL6U++4yez/bWJxn8RWET2QfhL5aCbNfir9smAbN8PMMu3C/sVjuhQjnS5r2D4uE+y9ixx9msXrMcUrOuN6C/GXxXmj34+PTENquHjF+YPEtiysQ7sA9yGJT7msUlu+6nH6HDR/vDQjrfw61eB7311v2Zv+FZtxssT/3F5PlPxztLvNOeAxF7PhTOMEYrKQx7W7xMB+U4tv6bZ1uk2avnc4NIvErZX7FzAvGyBMQzf7h+6fFFy325n57B/ELxB8sTuR+YrL8uyL8BWpbwmMpgsksEP51ssxH023S0FyBSHvE4nyLnbn/qtBsgRjwr+X+6XUz7r83EK9A+NLrlRZbcR+xWO6tZ/vwzWHGIeExFcFkFgi/H6XMNek2aWinQAz4Se3jeQxVoJ0CMXALIn9FmhgYvUB4FfWPho3tvYDwtK2TED6djFPCYyuCySwQ9/IBOa5Pt0lDuwViwNem1NpSEO0WCHcdj6EXMFqBuNPiYM4Zk+V/LUbfBTuWhMdXBJNZIKp8xTgr3SYN4ykQ7mcoODfC0H6BcP1bso/hCoSfyDoNEdYzzAfhdnL/ZX420/N4JTzOIpjMAnGwxdN8UMoMCr77Y3wFwt2OipfKMZ4C4SfMG5sTY4H6BeImNLzCEGETmipP2xqWn8Oo8l2cJTzWInb8uxB+UavG39f3UsyP4XZFcU7OuE5EuJuV+Z26B/LxaahWIHgM6fATkKNsFXAVjykPQl9F/CqEF8uiOMTivQj36VThX7dfzWPpNNQvEJdwjtgQbs5qymqEh/cM00fCYy2CsHR98xpx2PpeivknN25XFLl/0eznL7e4DOH/Dy/6l6DCeSRUKxB7YO44BuH7iSyxOABh8n0N1Qpj2gk8LobyAnE2tymCcFWlymLCzCe2zsP0FAi/v2LD08IxXB8JDTUqhL9aZeYsfGoTqhWIhNsVseO3Q3ioUpUJ6PzfsvB8BCIXCGdtvsRJcsx7BaiT0P8C4ecwzgX9JcVwfSTpHLFhSgvEgLVbhuobEl3I7dPQTIFYyklyfIPbdRr6XSCuttie8zsM10fCeWLClBcIZ213QfFKzwH/WrIFtx9AMwXCHwZVdm7sJm7XaehngfgJSpZ5Y7g+Es4TE1ooEAh/BVeWxHbcbgANFwhn7d9h8QwnzXEytx1AAwXCIVzlKfJVbtNp6FeB8Muvx6LC0lcM10fCeWJCOwXiQE6YYw9uN4AWCoSzHNdw0hy3crsBNFcgHuNE5CJu02louEAgLI+e96NgHgw3ef0BOdtwrvlguD4SzhMTVCA2QNiPtOykpa/nWMJtHRooENZmT06S4whu12losEDYsR9AuK044deKoIXJixb6qAsqEBmW50ecOMeR3M6hmQJRttO63ztSaSFXZ6CBAmHHvA5hN6aBhI8pghYmL1rooy6oQGQgPM6xzAXcziFygbDjT+YEOU7jdp2HiAXCXkuQfxt2wscWQQuTFy30URdUIDIsz26cOEfujWUoLxAXIizoKgrfhtEXc1XZitF35lrI4+g8RCgQ+P/TtnxruTwJtymCFiYvWuijLqhAZCA8FLrMbdzOobxAxOQ3kuVeTu88jFggECbaDB3DknSbMmhh8qKFPuqCCsQcKF849TC3cWinQPzb4mLUPAnfKRiyQCDchv1zfnEeCXVbCC1MXrTQR11QgZgD5VsKPsNtHJovEL5Q6xjut3dQv0BcPxtFtwyzhPstghYmL1rooy6oQMyBsOitELdxaL5AOJ8DvinzJtx/b6B+gRhGwv0WQQuTFy30URdUIOawXLdxcsZtHNopEAMzFrvxGHoBKhB1JJwnJqhAzGG5fsfJydPcxqHdAuFm0LNnp6wHFYg6Es4TE1QgMhD20yj7/XyI2zmUF4g/IzxRvii8OJUtrU6bQY3VvJ2A8n+AGBLutwhamLxooY+6oAKRgfB0+TI3czuH8gJRaaEUwh2c+yFsbFPFFzhHp0EFoo6E88QEFYgMy7OcE+dYxe0cIhWINGvzMU6Sw/cfKd2ZqzOgAlFHwnliggpEBsIagzJncjuHBgqEQ7X7Q07ndp0FFYg6Es4TE1QgNkA4/+Ab3JZZzm0dmisQ/nWjzNXcrrOgAlFHwnliggrEBgibxpTxZ2S2drv3AMpz38NtOgsqEHUknCcmqECsh3Bvzz2cNMd3uO0AyifxKAWibGyPcJvOggpEHQnniQkqEOuh2rkHdzy3HUCzBeLXnIys4zadBRWIOhLOExNUIDy/315dZT/KtSh4YC4aKhDWbhOUP8djLbfrLKhA1JFwnpgw5QXC2p3JiQqcwe3T0FyBOJQT5fgtt+ssqEDUkXCemDClBQLhKVtVH2/nHkDJ077RQIGwNttbrOFEOfrz8ByoQNSRcJ6Y0J8C4X0szokdLRKLl1kcifA0rV/MtqnjjTwuhsgFwo7fyeIWTjIPrYOoKeF+i6DhyWvHbmvxZU5QQcK5YkJ/CoT/Ts0Xo1rBY8qD8gJxrcUxJfFOhI2X/diq92T4JjI78ng6C3H+0cok3G8RNFQg7JiFFmcgPD9jGAnnjAn9KRBNuZzHMx+UF4imXMFj6TRMSYFAOLl0NzeqKeG8MUEFooh/4lvA45kPxlMg1qBP92E49LxA2M9fYrEK5Q9hqSLh/DFBBSKP3/y0AhWelpaG9guE7y71Jh5H56GnBcL+eyuLSyyeouNGkekjNqhAsN+g5Bmr80G7BcJ3c9+bx9AL6GGBsP99Kpr5BdnQRxOgAjHgXwXfh5JLmUXQzL9/nhvQ1y3vHXpUIBCe6HUrvxBRwmONCdNdIHz3ps9aHIIIm8Ci2QLxJ4vLLA7kfnvH3uR99Oab8BrutwiGKxDX8Q8i86W9W/NYY7L8/jSnG0viUG5Xh7XfNScnx2JuN2CvHZVzfJ34usXVFpciFJu3WryQ+xnVbB/c9zDhO0l5Ln84tD9+bx/uq9fsDW9n8SlUW/8+LM/tFbfSA0YwXIFo0pUW2/I4RaaGTYAlCM+7aJLfv+/fLRdx/2mYnALhuwftzuMTmVo2IQ5C+e2so7rX4hDuewDjLxAPWrwNBXcLikwthJ18/fuWn4xpkp83SHL6H1eB8OW056Phcw0ivYBwfuJciycz0yiuxxE2CHlxqt+2C4Svn7/KYpf0+xeRCmzi7I7mz0+sQbgxxjfkaLNA3Ix5Nj4VkRoQLkndTxMsNj//4Vc8muaPlT+J36OIjMAm1QKLsywezc63zvBLrr62v/BKioiMAGEDDT93EOMmqLb4opf+3KsvMulswr3S4rs0ESfNHRhxBaKIjMAm4HEI6xsmia/H/zC0nkFk/BAel/YJjP/8hK/YvAJ9vstOpKtsYu6AsAhqHOcn/LLlnjwmEZkwNlGXWdxJE7gpvo7iMB6DiEw4m7jHWsxk53M06xAWWG3O/YpIRyA8dOTjFk9kpvdo/DJr7tOdRaSDbEIvRXjOwChWW+zLuUWkJxC2PrsrO+9L+W3Yx3EuEekhhMuiflu53xdRxHemPs9iK84hIj1nE39LiwtnC0GaXyb1/QB35jYiMmWsEOxl8e3Z4nC7xcF8jIhMOSsM+1gs5J+LiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiEiz/ge33Zbv8RSo1wAAAABJRU5ErkJggg=="}}]); \ No newline at end of file +`),Jn={toc:[{value:"General Terms",id:"general-terms",level:3},{value:"Who Can Participate",id:"who-can-participate",level:3},{value:"Rewards",id:"rewards",level:3},{value:"Privacy",id:"privacy",level:3},{value:"No Guarantees",id:"no-guarantees",level:3},{value:"Limitation of Liability",id:"limitation-of-liability",level:3},{value:"Legal Stuff",id:"legal-stuff",level:3},{value:"Contact Us",id:"contact-us",level:3}]};function Yn(e){let{components:t,...n}=e;return(0,He.kt)("wrapper",(0,y.Z)({},Jn,n,{components:t,mdxType:"MDXLayout"}),(0,He.kt)("h3",{id:"general-terms"},"General Terms"),(0,He.kt)("p",null,"By participating in this campaign, you agree to these terms. PingCAP can change or end the campaign at any time without notice. Follow all rules, laws, and GitHub's terms of service."),(0,He.kt)("h3",{id:"who-can-participate"},"Who Can Participate"),(0,He.kt)("p",null,"The campaign is open to anyone, except PingCAP employees, contractors, affiliates, and their immediate family members."),(0,He.kt)("h3",{id:"rewards"},"Rewards"),(0,He.kt)("p",null,"TiDB Cloud credits are valid for 1 year and cannot be transferred, refunded, or exchanged for cash. The cutoff date to claim the credits is October 1, 2025. PingCAP reserves the right to end the promotion earlier or extend the cutoff date."),(0,He.kt)("h3",{id:"privacy"},"Privacy"),(0,He.kt)("p",null,"By participating, you agree that PingCAP can use your data according to our ",(0,He.kt)("a",{target:"_blank",href:"https://www.pingcap.com/privacy-policy/"},"Privacy Policy"),". Your data will only be used to run this campaign and won't be shared without your consent, except as required by law."),(0,He.kt)("h3",{id:"no-guarantees"},"No Guarantees"),(0,He.kt)("p",null,"PingCAP does not guarantee the availability or operation of the TiDB software, the TiDB Cloud platform, or the credits offered in this campaign. Use them at your own risk."),(0,He.kt)("h3",{id:"limitation-of-liability"},"Limitation of Liability"),(0,He.kt)("p",null,"PingCAP is not responsible for any losses or damages that may happen from participating in this campaign or using the TiDB Cloud credits."),(0,He.kt)("h3",{id:"legal-stuff"},"Legal Stuff"),(0,He.kt)("p",null,"This campaign follows the laws of California. Any disputes will be resolved through arbitration in San Mateo, California, USA."),(0,He.kt)("h3",{id:"contact-us"},"Contact Us"),(0,He.kt)("p",null,"For questions or concerns, please contact us at ",(0,He.kt)("a",{target:"_blank",href:"https://www.pingcap.com/contact-us/"},(0,He.kt)("a",{parentName:"p",href:"https://www.pingcap.com/contact-us/"},"https://www.pingcap.com/contact-us/")),"."))}function Gn(){return b.createElement(de,null,b.createElement(ue,null,b.createElement(me,null,"Legal Statement"),b.createElement(Rn,null,b.createElement(Yn,null))))}Yn.isMDXComponent=!0;var Un=n(88242);function Kn(){return b.createElement(Un.Z,{title:"Open Source Heroes Claim FREE TiDB Serverless Credits!",description:"TiDB Serverless rewards your contributions with up to $1,000 in FREE credits to build modern, scalable, AI-powered applications. Power your next big idea with a powerful serverless database. Learn more & qualify!",keywords:["opensource","database","cloud","developer","tidbserverless"],dark:!0,footer:!1},b.createElement(ce,null),b.createElement(he,null),b.createElement(Qe,null),b.createElement(kn,null),b.createElement(Vn,null),b.createElement(Pn,null),b.createElement(Gn,null))}},88242:(e,t,n)=>{n.d(t,{Z:()=>s});var r=n(87462),o=n(5018),i=n(67294),l=n(61802),a=n(5616);function s(e){let{children:t,header:n,dark:s,sideWidth:c,Side:L,footer:d=!0,...u}=e;return(0,i.useLayoutEffect)((()=>{var e;const t=location.hash.replace(/^#/,"");null==(e=document.getElementById(t))||e.scrollIntoView()}),[]),i.createElement(o.Z,(0,r.Z)({},u,{customFooter:d,header:n,sideWidth:c,side:c&&(0,l.nf)(L)?i.createElement(a.Z,{component:"aside",width:c,position:"sticky",top:"calc(var(--ifm-navbar-height) + 76px)",height:0,zIndex:0},i.createElement(a.Z,{marginTop:"-76px",height:"calc(100vh - var(--ifm-navbar-height))"},i.createElement(L,null))):void 0}),i.createElement("div",{hidden:!0,style:{height:72}}),i.createElement("div",{style:{paddingLeft:c,paddingRight:c}},i.createElement("main",{style:{"--ifm-container-width-xl":"1200px"}},t)))}},1969:(e,t,n)=>{function r(e){const t=Object.entries(e).filter((e=>{let[,t]=e;return null!=t})).map((e=>{let[t,n]=e;return`${encodeURIComponent(t)}=${encodeURIComponent(String(n))}`}));return t.length>0?`?${t.join("&")}`:""}function o(e,t){let{title:n,via:o,hashtags:i=[],related:l=[]}=t;return"https://twitter.com/share"+r({url:e,text:n,via:o,hashtags:i.length>0?i.join(","):void 0,related:l.length>0?l.join(","):void 0})}function i(e,t){let{title:n,summary:o,source:i}=t;return"https://linkedin.com/shareArticle"+r({url:e,mini:"true",title:n,summary:o,source:i})}function l(e,t){let{title:n}=t;return"https://www.reddit.com/submit"+r({url:e,title:n})}function a(e,t){let{title:n}=t;return"https://telegram.me/share/url"+r({url:e,text:n})}n.d(t,{$Z:()=>l,BE:()=>i,OA:()=>a,PE:()=>o})},4302:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/ossi-logo-8946ac897fa79c8af7819c7f4c24167b.png"},86033:(e,t,n)=>{n.d(t,{Z:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQgAAACICAYAAAAbMXWTAAANTklEQVR4Xu3dCawkVRUGYJgZFhcW2RxxYApDWETFYQm4gk4giIYEVARUwuKCASNEERIRBM1MIiFgVCJgiAQEjCLjStwyKghBRIhGFkXeKEYxyAygIij4e87c12PV/+rV0n2ruqv6/5KTyOu659523j2vu+rWrY02EhEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREZEoACywOMriufyaiEwxKwrLLe5CsMbiaIuN+TgRmSJWBJZa3Gjx7GxxSPuhxV7cRkR6zib+lhYXWzyZrQm5PmexlHOISA/ZZH+3xUNUBMr48edYLOJ8ItIDNrlfZfHT7Lyvbcbi7ZxbRDrKJvSLLC7KzvORfc9iN+5LRDrCJvBmFh+yeCw7t6P5j8Wl0GVRke6wCbuxxREWD2amc3Met3iPxUIei4hMEJuke1v8ODt/W3OfxQE8JhEZM5uYOyF83M9bz9A2X1ehy6Ii44awnsHPMzyanaNj5+c9Pm2xmMcsIi2wyfcGi7uz83Li+HmQ90PrJ0TaYZMtsfhmdh5OvF9avJ7fi4hEYhPs+RafRLi82EV+fuRKi534vYnICGxSnWDxt+x8i26Vxf4Wn+EXInvC4gKLBfw+RaQGm0QHWdyRmV7x+W3eh1O/+1p8n46L7fcWR6f7FZEKbOLsbHG9xVPZORXVXy3Ottic+x9A+OSyJtssOl+2rdvKRcrYRNnCYoXF2uwcispv8f68xQ7cfx47blOEQtLUku2Byy125P5Fpp5NjEUWx1s8kJ0z0fkmMMu4/yqs3WKLaylfbP6p5iMWW3L/IlPJJsMr0Pz3/T9avBkR1iMgnMj8VTZ9dPeDzouITBWbAC+wuMriv9m5EdU6i1MtnsP9jwrhE0/T5ye8cL6U++4yez/bWJxn8RWET2QfhL5aCbNfir9smAbN8PMMu3C/sVjuhQjnS5r2D4uE+y9ixx9msXrMcUrOuN6C/GXxXmj34+PTENquHjF+YPEtiysQ7sA9yGJT7msUlu+6nH6HDR/vDQjrfw61eB7311v2Zv+FZtxssT/3F5PlPxztLvNOeAxF7PhTOMEYrKQx7W7xMB+U4tv6bZ1uk2avnc4NIvErZX7FzAvGyBMQzf7h+6fFFy325n57B/ELxB8sTuR+YrL8uyL8BWpbwmMpgsksEP51ssxH023S0FyBSHvE4nyLnbn/qtBsgRjwr+X+6XUz7r83EK9A+NLrlRZbcR+xWO6tZ/vwzWHGIeExFcFkFgi/H6XMNek2aWinQAz4Se3jeQxVoJ0CMXALIn9FmhgYvUB4FfWPho3tvYDwtK2TED6djFPCYyuCySwQ9/IBOa5Pt0lDuwViwNem1NpSEO0WCHcdj6EXMFqBuNPiYM4Zk+V/LUbfBTuWhMdXBJNZIKp8xTgr3SYN4ykQ7mcoODfC0H6BcP1bso/hCoSfyDoNEdYzzAfhdnL/ZX420/N4JTzOIpjMAnGwxdN8UMoMCr77Y3wFwt2OipfKMZ4C4SfMG5sTY4H6BeImNLzCEGETmipP2xqWn8Oo8l2cJTzWInb8uxB+UavG39f3UsyP4XZFcU7OuE5EuJuV+Z26B/LxaahWIHgM6fATkKNsFXAVjykPQl9F/CqEF8uiOMTivQj36VThX7dfzWPpNNQvEJdwjtgQbs5qymqEh/cM00fCYy2CsHR98xpx2PpeivknN25XFLl/0eznL7e4DOH/Dy/6l6DCeSRUKxB7YO44BuH7iSyxOABh8n0N1Qpj2gk8LobyAnE2tymCcFWlymLCzCe2zsP0FAi/v2LD08IxXB8JDTUqhL9aZeYsfGoTqhWIhNsVseO3Q3ioUpUJ6PzfsvB8BCIXCGdtvsRJcsx7BaiT0P8C4ecwzgX9JcVwfSTpHLFhSgvEgLVbhuobEl3I7dPQTIFYyklyfIPbdRr6XSCuttie8zsM10fCeWLClBcIZ213QfFKzwH/WrIFtx9AMwXCHwZVdm7sJm7XaehngfgJSpZ5Y7g+Es4TE1ooEAh/BVeWxHbcbgANFwhn7d9h8QwnzXEytx1AAwXCIVzlKfJVbtNp6FeB8Muvx6LC0lcM10fCeWJCOwXiQE6YYw9uN4AWCoSzHNdw0hy3crsBNFcgHuNE5CJu02louEAgLI+e96NgHgw3ef0BOdtwrvlguD4SzhMTVCA2QNiPtOykpa/nWMJtHRooENZmT06S4whu12losEDYsR9AuK044deKoIXJixb6qAsqEBmW50ecOMeR3M6hmQJRttO63ztSaSFXZ6CBAmHHvA5hN6aBhI8pghYmL1rooy6oQGQgPM6xzAXcziFygbDjT+YEOU7jdp2HiAXCXkuQfxt2wscWQQuTFy30URdUIDIsz26cOEfujWUoLxAXIizoKgrfhtEXc1XZitF35lrI4+g8RCgQ+P/TtnxruTwJtymCFiYvWuijLqhAZCA8FLrMbdzOobxAxOQ3kuVeTu88jFggECbaDB3DknSbMmhh8qKFPuqCCsQcKF849TC3cWinQPzb4mLUPAnfKRiyQCDchv1zfnEeCXVbCC1MXrTQR11QgZgD5VsKPsNtHJovEL5Q6xjut3dQv0BcPxtFtwyzhPstghYmL1rooy6oQMyBsOitELdxaL5AOJ8DvinzJtx/b6B+gRhGwv0WQQuTFy30URdUIOawXLdxcsZtHNopEAMzFrvxGHoBKhB1JJwnJqhAzGG5fsfJydPcxqHdAuFm0LNnp6wHFYg6Es4TE1QgMhD20yj7/XyI2zmUF4g/IzxRvii8OJUtrU6bQY3VvJ2A8n+AGBLutwhamLxooY+6oAKRgfB0+TI3czuH8gJRaaEUwh2c+yFsbFPFFzhHp0EFoo6E88QEFYgMy7OcE+dYxe0cIhWINGvzMU6Sw/cfKd2ZqzOgAlFHwnliggpEBsIagzJncjuHBgqEQ7X7Q07ndp0FFYg6Es4TE1QgNkA4/+Ab3JZZzm0dmisQ/nWjzNXcrrOgAlFHwnliggrEBgibxpTxZ2S2drv3AMpz38NtOgsqEHUknCcmqECsh3Bvzz2cNMd3uO0AyifxKAWibGyPcJvOggpEHQnniQkqEOuh2rkHdzy3HUCzBeLXnIys4zadBRWIOhLOExNUIDy/315dZT/KtSh4YC4aKhDWbhOUP8djLbfrLKhA1JFwnpgw5QXC2p3JiQqcwe3T0FyBOJQT5fgtt+ssqEDUkXCemDClBQLhKVtVH2/nHkDJ077RQIGwNttbrOFEOfrz8ByoQNSRcJ6Y0J8C4X0szokdLRKLl1kcifA0rV/MtqnjjTwuhsgFwo7fyeIWTjIPrYOoKeF+i6DhyWvHbmvxZU5QQcK5YkJ/CoT/Ts0Xo1rBY8qD8gJxrcUxJfFOhI2X/diq92T4JjI78ng6C3H+0cok3G8RNFQg7JiFFmcgPD9jGAnnjAn9KRBNuZzHMx+UF4imXMFj6TRMSYFAOLl0NzeqKeG8MUEFooh/4lvA45kPxlMg1qBP92E49LxA2M9fYrEK5Q9hqSLh/DFBBSKP3/y0AhWelpaG9guE7y71Jh5H56GnBcL+eyuLSyyeouNGkekjNqhAsN+g5Bmr80G7BcJ3c9+bx9AL6GGBsP99Kpr5BdnQRxOgAjHgXwXfh5JLmUXQzL9/nhvQ1y3vHXpUIBCe6HUrvxBRwmONCdNdIHz3ps9aHIIIm8Ci2QLxJ4vLLA7kfnvH3uR99Oab8BrutwiGKxDX8Q8i86W9W/NYY7L8/jSnG0viUG5Xh7XfNScnx2JuN2CvHZVzfJ34usXVFpciFJu3WryQ+xnVbB/c9zDhO0l5Ln84tD9+bx/uq9fsDW9n8SlUW/8+LM/tFbfSA0YwXIFo0pUW2/I4RaaGTYAlCM+7aJLfv+/fLRdx/2mYnALhuwftzuMTmVo2IQ5C+e2so7rX4hDuewDjLxAPWrwNBXcLikwthJ18/fuWn4xpkp83SHL6H1eB8OW056Phcw0ivYBwfuJciycz0yiuxxE2CHlxqt+2C4Svn7/KYpf0+xeRCmzi7I7mz0+sQbgxxjfkaLNA3Ix5Nj4VkRoQLkndTxMsNj//4Vc8muaPlT+J36OIjMAm1QKLsywezc63zvBLrr62v/BKioiMAGEDDT93EOMmqLb4opf+3KsvMulswr3S4rs0ESfNHRhxBaKIjMAm4HEI6xsmia/H/zC0nkFk/BAel/YJjP/8hK/YvAJ9vstOpKtsYu6AsAhqHOcn/LLlnjwmEZkwNlGXWdxJE7gpvo7iMB6DiEw4m7jHWsxk53M06xAWWG3O/YpIRyA8dOTjFk9kpvdo/DJr7tOdRaSDbEIvRXjOwChWW+zLuUWkJxC2PrsrO+9L+W3Yx3EuEekhhMuiflu53xdRxHemPs9iK84hIj1nE39LiwtnC0GaXyb1/QB35jYiMmWsEOxl8e3Z4nC7xcF8jIhMOSsM+1gs5J+LiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiEiz/ge33Zbv8RSo1wAAAABJRU5ErkJggg=="}}]); \ No newline at end of file diff --git a/assets/js/8258.00f858d5.js b/assets/js/8258.00f858d5.js deleted file mode 100644 index 0b096bea602..00000000000 --- a/assets/js/8258.00f858d5.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 8258.00f858d5.js.LICENSE.txt */ -(self.webpackChunkweb=self.webpackChunkweb||[]).push([[8258],{94184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t{var r=n(81445)("jsonp");e.exports=function(e,t,n){"function"==typeof t&&(n=t,t={});t||(t={});var i,a,l=t.prefix||"__jp",s=t.name||l+o++,u=t.param||"callback",d=null!=t.timeout?t.timeout:6e4,h=encodeURIComponent,w=document.getElementsByTagName("script")[0]||document.head;d&&(a=setTimeout((function(){p(),n&&n(new Error("Timeout"))}),d));function p(){i.parentNode&&i.parentNode.removeChild(i),window[s]=c,a&&clearTimeout(a)}return window[s]=function(e){r("jsonp got",e),p(),n&&n(null,e)},e=(e+=(~e.indexOf("?")?"&":"?")+u+"="+h(s)).replace("?&","?"),r('jsonp req "%s"',e),(i=document.createElement("script")).src=e,w.parentNode.insertBefore(i,w),function(){window[s]&&p()}};var o=0;function c(){}},81445:(e,t,n)=>{var r=n(25108),o=n(34155);function c(){var e;try{e=t.storage.debug}catch(n){}return!e&&void 0!==o&&"env"in o&&(e=o.env.DEBUG),e}(t=e.exports=n(84805)).log=function(){return"object"==typeof r&&r.log&&Function.prototype.apply.call(r.log,r,arguments)},t.formatArgs=function(e){var n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return;var r="color: "+this.color;e.splice(1,0,r,"color: inherit");var o=0,c=0;e[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(o++,"%c"===e&&(c=o))})),e.splice(c,0,r)},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(n){}},t.load=c,t.useColors=function(){if("undefined"!=typeof window&&window.process&&"renderer"===window.process.type)return!0;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},t.enable(c())},84805:(e,t,n)=>{var r,o=n(25108);function c(e){function n(){if(n.enabled){var e=n,c=+new Date,i=c-(r||c);e.diff=i,e.prev=r,e.curr=c,r=c;for(var a=new Array(arguments.length),l=0;l{var t=1e3,n=60*t,r=60*n,o=24*r,c=365.25*o;function i(e,t,n){if(!(e0)return function(e){if((e=String(e)).length>100)return;var i=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(!i)return;var a=parseFloat(i[1]);switch((i[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return a*c;case"days":case"day":case"d":return a*o;case"hours":case"hour":case"hrs":case"hr":case"h":return a*r;case"minutes":case"minute":case"mins":case"min":case"m":return a*n;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}(e);if("number"===s&&!1===isNaN(e))return a.long?i(l=e,o,"day")||i(l,r,"hour")||i(l,n,"minute")||i(l,t,"second")||l+" ms":function(e){if(e>=o)return Math.round(e/o)+"d";if(e>=r)return Math.round(e/r)+"h";if(e>=n)return Math.round(e/n)+"m";if(e>=t)return Math.round(e/t)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},68258:(e,t,n)=>{"use strict";n.d(t,{B:()=>V,MP:()=>x,YG:()=>S,Zm:()=>A,b0:()=>W,iR:()=>H,pA:()=>z,r2:()=>N,tq:()=>O});var r=n(85893),o=n(67294),c=n(94184),i=n(70365),a=n(25108),l=Object.defineProperty,s=Object.defineProperties,u=Object.getOwnPropertyDescriptors,d=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,p=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))h.call(t,n)&&p(e,n,t[n]);if(d)for(var n of d(t))w.call(t,n)&&p(e,n,t[n]);return e},f=(e,t)=>s(e,u(t)),C=(e,t)=>{var n={};for(var r in e)h.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&d)for(var r of d(e))t.indexOf(r)<0&&w.call(e,r)&&(n[r]=e[r]);return n};function g(e){return t=>{var n=t,{bgStyle:o={},borderRadius:c=0,iconFillColor:i="white",round:a=!1,size:l=64}=n,s=C(n,["bgStyle","borderRadius","iconFillColor","round","size"]);return(0,r.jsxs)("svg",f(m({viewBox:"0 0 64 64",width:l,height:l},s),{children:[a?(0,r.jsx)("circle",{cx:"32",cy:"32",r:"32",fill:e.color,style:o}):(0,r.jsx)("rect",{width:"64",height:"64",rx:c,ry:c,fill:e.color,style:o}),(0,r.jsx)("path",{d:e.path,fill:i})]}))}}g({color:"#7f7f7f",networkName:"email",path:"M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z"});function v(e){const t=Object.entries(e).filter((([,e])=>null!=e)).map((([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(String(t))}`));return t.length>0?`?${t.join("&")}`:""}function b(e){var t=e,{beforeOnClick:n,children:o,className:i,disabled:l,disabledStyle:s={opacity:.6},forwardedRef:u,htmlTitle:d,networkLink:h,networkName:w,onClick:p,onShareWindowClose:g,openShareDialogOnClick:v=!0,opts:b,resetButtonStyle:k=!0,style:y,url:L,windowHeight:M=400,windowPosition:j="windowCenter",windowWidth:z=550}=t,N=C(t,["beforeOnClick","children","className","disabled","disabledStyle","forwardedRef","htmlTitle","networkLink","networkName","onClick","onShareWindowClose","openShareDialogOnClick","opts","resetButtonStyle","style","url","windowHeight","windowPosition","windowWidth"]);const x=c("react-share__ShareButton",{"react-share__ShareButton--disabled":!!l,disabled:!!l},i),H=m(m(k?{backgroundColor:"transparent",border:"none",padding:0,font:"inherit",color:"inherit",cursor:"pointer"}:{},y),l&&s);return(0,r.jsx)("button",f(m({},N),{className:x,onClick:async e=>{const t=h(L,b);if(!l){if(e.preventDefault(),n){const e=n();!(r=e)||"object"!=typeof r&&"function"!=typeof r||"function"!=typeof r.then||await e}var r,o,c;if(v){!function(e,t,n){var r=t,{height:o,width:c}=r,i=C(r,["height","width"]);const l=m({height:o,width:c,location:"no",toolbar:"no",status:"no",directories:"no",menubar:"no",scrollbars:"yes",resizable:"no",centerscreen:"yes",chrome:"yes"},i),s=window.open(e,"",Object.keys(l).map((e=>`${e}=${l[e]}`)).join(", "));if(n){const e=window.setInterval((()=>{try{(null===s||s.closed)&&(window.clearInterval(e),n(s))}catch(t){a.error(t)}}),1e3)}}(t,m({height:M,width:z},"windowCenter"===j?(o=z,c=M,{left:window.outerWidth/2+(window.screenX||window.screenLeft||0)-o/2,top:window.outerHeight/2+(window.screenY||window.screenTop||0)-c/2}):((e,t)=>({top:(window.screen.height-t)/2,left:(window.screen.width-e)/2}))(z,M)),g)}p&&p(e,t)}},ref:u,style:H,title:d,children:o}))}function k(e,t,n,c){function i(o,i){const a=n(o),l=m({},o);return Object.keys(a).forEach((e=>{delete l[e]})),(0,r.jsx)(b,f(m(m({},c),l),{forwardedRef:i,networkName:e,networkLink:t,opts:n(o)}))}return i.displayName=`ShareButton-${e}`,(0,o.forwardRef)(i)}k("email",(function(e,{subject:t,body:n,separator:r}){return"mailto:"+v({subject:t,body:n?n+r+e:e})}),(e=>({subject:e.subject,body:e.body,separator:e.separator||" "})),{openShareDialogOnClick:!1,onClick:(e,t)=>{window.location.href=t}}),g({color:"#0965FE",networkName:"facebook",path:"M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z"}),g({color:"#0A7CFF",networkName:"facebookmessenger",path:"M 53.066406 21.871094 C 52.667969 21.339844 51.941406 21.179688 51.359375 21.496094 L 37.492188 29.058594 L 28.867188 21.660156 C 28.339844 21.207031 27.550781 21.238281 27.054688 21.730469 L 11.058594 37.726562 C 10.539062 38.25 10.542969 39.09375 11.0625 39.613281 C 11.480469 40.027344 12.121094 40.121094 12.640625 39.839844 L 26.503906 32.28125 L 35.136719 39.679688 C 35.667969 40.132812 36.457031 40.101562 36.949219 39.609375 L 52.949219 23.613281 C 53.414062 23.140625 53.464844 22.398438 53.066406 21.871094 Z M 53.066406 21.871094"});k("facebookmessenger",(function(e,{appId:t,redirectUri:n,to:r}){return"https://www.facebook.com/dialog/send"+v({link:e,redirect_uri:n||e,app_id:t,to:r})}),(e=>({appId:e.appId,redirectUri:e.redirectUri,to:e.to})),{windowWidth:1e3,windowHeight:820});class y extends Error{constructor(e){super(e),this.name="AssertionError"}}function L(e,t){if(!e)throw new y(t)}k("facebook",(function(e,{hashtag:t}){return L(e,"facebook.url"),"https://www.facebook.com/sharer/sharer.php"+v({u:e,hashtag:t})}),(e=>({hashtag:e.hashtag})),{windowWidth:550,windowHeight:400});function M(e){var t=e,{children:n=(e=>e),className:i,getCount:a,url:l}=t,s=C(t,["children","className","getCount","url"]);const u=function(){const e=(0,o.useRef)(!1);return(0,o.useEffect)((()=>(e.current=!0,()=>{e.current=!1})),[]),(0,o.useCallback)((()=>e.current),[])}(),[d,h]=(0,o.useState)(void 0),[w,p]=(0,o.useState)(!1);return(0,o.useEffect)((()=>{p(!0),a(l,(e=>{u()&&(h(e),p(!1))}))}),[l]),(0,r.jsx)("span",f(m({className:c("react-share__ShareCount",i)},s),{children:!w&&void 0!==d&&n(d)}))}function j(e){const t=t=>(0,r.jsx)(M,m({getCount:e},t));return t.displayName=`ShareCount(${e.name})`,t}j((function(e,t){i(`https://graph.facebook.com/?id=${e}&fields=og_object{engagement}`,((e,n)=>{t(!e&&n&&n.og_object&&n.og_object.engagement?n.og_object.engagement.count:void 0)}))})),g({color:"#009ad9",networkName:"hatena",path:"M 36.164062 33.554688 C 34.988281 32.234375 33.347656 31.5 31.253906 31.34375 C 33.125 30.835938 34.476562 30.09375 35.335938 29.09375 C 36.191406 28.09375 36.609375 26.78125 36.609375 25.101562 C 36.628906 23.875 36.332031 22.660156 35.75 21.578125 C 35.160156 20.558594 34.292969 19.71875 33.253906 19.160156 C 32.304688 18.640625 31.175781 18.265625 29.847656 18.042969 C 28.523438 17.824219 26.195312 17.730469 22.867188 17.730469 L 14.769531 17.730469 L 14.769531 47.269531 L 23.113281 47.269531 C 26.46875 47.269531 28.886719 47.15625 30.367188 46.929688 C 31.851562 46.695312 33.085938 46.304688 34.085938 45.773438 C 35.289062 45.148438 36.28125 44.179688 36.933594 42.992188 C 37.597656 41.796875 37.933594 40.402344 37.933594 38.816406 C 37.933594 36.621094 37.347656 34.867188 36.164062 33.554688 Z M 22.257812 24.269531 L 23.984375 24.269531 C 25.988281 24.269531 27.332031 24.496094 28.015625 24.945312 C 28.703125 25.402344 29.042969 26.183594 29.042969 27.285156 C 29.042969 28.390625 28.664062 29.105469 27.9375 29.550781 C 27.210938 29.992188 25.84375 30.199219 23.855469 30.199219 L 22.257812 30.199219 Z M 29.121094 41.210938 C 28.328125 41.691406 26.976562 41.925781 25.078125 41.925781 L 22.257812 41.925781 L 22.257812 35.488281 L 25.195312 35.488281 C 27.144531 35.488281 28.496094 35.738281 29.210938 36.230469 C 29.925781 36.726562 30.304688 37.582031 30.304688 38.832031 C 30.304688 40.078125 29.914062 40.742188 29.105469 41.222656 Z M 29.121094 41.210938 M 46.488281 39.792969 C 44.421875 39.792969 42.742188 41.46875 42.742188 43.535156 C 42.742188 45.605469 44.421875 47.28125 46.488281 47.28125 C 48.554688 47.28125 50.230469 45.605469 50.230469 43.535156 C 50.230469 41.46875 48.554688 39.792969 46.488281 39.792969 Z M 46.488281 39.792969 M 43.238281 17.730469 L 49.738281 17.730469 L 49.738281 37.429688 L 43.238281 37.429688 Z M 43.238281 17.730469 "});k("hatena",(function(e,{title:t}){return L(e,"hatena.url"),`http://b.hatena.ne.jp/add?mode=confirm&url=${e}&title=${t}`}),(e=>({title:e.title})),{windowWidth:660,windowHeight:460,windowPosition:"windowCenter"});j((function(e,t){i("https://bookmark.hatenaapis.com/count/entry"+v({url:e}),((e,n)=>{t(null!=n?n:void 0)}))})),g({color:"#1F1F1F",networkName:"instapaper",path:"M35.688 43.012c0 2.425.361 2.785 3.912 3.056V48H24.401v-1.932c3.555-.27 3.912-.63 3.912-3.056V20.944c0-2.379-.36-2.785-3.912-3.056V16H39.6v1.888c-3.55.27-3.912.675-3.912 3.056v22.068h.001z"});k("instapaper",(function(e,{title:t,description:n}){return L(e,"instapaper.url"),"http://www.instapaper.com/hello2"+v({url:e,title:t,description:n})}),(e=>({title:e.title,description:e.description})),{windowWidth:500,windowHeight:500,windowPosition:"windowCenter"}),g({color:"#00b800",networkName:"line",path:"M52.62 30.138c0 3.693-1.432 7.019-4.42 10.296h.001c-4.326 4.979-14 11.044-16.201 11.972-2.2.927-1.876-.591-1.786-1.112l.294-1.765c.069-.527.142-1.343-.066-1.865-.232-.574-1.146-.872-1.817-1.016-9.909-1.31-17.245-8.238-17.245-16.51 0-9.226 9.251-16.733 20.62-16.733 11.37 0 20.62 7.507 20.62 16.733zM27.81 25.68h-1.446a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-8.985a.402.402 0 0 0-.402-.401zm9.956 0H36.32a.402.402 0 0 0-.402.401v5.338L31.8 25.858a.39.39 0 0 0-.031-.04l-.002-.003-.024-.025-.008-.007a.313.313 0 0 0-.032-.026.255.255 0 0 1-.021-.014l-.012-.007-.021-.012-.013-.006-.023-.01-.013-.005-.024-.008-.014-.003-.023-.005-.017-.002-.021-.003-.021-.002h-1.46a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-5.337l4.123 5.568c.028.04.063.072.101.099l.004.003a.236.236 0 0 0 .025.015l.012.006.019.01a.154.154 0 0 1 .019.008l.012.004.028.01.005.001a.442.442 0 0 0 .104.013h1.446a.4.4 0 0 0 .401-.4v-8.985a.402.402 0 0 0-.401-.401zm-13.442 7.537h-3.93v-7.136a.401.401 0 0 0-.401-.401h-1.447a.4.4 0 0 0-.401.401v8.984a.392.392 0 0 0 .123.29c.072.068.17.111.278.111h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401zm21.429-5.287c.222 0 .401-.18.401-.402v-1.446a.401.401 0 0 0-.401-.402h-5.778a.398.398 0 0 0-.279.113l-.005.004-.006.008a.397.397 0 0 0-.111.276v8.984c0 .108.043.206.112.278l.005.006a.401.401 0 0 0 .284.117h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401h-3.93v-1.519h3.93c.222 0 .401-.18.401-.402V29.85a.401.401 0 0 0-.401-.402h-3.93V27.93h3.93z"});k("line",(function(e,{title:t}){return L(e,"line.url"),"https://social-plugins.line.me/lineit/share"+v({url:e,text:t})}),(e=>({title:e.title})),{windowWidth:500,windowHeight:500});const z=g({color:"#0077B5",networkName:"linkedin",path:"M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z"});const N=k("linkedin",(function(e,{title:t,summary:n,source:r}){return L(e,"linkedin.url"),"https://linkedin.com/shareArticle"+v({url:e,mini:"true",title:t,summary:n,source:r})}),(({title:e,summary:t,source:n})=>({title:e,summary:t,source:n})),{windowWidth:750,windowHeight:600});g({color:"#21A5D8",networkName:"livejournal",path:"M18.3407821,28.1764706 L21.9441341,31.789916 L33.0055865,42.882353 C33.0055865,42.882353 33.0893855,42.9663866 33.0893855,42.9663866 L46.6648046,47 C46.6648046,47 46.6648046,47 46.7486034,47 C46.8324022,47 46.8324022,47 46.9162012,46.9159664 C47,46.8319327 47,46.8319327 47,46.7478991 L42.9776536,33.1344537 C42.9776536,33.1344537 42.9776536,33.1344537 42.8938548,33.0504202 L31.1620111,21.3697479 L31.1620111,21.3697479 L28.1452514,18.2605042 C27.3072626,17.4201681 26.5530726,17 25.7150838,17 C24.2905028,17 23.0335195,18.3445378 21.5251397,19.8571429 C21.273743,20.1092437 20.9385475,20.4453781 20.6871508,20.697479 C20.3519553,21.0336134 20.1005586,21.2857143 19.849162,21.5378151 C18.3407821,22.9663866 17.0837989,24.2268908 17,25.7394958 C17.0837989,26.4957983 17.5027933,27.3361345 18.3407821,28.1764706 Z M39.9012319,39.6134454 C39.7336341,39.4453781 39.4822374,37.6806724 40.2364275,36.8403362 C40.9906174,36.0840337 41.6610084,36 42.1638017,36 C42.3313995,36 42.4989973,36 42.5827961,36 L44.8453659,43.5630253 L43.5883828,44.8235295 L36.0464833,42.5546218 C35.9626843,42.2184874 35.8788855,41.2100841 36.8844722,40.2016807 C37.2196676,39.8655463 37.8900587,39.6134454 38.5604498,39.6134454 C39.147042,39.6134454 39.5660364,39.7815126 39.5660364,39.7815126 C39.6498353,39.8655463 39.8174331,39.8655463 39.8174331,39.7815126 C39.9850307,39.7815126 39.9850307,39.697479 39.9012319,39.6134454 Z"});k("livejournal",(function(e,{title:t,description:n}){return L(e,"livejournal.url"),"https://www.livejournal.com/update.bml"+v({subject:t,event:n})}),(e=>({title:e.title,description:e.description})),{windowWidth:660,windowHeight:460}),g({color:"#168DE2",networkName:"mailru",path:"M39.7107745,17 C41.6619755,17 43.3204965,18.732852 43.3204965,21.0072202 C43.3204965,23.2815885 41.7595357,25.0144404 39.7107745,25.0144404 C37.7595732,25.0144404 36.1010522,23.2815885 36.1010522,21.0072202 C36.1010522,18.732852 37.7595732,17 39.7107745,17 Z M24.3938451,17 C26.3450463,17 28.0035672,18.732852 28.0035672,21.0072202 C28.0035672,23.2815885 26.4426063,25.0144404 24.3938451,25.0144404 C22.4426439,25.0144404 20.7841229,23.2815885 20.7841229,21.0072202 C20.7841229,18.732852 22.4426439,17 24.3938451,17 Z M51.9057817,43.4259928 C51.7106617,44.0758123 51.4179815,44.6173285 50.9301812,44.9422383 C50.637501,45.1588448 50.2472607,45.267148 49.8570205,45.267148 C49.07654,45.267148 48.3936197,44.833935 48.0033795,44.0758123 L46.2472985,40.7184115 L45.759498,41.2599278 C42.5400162,44.9422383 37.466893,47 32.0035297,47 C26.5401664,47 21.5646034,44.9422383 18.2475614,41.2599278 L17.7597611,40.7184115 L16.00368,44.0758123 C15.6134398,44.833935 14.9305194,45.267148 14.1500389,45.267148 C13.7597986,45.267148 13.3695584,45.1588448 13.0768782,44.9422383 C12.0037176,44.2924187 11.7110374,42.7761733 12.2963978,41.5848375 L16.7841605,33.0288807 C17.1744007,32.270758 17.8573211,31.8375453 18.6378016,31.8375453 C19.0280418,31.8375453 19.4182821,31.9458485 19.7109623,32.1624548 C20.7841229,32.8122743 21.0768031,34.3285197 20.4914427,35.5198555 L20.1012025,36.2779783 L20.2963226,36.602888 C22.4426439,39.9602888 27.0279667,42.234657 31.9059697,42.234657 C36.7839727,42.234657 41.3692955,40.068592 43.5156167,36.602888 L43.7107367,36.2779783 L43.3204965,35.6281587 C43.0278165,35.0866425 42.9302562,34.436823 43.1253765,33.7870035 C43.3204965,33.137184 43.6131767,32.5956678 44.100977,32.270758 C44.3936572,32.0541515 44.7838975,31.9458485 45.1741377,31.9458485 C45.9546182,31.9458485 46.6375385,32.3790613 47.0277787,33.137184 L51.5155415,41.6931408 C52.003342,42.234657 52.100902,42.8844765 51.9057817,43.4259928 Z"});k("mailru",(function(e,{title:t,description:n,imageUrl:r}){return L(e,"mailru.url"),"https://connect.mail.ru/share"+v({url:e,title:t,description:n,image_url:r})}),(e=>({title:e.title,description:e.description,imageUrl:e.imageUrl})),{windowWidth:660,windowHeight:460}),g({color:"#F97400",networkName:"ok",path:"M39,30c-1,0-3,2-7,2s-6-2-7-2c-1.1,0-2,0.9-2,2c0,1,0.6,1.5,1,1.7c1.2,0.7,5,2.3,5,2.3l-4.3,5.4 c0,0-0.8,0.9-0.8,1.6c0,1.1,0.9,2,2,2c1,0,1.5-0.7,1.5-0.7S32,39,32,39c0,0,4.5,5.3,4.5,5.3S37,45,38,45c1.1,0,2-0.9,2-2 c0-0.6-0.8-1.6-0.8-1.6L35,36c0,0,3.8-1.6,5-2.3c0.4-0.3,1-0.7,1-1.7C41,30.9,40.1,30,39,30z M32,15c-3.9,0-7,3.1-7,7s3.1,7,7,7c3.9,0,7-3.1,7-7S35.9,15,32,15z M32,25.5 c-1.9,0-3.5-1.6-3.5-3.5c0-1.9,1.6-3.5,3.5-3.5c1.9,0,3.5,1.6,3.5,3.5C35.5,23.9,33.9,22.5,35,22.5z "});k("ok",(function(e,{title:t,description:n,image:r}){return L(e,"ok.url"),"https://connect.ok.ru/offer"+v({url:e,title:t,description:n,imageUrl:r})}),(e=>({title:e.title,description:e.description,image:e.image})),{windowWidth:588,windowHeight:480,windowPosition:"screenCenter"});j((function(e,t){window.OK||(window.OK={Share:{count:function(e,t){var n,r;null==(r=(n=window.OK.callbacks)[e])||r.call(n,t)}},callbacks:[]});const n=window.OK.callbacks.length;return window.ODKL={updateCount(e,t){var n,r;const o=""===e?0:parseInt(e.replace("react-share-",""),10);null==(r=(n=window.OK.callbacks)[o])||r.call(n,""===t?void 0:parseInt(t,10))}},window.OK.callbacks.push(t),i("https://connect.ok.ru/dk"+v({"st.cmd":"extLike",uid:`react-share-${n}`,ref:e}))})),g({color:"#E60023",networkName:"pinterest",path:"M32,16c-8.8,0-16,7.2-16,16c0,6.6,3.9,12.2,9.6,14.7c0-1.1,0-2.5,0.3-3.7 c0.3-1.3,2.1-8.7,2.1-8.7s-0.5-1-0.5-2.5c0-2.4,1.4-4.1,3.1-4.1c1.5,0,2.2,1.1,2.2,2.4c0,1.5-0.9,3.7-1.4,5.7 c-0.4,1.7,0.9,3.1,2.5,3.1c3,0,5.1-3.9,5.1-8.5c0-3.5-2.4-6.1-6.7-6.1c-4.9,0-7.9,3.6-7.9,7.7c0,1.4,0.4,2.4,1.1,3.1 c0.3,0.3,0.3,0.5,0.2,0.9c-0.1,0.3-0.3,1-0.3,1.3c-0.1,0.4-0.4,0.6-0.8,0.4c-2.2-0.9-3.3-3.4-3.3-6.1c0-4.5,3.8-10,11.4-10 c6.1,0,10.1,4.4,10.1,9.2c0,6.3-3.5,11-8.6,11c-1.7,0-3.4-0.9-3.9-2c0,0-0.9,3.7-1.1,4.4c-0.3,1.2-1,2.5-1.6,3.4 c1.4,0.4,3,0.7,4.5,0.7c8.8,0,16-7.2,16-16C48,23.2,40.8,16,32,16z"});k("pinterest",(function(e,{media:t,description:n,pinId:r}){return r?`https://pinterest.com/pin/${r}/repin/x/`:(L(e,"pinterest.url"),L(t,"pinterest.media"),"https://pinterest.com/pin/create/button/"+v({url:e,media:t,description:n}))}),(e=>({media:e.media,description:e.description,pinId:e.pinId})),{windowWidth:1e3,windowHeight:730});j((function(e,t){i("https://api.pinterest.com/v1/urls/count.json"+v({url:e}),((e,n)=>{t(n?n.count:void 0)}))})),g({color:"#EF3F56",networkName:"pocket",path:"M41.084 29.065l-7.528 7.882a2.104 2.104 0 0 1-1.521.666 2.106 2.106 0 0 1-1.522-.666l-7.528-7.882c-.876-.914-.902-2.43-.065-3.384.84-.955 2.228-.987 3.1-.072l6.015 6.286 6.022-6.286c.88-.918 2.263-.883 3.102.071.841.938.82 2.465-.06 3.383l-.015.002zm6.777-10.976C47.463 16.84 46.361 16 45.14 16H18.905c-1.2 0-2.289.82-2.716 2.044-.125.363-.189.743-.189 1.125v10.539l.112 2.096c.464 4.766 2.73 8.933 6.243 11.838.06.053.125.102.19.153l.04.033c1.882 1.499 3.986 2.514 6.259 3.014a14.662 14.662 0 0 0 6.13.052c.118-.042.235-.065.353-.087.03 0 .065-.022.098-.042a15.395 15.395 0 0 0 6.011-2.945l.039-.045.18-.153c3.502-2.902 5.765-7.072 6.248-11.852L48 29.674v-10.52c0-.366-.041-.728-.161-1.08l.022.015z"});k("pocket",(function(e,{title:t}){return L(e,"pocket.url"),"https://getpocket.com/save"+v({url:e,title:t})}),(e=>({title:e.title})),{windowWidth:500,windowHeight:500});const x=g({color:"#FF5700",networkName:"reddit",path:"M 53.34375 32 C 53.277344 30.160156 52.136719 28.53125 50.429688 27.839844 C 48.722656 27.148438 46.769531 27.523438 45.441406 28.800781 C 41.800781 26.324219 37.519531 24.957031 33.121094 24.863281 L 35.199219 14.878906 L 42.046875 16.320312 C 42.214844 17.882812 43.496094 19.09375 45.066406 19.171875 C 46.636719 19.253906 48.03125 18.183594 48.359375 16.644531 C 48.6875 15.105469 47.847656 13.558594 46.382812 12.992188 C 44.914062 12.425781 43.253906 13.007812 42.464844 14.367188 L 34.625 12.800781 C 34.363281 12.742188 34.09375 12.792969 33.871094 12.9375 C 33.648438 13.082031 33.492188 13.308594 33.441406 13.566406 L 31.070312 24.671875 C 26.617188 24.738281 22.277344 26.105469 18.59375 28.609375 C 17.242188 27.339844 15.273438 26.988281 13.570312 27.707031 C 11.863281 28.429688 10.746094 30.089844 10.71875 31.941406 C 10.691406 33.789062 11.757812 35.484375 13.441406 36.257812 C 13.402344 36.726562 13.402344 37.195312 13.441406 37.664062 C 13.441406 44.832031 21.792969 50.65625 32.097656 50.65625 C 42.398438 50.65625 50.753906 44.832031 50.753906 37.664062 C 50.789062 37.195312 50.789062 36.726562 50.753906 36.257812 C 52.363281 35.453125 53.371094 33.800781 53.34375 32 Z M 21.34375 35.199219 C 21.34375 33.433594 22.777344 32 24.542969 32 C 26.3125 32 27.742188 33.433594 27.742188 35.199219 C 27.742188 36.96875 26.3125 38.398438 24.542969 38.398438 C 22.777344 38.398438 21.34375 36.96875 21.34375 35.199219 Z M 39.9375 44 C 37.664062 45.710938 34.871094 46.582031 32.03125 46.464844 C 29.191406 46.582031 26.398438 45.710938 24.128906 44 C 23.847656 43.65625 23.871094 43.15625 24.183594 42.839844 C 24.5 42.527344 25 42.503906 25.34375 42.785156 C 27.269531 44.195312 29.617188 44.90625 32 44.800781 C 34.386719 44.929688 36.746094 44.242188 38.6875 42.847656 C 39.042969 42.503906 39.605469 42.511719 39.953125 42.863281 C 40.296875 43.21875 40.289062 43.785156 39.9375 44.128906 Z M 39.359375 38.527344 C 37.59375 38.527344 36.160156 37.09375 36.160156 35.328125 C 36.160156 33.5625 37.59375 32.128906 39.359375 32.128906 C 41.128906 32.128906 42.558594 33.5625 42.558594 35.328125 C 42.59375 36.203125 42.269531 37.054688 41.65625 37.6875 C 41.046875 38.316406 40.203125 38.664062 39.328125 38.65625 Z M 39.359375 38.527344"});const H=k("reddit",(function(e,{title:t}){return L(e,"reddit.url"),"https://www.reddit.com/submit"+v({url:e,title:t})}),(e=>({title:e.title})),{windowWidth:660,windowHeight:460,windowPosition:"windowCenter"});k("gab",(function(e,{title:t}){return L(e,"gab.url"),"https://gab.com/compose"+v({url:e,text:t})}),(e=>({title:e.title})),{windowWidth:660,windowHeight:640,windowPosition:"windowCenter"}),g({color:"#00d178",networkName:"gab",path:"m17.0506,23.97457l5.18518,0l0,14.23933c0,6.82699 -3.72695,10.09328 -9.33471,10.09328c-2.55969,0 -4.82842,-0.87286 -6.22084,-2.0713l2.07477,-3.88283c1.19844,0.81051 2.33108,1.29543 3.85511,1.29543c2.75366,0 4.44049,-1.97432 4.44049,-4.82149l0,-0.87286c-1.16728,1.39242 -2.81947,2.0713 -4.63446,2.0713c-4.44048,0 -7.81068,-3.68885 -7.81068,-8.28521c0,-4.59289 3.37019,-8.28174 7.81068,-8.28174c1.81499,0 3.46718,0.67888 4.63446,2.0713l0,-1.55521zm-3.62997,11.39217c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm25.7077,4.13913l-5.18518,0l0,-1.29197c-1.00448,1.13264 -2.3969,1.81152 -4.21188,1.81152c-3.62997,0 -5.63893,-2.52504 -5.63893,-5.4034c0,-4.27076 5.251,-5.85715 9.78846,-4.49937c-0.09698,-1.39241 -0.9733,-2.39343 -2.78829,-2.39343c-1.26426,0 -2.72248,0.48492 -3.62997,1.00102l-1.5552,-3.72003c1.19844,-0.77587 3.40136,-1.55174 5.96452,-1.55174c3.78931,0 7.25648,2.13365 7.25648,7.95962l0,8.08777zm-5.18518,-6.14809c-2.42806,-0.77587 -4.66563,-0.3533 -4.66563,1.36124c0,1.00101 0.84168,1.6799 1.84616,1.6799c1.20191,0 2.56315,-0.96984 2.81947,-3.04115zm13.00626,-17.66495l0,9.83695c1.16727,-1.39242 2.81946,-2.0713 4.63445,-2.0713c4.44048,0 7.81068,3.68885 7.81068,8.28174c0,4.59636 -3.37019,8.28521 -7.81068,8.28521c-1.81499,0 -3.46718,-0.67888 -4.63445,-2.0713l0,1.55174l-5.18519,0l0,-23.81304l5.18519,0zm3.62997,19.67391c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm0,0"});j((function(e,t){i(`https://www.reddit.com/api/info.json?limit=1&url=${e}`,{param:"jsonp"},((e,n)=>{t(!e&&n&&n.data&&n.data.children.length>0&&n.data.children[0].data.score?n.data.children[0].data.score:void 0)}))}));const S=g({color:"#25A3E3",networkName:"telegram",path:"m45.90873,15.44335c-0.6901,-0.0281 -1.37668,0.14048 -1.96142,0.41265c-0.84989,0.32661 -8.63939,3.33986 -16.5237,6.39174c-3.9685,1.53296 -7.93349,3.06593 -10.98537,4.24067c-3.05012,1.1765 -5.34694,2.05098 -5.4681,2.09312c-0.80775,0.28096 -1.89996,0.63566 -2.82712,1.72788c-0.23354,0.27218 -0.46884,0.62161 -0.58825,1.10275c-0.11941,0.48114 -0.06673,1.09222 0.16682,1.5716c0.46533,0.96052 1.25376,1.35737 2.18443,1.71383c3.09051,0.99037 6.28638,1.93508 8.93263,2.8236c0.97632,3.44171 1.91401,6.89571 2.84116,10.34268c0.30554,0.69185 0.97105,0.94823 1.65764,0.95525l-0.00351,0.03512c0,0 0.53908,0.05268 1.06412,-0.07375c0.52679,-0.12292 1.18879,-0.42846 1.79109,-0.99212c0.662,-0.62161 2.45836,-2.38812 3.47683,-3.38552l7.6736,5.66477l0.06146,0.03512c0,0 0.84989,0.59703 2.09312,0.68132c0.62161,0.04214 1.4399,-0.07726 2.14229,-0.59176c0.70766,-0.51626 1.1765,-1.34683 1.396,-2.29506c0.65673,-2.86224 5.00979,-23.57745 5.75257,-27.00686l-0.02107,0.08077c0.51977,-1.93157 0.32837,-3.70159 -0.87096,-4.74991c-0.60054,-0.52152 -1.2924,-0.7498 -1.98425,-0.77965l0,0.00176zm-0.2072,3.29069c0.04741,0.0439 0.0439,0.0439 0.00351,0.04741c-0.01229,-0.00351 0.14048,0.2072 -0.15804,1.32576l-0.01229,0.04214l-0.00878,0.03863c-0.75858,3.50668 -5.15554,24.40802 -5.74203,26.96472c-0.08077,0.34417 -0.11414,0.31959 -0.09482,0.29852c-0.1756,-0.02634 -0.50045,-0.16506 -0.52679,-0.1756l-13.13468,-9.70175c4.4988,-4.33199 9.09945,-8.25307 13.744,-12.43229c0.8218,-0.41265 0.68483,-1.68573 -0.29852,-1.70681c-1.04305,0.24584 -1.92279,0.99564 -2.8798,1.47502c-5.49971,3.2626 -11.11882,6.13186 -16.55882,9.49279c-2.792,-0.97105 -5.57873,-1.77704 -8.15298,-2.57601c2.2336,-0.89555 4.00889,-1.55579 5.75608,-2.23009c3.05188,-1.1765 7.01687,-2.7042 10.98537,-4.24067c7.94051,-3.06944 15.92667,-6.16346 16.62028,-6.43037l0.05619,-0.02283l0.05268,-0.02283c0.19316,-0.0878 0.30378,-0.09658 0.35471,-0.10009c0,0 -0.01756,-0.05795 -0.00351,-0.04566l-0.00176,0zm-20.91715,22.0638l2.16687,1.60145c-0.93418,0.91311 -1.81743,1.77353 -2.45485,2.38812l0.28798,-3.98957"});const O=k("telegram",(function(e,{title:t}){return L(e,"telegram.url"),"https://telegram.me/share/url"+v({url:e,text:t})}),(e=>({title:e.title})),{windowWidth:550,windowHeight:400});g({color:"#34526f",networkName:"tumblr",path:"M39.2,41c-0.6,0.3-1.6,0.5-2.4,0.5c-2.4,0.1-2.9-1.7-2.9-3v-9.3h6v-4.5h-6V17c0,0-4.3,0-4.4,0 c-0.1,0-0.2,0.1-0.2,0.2c-0.3,2.3-1.4,6.4-5.9,8.1v3.9h3V39c0,3.4,2.5,8.1,9,8c2.2,0,4.7-1,5.2-1.8L39.2,41z"});k("tumblr",(function(e,{title:t,caption:n,tags:r,posttype:o}){return L(e,"tumblr.url"),"https://www.tumblr.com/widgets/share/tool"+v({canonicalUrl:e,title:t,caption:n,tags:r,posttype:o})}),(e=>({title:e.title,tags:(e.tags||[]).join(","),caption:e.caption,posttype:e.posttype||"link"})),{windowWidth:660,windowHeight:460});j((function(e,t){return i("https://api.tumblr.com/v2/share/stats"+v({url:e}),((e,n)=>{t(!e&&n&&n.response?n.response.note_count:void 0)}))}));const A=g({color:"#00aced",networkName:"twitter",path:"M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z"});const V=k("twitter",(function(e,{title:t,via:n,hashtags:r=[],related:o=[]}){return L(e,"twitter.url"),L(Array.isArray(r),"twitter.hashtags is not an array"),L(Array.isArray(o),"twitter.related is not an array"),"https://twitter.com/intent/tweet"+v({url:e,text:t,via:n,hashtags:r.length>0?r.join(","):void 0,related:o.length>0?o.join(","):void 0})}),(e=>({hashtags:e.hashtags,title:e.title,via:e.via,related:e.related})),{windowWidth:550,windowHeight:400});g({color:"#7360f2",networkName:"viber",path:"m31.0,12.3c9.0,0.2 16.4,6.2 18.0,15.2c0.2,1.5 0.3,3.0 0.4,4.6a1.0,1.0 0 0 1 -0.8,1.2l-0.1,0a1.1,1.1 0 0 1 -1.0,-1.2l0,0c-0.0,-1.2 -0.1,-2.5 -0.3,-3.8a16.1,16.1 0 0 0 -13.0,-13.5c-1.0,-0.1 -2.0,-0.2 -3.0,-0.3c-0.6,-0.0 -1.4,-0.1 -1.6,-0.8a1.1,1.1 0 0 1 0.9,-1.2l0.6,0l0.0,-0.0zm10.6,39.2a19.9,19.9 0 0 1 -2.1,-0.6c-6.9,-2.9 -13.2,-6.6 -18.3,-12.2a47.5,47.5 0 0 1 -7.0,-10.7c-0.8,-1.8 -1.6,-3.7 -2.4,-5.6c-0.6,-1.7 0.3,-3.4 1.4,-4.7a11.3,11.3 0 0 1 3.7,-2.8a2.4,2.4 0 0 1 3.0,0.7a39.0,39.0 0 0 1 4.7,6.5a3.1,3.1 0 0 1 -0.8,4.2c-0.3,0.2 -0.6,0.5 -1.0,0.8a3.3,3.3 0 0 0 -0.7,0.7a2.1,2.1 0 0 0 -0.1,1.9c1.7,4.9 4.7,8.7 9.7,10.8a5.0,5.0 0 0 0 2.5,0.6c1.5,-0.1 2.0,-1.8 3.1,-2.7a2.9,2.9 0 0 1 3.5,-0.1c1.1,0.7 2.2,1.4 3.3,2.2a37.8,37.8 0 0 1 3.1,2.4a2.4,2.4 0 0 1 0.7,3.0a10.4,10.4 0 0 1 -4.4,4.8a10.8,10.8 0 0 1 -1.9,0.6c-0.7,-0.2 0.6,-0.2 0,0l0.0,0l0,-0.0zm3.1,-21.4a4.2,4.2 0 0 1 -0.0,0.6a1.0,1.0 0 0 1 -1.9,0.1a2.7,2.7 0 0 1 -0.1,-0.8a10.9,10.9 0 0 0 -1.4,-5.5a10.2,10.2 0 0 0 -4.2,-4.0a12.3,12.3 0 0 0 -3.4,-1.0c-0.5,-0.0 -1.0,-0.1 -1.5,-0.2a0.9,0.9 0 0 1 -0.9,-1.0l0,-0.1a0.9,0.9 0 0 1 0.9,-0.9l0.1,0a14.1,14.1 0 0 1 5.9,1.5a11.9,11.9 0 0 1 6.5,9.3c0,0.1 0.0,0.3 0.0,0.5c0,0.4 0.0,0.9 0.0,1.5l0,0l0.0,0.0zm-5.6,-0.2a1.1,1.1 0 0 1 -1.2,-0.9l0,-0.1a11.3,11.3 0 0 0 -0.2,-1.4a4.0,4.0 0 0 0 -1.5,-2.3a3.9,3.9 0 0 0 -1.2,-0.5c-0.5,-0.1 -1.1,-0.1 -1.6,-0.2a1.0,1.0 0 0 1 -0.8,-1.1l0,0l0,0a1.0,1.0 0 0 1 1.1,-0.8c3.4,0.2 6.0,2.0 6.3,6.2a2.8,2.8 0 0 1 0,0.8a0.8,0.8 0 0 1 -0.8,0.7l0,0l0.0,-0.0z"});k("viber",(function(e,{title:t,separator:n}){return L(e,"viber.url"),"viber://forward"+v({text:t?t+n+e:e})}),(e=>({title:e.title,separator:e.separator||" "})),{windowWidth:660,windowHeight:460}),g({color:"#4C75A3",networkName:"vk",path:"M44.94,44.84h-0.2c-2.17-.36-3.66-1.92-4.92-3.37C39.1,40.66,38,38.81,36.7,39c-1.85.3-.93,3.52-1.71,4.9-0.62,1.11-3.29.91-5.12,0.71-5.79-.62-8.75-3.77-11.35-7.14A64.13,64.13,0,0,1,11.6,26a10.59,10.59,0,0,1-1.51-4.49C11,20.7,12.56,21,14.11,21c1.31,0,3.36-.29,4.32.2C19,21.46,19.57,23,20,24a37.18,37.18,0,0,0,3.31,5.82c0.56,0.81,1.41,2.35,2.41,2.14s1.06-2.63,1.1-4.18c0-1.77,0-4-.5-4.9S25,22,24.15,21.47c0.73-1.49,2.72-1.63,5.12-1.63,2,0,4.84-.23,5.62,1.12s0.25,3.85.2,5.71c-0.06,2.09-.41,4.25,1,5.21,1.09-.12,1.68-1.2,2.31-2A28,28,0,0,0,41.72,24c0.44-1,.91-2.65,1.71-3,1.21-.47,3.15-0.1,4.92-0.1,1.46,0,4.05-.41,4.52.61,0.39,0.85-.75,3-1.1,3.57a61.88,61.88,0,0,1-4.12,5.61c-0.58.78-1.78,2-1.71,3.27,0.05,0.94,1,1.67,1.71,2.35a33.12,33.12,0,0,1,3.92,4.18c0.47,0.62,1.5,2,1.4,2.76C52.66,45.81,46.88,44.24,44.94,44.84Z"});k("vk",(function(e,{title:t,image:n,noParse:r,noVkLinks:o}){return L(e,"vk.url"),"https://vk.com/share.php"+v({url:e,title:t,image:n,noparse:r?1:0,no_vk_links:o?1:0})}),(e=>({title:e.title,image:e.image,noParse:e.noParse,noVkLinks:e.noVkLinks})),{windowWidth:660,windowHeight:460});j((function(e,t){window.VK||(window.VK={}),window.VK.Share={count:(e,t)=>{var n,r;return null==(r=null==(n=window.VK.callbacks)?void 0:n[e])?void 0:r.call(n,t)}},window.VK.callbacks=[];const n=window.VK.callbacks.length;return window.VK.callbacks.push(t),i("https://vk.com/share.php"+v({act:"count",index:n,url:e}))})),g({color:"#DF2029",networkName:"weibo",path:"M40.9756152,15.0217119 C40.5000732,15.0546301 39.9999314,15.1204666 39.5325878,15.2192213 C38.6634928,15.4085016 38.0977589,16.2643757 38.2863368,17.1284787 C38.4667163,18.0008129 39.3194143,18.5686519 40.1885094,18.3793715 C42.8613908,17.8115326 45.7720411,18.6427174 47.7316073,20.8153207 C49.6911735,22.996153 50.2077122,25.975254 49.3714112,28.5840234 C49.1008441,29.4316684 49.5763861,30.3533789 50.4208857,30.6249537 C51.2653852,30.8965286 52.1754769,30.4192153 52.4542425,29.5715703 C53.6349013,25.9011885 52.9133876,21.7699494 50.1585171,18.7085538 C48.0923641,16.4042776 45.2063093,15.1533848 42.3530505,15.0217119 C41.8775084,14.9970227 41.4511594,14.9887937 40.9756152,15.0217119 Z M27.9227762,19.8277737 C24.9957268,20.140498 20.863421,22.4365431 17.2312548,26.0822378 C13.2711279,30.0571148 11,34.2871065 11,37.9328012 C11,44.9032373 19.8713401,49.125 28.5786978,49.125 C39.9917329,49.125 47.600423,42.4261409 47.600423,37.1427636 C47.600423,33.9496952 44.9603397,32.1638816 42.549827,31.4149913 C41.9594976,31.2339421 41.5167516,31.1434164 41.8283133,30.3616079 C42.5006339,28.66632 42.6236176,27.1932286 41.8939054,26.1480742 C40.5328692,24.1894405 36.7203236,24.2881952 32.448635,26.0822378 C32.448635,26.0822378 31.1203949,26.6912261 31.4647526,25.6213825 C32.1206742,23.4981576 32.0304845,21.712342 31.0056075,20.6836478 C30.2840938,19.9512176 29.2510184,19.6878718 27.9227762,19.8277737 Z M42.0906819,20.6836478 C41.6233383,20.6589586 41.1723917,20.716566 40.7132466,20.8153207 C39.9671353,20.9716828 39.4997917,21.7781784 39.6637721,22.5270687 C39.8277525,23.275959 40.5574647,23.7450433 41.303576,23.5804521 C42.1972686,23.3911718 43.2057485,23.6380596 43.8616701,24.3704897 C44.5175916,25.1029198 44.6733735,26.0657797 44.3864073,26.9381118 C44.1486363,27.6705419 44.5093932,28.4770397 45.2391054,28.7156963 C45.9688176,28.9461239 46.780521,28.5922524 47.0100936,27.8598223 C47.584026,26.0740087 47.2396661,24.0248493 45.8950269,22.5270687 C44.886547,21.4078489 43.4845162,20.7494842 42.0906819,20.6836478 Z M29.496988,29.9665891 C35.3100922,30.1723275 39.9917329,33.0691319 40.3852858,37.0769272 C40.8362324,41.6607904 35.5970585,45.9319315 28.6442899,46.6232144 C21.6915214,47.3144973 15.6488446,44.154347 15.197898,39.5787128 C14.7469514,34.9948495 20.059916,30.7237084 27.004486,30.0324256 C27.8735831,29.950131 28.6688875,29.9336709 29.496988,29.9665891 Z M25.5614586,34.3776322 C23.183744,34.5916017 20.9372116,35.9577073 19.9205332,37.9328012 C18.5348994,40.6238672 19.9041362,43.6029661 23.0689567,44.582284 C26.340366,45.5945202 30.1857056,44.0638213 31.5303448,41.1587879 C32.8503864,38.3195909 31.1613894,35.3734082 27.9227762,34.5751416 C27.1438688,34.3776322 26.356763,34.3035667 25.5614586,34.3776322 Z M24.052839,38.7228388 C24.3316067,38.7310678 24.5857748,38.8215935 24.8399449,38.9203482 C25.8648218,39.3400561 26.1845841,40.4428158 25.5614586,41.4221338 C24.9219361,42.3932227 23.5690963,42.8623069 22.5442194,42.4096807 C21.5357395,41.9652856 21.2487754,40.8542948 21.8882979,39.9078951 C22.3638421,39.2001542 23.2247386,38.7146097 24.052839,38.7228388 Z"});k("weibo",(function(e,{title:t,image:n}){return L(e,"weibo.url"),"http://service.weibo.com/share/share.php"+v({url:e,title:t,pic:n})}),(e=>({title:e.title,image:e.image})),{windowWidth:660,windowHeight:550,windowPosition:"screenCenter"}),g({color:"#25D366",networkName:"whatsapp",path:"m42.32286,33.93287c-0.5178,-0.2589 -3.04726,-1.49644 -3.52105,-1.66732c-0.4712,-0.17346 -0.81554,-0.2589 -1.15987,0.2589c-0.34175,0.51004 -1.33075,1.66474 -1.63108,2.00648c-0.30032,0.33658 -0.60064,0.36247 -1.11327,0.12945c-0.5178,-0.2589 -2.17994,-0.80259 -4.14759,-2.56312c-1.53269,-1.37217 -2.56312,-3.05503 -2.86603,-3.57283c-0.30033,-0.5178 -0.03366,-0.80259 0.22524,-1.06149c0.23301,-0.23301 0.5178,-0.59547 0.7767,-0.90616c0.25372,-0.31068 0.33657,-0.5178 0.51262,-0.85437c0.17088,-0.36246 0.08544,-0.64725 -0.04402,-0.90615c-0.12945,-0.2589 -1.15987,-2.79613 -1.58964,-3.80584c-0.41424,-1.00971 -0.84142,-0.88027 -1.15987,-0.88027c-0.29773,-0.02588 -0.64208,-0.02588 -0.98382,-0.02588c-0.34693,0 -0.90616,0.12945 -1.37736,0.62136c-0.4712,0.5178 -1.80194,1.76053 -1.80194,4.27186c0,2.51134 1.84596,4.945 2.10227,5.30747c0.2589,0.33657 3.63497,5.51458 8.80262,7.74113c1.23237,0.5178 2.1903,0.82848 2.94111,1.08738c1.23237,0.38836 2.35599,0.33657 3.24402,0.20712c0.99159,-0.15534 3.04985,-1.24272 3.47963,-2.45956c0.44013,-1.21683 0.44013,-2.22654 0.31068,-2.45955c-0.12945,-0.23301 -0.46601,-0.36247 -0.98382,-0.59548m-9.40068,12.84407l-0.02589,0c-3.05503,0 -6.08417,-0.82849 -8.72495,-2.38189l-0.62136,-0.37023l-6.47252,1.68286l1.73463,-6.29129l-0.41424,-0.64725c-1.70875,-2.71846 -2.6149,-5.85116 -2.6149,-9.07706c0,-9.39809 7.68934,-17.06155 17.15993,-17.06155c4.58253,0 8.88029,1.78642 12.11655,5.02268c3.23625,3.21036 5.02267,7.50812 5.02267,12.06476c-0.0078,9.3981 -7.69712,17.06155 -17.14699,17.06155m14.58906,-31.58846c-3.93529,-3.80584 -9.1133,-5.95471 -14.62789,-5.95471c-11.36055,0 -20.60848,9.2065 -20.61625,20.52564c0,3.61684 0.94757,7.14565 2.75211,10.26282l-2.92557,10.63564l10.93337,-2.85309c3.0136,1.63108 6.4052,2.4958 9.85634,2.49839l0.01037,0c11.36574,0 20.61884,-9.2091 20.62403,-20.53082c0,-5.48093 -2.14111,-10.64081 -6.03239,-14.51915"});k("whatsapp",(function(e,{title:t,separator:n}){return L(e,"whatsapp.url"),"https://"+(/(android|iphone|ipad|mobile)/i.test(navigator.userAgent)?"api":"web")+".whatsapp.com/send"+v({text:t?t+n+e:e})}),(e=>({title:e.title,separator:e.separator||" "})),{windowWidth:550,windowHeight:400}),g({color:"#4326c4",networkName:"workplace",path:"M34.019,10.292c0.21,0.017,0.423,0.034,0.636,0.049 c3.657,0.262,6.976,1.464,9.929,3.635c3.331,2.448,5.635,5.65,6.914,9.584c0.699,2.152,0.983,4.365,0.885,6.623 c-0.136,3.171-1.008,6.13-2.619,8.867c-0.442,0.75-0.908,1.492-1.495,2.141c-0.588,0.651-1.29,1.141-2.146,1.383 c-1.496,0.426-3.247-0.283-3.961-1.642c-0.26-0.494-0.442-1.028-0.654-1.548c-1.156-2.838-2.311-5.679-3.465-8.519 c-0.017-0.042-0.037-0.082-0.065-0.145c-0.101,0.245-0.192,0.472-0.284,0.698c-1.237,3.051-2.475,6.103-3.711,9.155 c-0.466,1.153-1.351,1.815-2.538,2.045c-1.391,0.267-2.577-0.154-3.496-1.247c-0.174-0.209-0.31-0.464-0.415-0.717 c-2.128-5.22-4.248-10.442-6.37-15.665c-0.012-0.029-0.021-0.059-0.036-0.104c0.054-0.003,0.103-0.006,0.15-0.006 c1.498-0.001,2.997,0,4.495-0.004c0.12-0.001,0.176,0.03,0.222,0.146c1.557,3.846,3.117,7.691,4.679,11.536 c0.018,0.046,0.039,0.091,0.067,0.159c0.273-0.673,0.536-1.32,0.797-1.968c1.064-2.627,2.137-5.25,3.19-7.883 c0.482-1.208,1.376-1.917,2.621-2.135c1.454-0.255,2.644,0.257,3.522,1.449c0.133,0.18,0.229,0.393,0.313,0.603 c1.425,3.495,2.848,6.991,4.269,10.488c0.02,0.047,0.04,0.093,0.073,0.172c0.196-0.327,0.385-0.625,0.559-0.935 c0.783-1.397,1.323-2.886,1.614-4.461c0.242-1.312,0.304-2.634,0.187-3.962c-0.242-2.721-1.16-5.192-2.792-7.38 c-2.193-2.939-5.086-4.824-8.673-5.625c-1.553-0.346-3.124-0.405-4.705-0.257c-3.162,0.298-6.036,1.366-8.585,3.258 c-3.414,2.534-5.638,5.871-6.623,10.016c-0.417,1.76-0.546,3.547-0.384,5.348c0.417,4.601,2.359,8.444,5.804,11.517 c2.325,2.073,5.037,3.393,8.094,3.989c1.617,0.317,3.247,0.395,4.889,0.242c1-0.094,1.982-0.268,2.952-0.529 c0.04-0.01,0.081-0.018,0.128-0.028c0,1.526,0,3.047,0,4.586c-0.402,0.074-0.805,0.154-1.21,0.221 c-0.861,0.14-1.728,0.231-2.601,0.258c-0.035,0.002-0.071,0.013-0.108,0.021c-0.493,0-0.983,0-1.476,0 c-0.049-0.007-0.1-0.018-0.149-0.022c-0.315-0.019-0.629-0.033-0.945-0.058c-1.362-0.105-2.702-0.346-4.017-0.716 c-3.254-0.914-6.145-2.495-8.66-4.752c-2.195-1.971-3.926-4.29-5.176-6.963c-1.152-2.466-1.822-5.057-1.993-7.774 c-0.014-0.226-0.033-0.451-0.05-0.676c0-0.502,0-1.003,0-1.504c0.008-0.049,0.02-0.099,0.022-0.148 c0.036-1.025,0.152-2.043,0.338-3.052c0.481-2.616,1.409-5.066,2.8-7.331c2.226-3.625,5.25-6.386,9.074-8.254 c2.536-1.24,5.217-1.947,8.037-2.126c0.23-0.015,0.461-0.034,0.691-0.051C33.052,10.292,33.535,10.292,34.019,10.292z"});k("workplace",(function(e,{quote:t,hashtag:n}){return L(e,"workplace.url"),"https://work.facebook.com/sharer.php"+v({u:e,quote:t,hashtag:n})}),(e=>({quote:e.quote,hashtag:e.hashtag})),{windowWidth:550,windowHeight:400});const W=g({color:"#000000",networkName:"X",path:"M 41.116 18.375 h 4.962 l -10.8405 12.39 l 12.753 16.86 H 38.005 l -7.821 -10.2255 L 21.235 47.625 H 16.27 l 11.595 -13.2525 L 15.631 18.375 H 25.87 l 7.0695 9.3465 z m -1.7415 26.28 h 2.7495 L 24.376 21.189 H 21.4255 z"})}}]); \ No newline at end of file diff --git a/assets/js/8258.206edb6e.js b/assets/js/8258.206edb6e.js new file mode 100644 index 00000000000..cd4e5bc0dc6 --- /dev/null +++ b/assets/js/8258.206edb6e.js @@ -0,0 +1,2 @@ +/*! For license information please see 8258.206edb6e.js.LICENSE.txt */ +(self.webpackChunkweb=self.webpackChunkweb||[]).push([[8258],{94184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t{var r=n(81445)("jsonp");e.exports=function(e,t,n){"function"==typeof t&&(n=t,t={});t||(t={});var i,a,l=t.prefix||"__jp",s=t.name||l+o++,u=t.param||"callback",d=null!=t.timeout?t.timeout:6e4,h=encodeURIComponent,w=document.getElementsByTagName("script")[0]||document.head;d&&(a=setTimeout((function(){p(),n&&n(new Error("Timeout"))}),d));function p(){i.parentNode&&i.parentNode.removeChild(i),window[s]=c,a&&clearTimeout(a)}return window[s]=function(e){r("jsonp got",e),p(),n&&n(null,e)},e=(e+=(~e.indexOf("?")?"&":"?")+u+"="+h(s)).replace("?&","?"),r('jsonp req "%s"',e),(i=document.createElement("script")).src=e,w.parentNode.insertBefore(i,w),function(){window[s]&&p()}};var o=0;function c(){}},81445:(e,t,n)=>{var r=n(25108),o=n(34155);function c(){var e;try{e=t.storage.debug}catch(n){}return!e&&void 0!==o&&"env"in o&&(e=o.env.DEBUG),e}(t=e.exports=n(84805)).log=function(){return"object"==typeof r&&r.log&&Function.prototype.apply.call(r.log,r,arguments)},t.formatArgs=function(e){var n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return;var r="color: "+this.color;e.splice(1,0,r,"color: inherit");var o=0,c=0;e[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(o++,"%c"===e&&(c=o))})),e.splice(c,0,r)},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(n){}},t.load=c,t.useColors=function(){if("undefined"!=typeof window&&window.process&&"renderer"===window.process.type)return!0;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},t.enable(c())},84805:(e,t,n)=>{var r,o=n(25108);function c(e){function n(){if(n.enabled){var e=n,c=+new Date,i=c-(r||c);e.diff=i,e.prev=r,e.curr=c,r=c;for(var a=new Array(arguments.length),l=0;l{var t=1e3,n=60*t,r=60*n,o=24*r,c=365.25*o;function i(e,t,n){if(!(e0)return function(e){if((e=String(e)).length>100)return;var i=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(!i)return;var a=parseFloat(i[1]);switch((i[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return a*c;case"days":case"day":case"d":return a*o;case"hours":case"hour":case"hrs":case"hr":case"h":return a*r;case"minutes":case"minute":case"mins":case"min":case"m":return a*n;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}(e);if("number"===s&&!1===isNaN(e))return a.long?i(l=e,o,"day")||i(l,r,"hour")||i(l,n,"minute")||i(l,t,"second")||l+" ms":function(e){if(e>=o)return Math.round(e/o)+"d";if(e>=r)return Math.round(e/r)+"h";if(e>=n)return Math.round(e/n)+"m";if(e>=t)return Math.round(e/t)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},68258:(e,t,n)=>{"use strict";n.d(t,{B:()=>V,MP:()=>x,YG:()=>S,Zm:()=>A,iR:()=>H,pA:()=>z,r2:()=>N,tq:()=>O});var r=n(85893),o=n(67294),c=n(94184),i=n(70365),a=n(25108),l=Object.defineProperty,s=Object.defineProperties,u=Object.getOwnPropertyDescriptors,d=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,p=(e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))h.call(t,n)&&p(e,n,t[n]);if(d)for(var n of d(t))w.call(t,n)&&p(e,n,t[n]);return e},f=(e,t)=>s(e,u(t)),C=(e,t)=>{var n={};for(var r in e)h.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&d)for(var r of d(e))t.indexOf(r)<0&&w.call(e,r)&&(n[r]=e[r]);return n};function g(e){return t=>{var n=t,{bgStyle:o={},borderRadius:c=0,iconFillColor:i="white",round:a=!1,size:l=64}=n,s=C(n,["bgStyle","borderRadius","iconFillColor","round","size"]);return(0,r.jsxs)("svg",f(m({viewBox:"0 0 64 64",width:l,height:l},s),{children:[a?(0,r.jsx)("circle",{cx:"32",cy:"32",r:"32",fill:e.color,style:o}):(0,r.jsx)("rect",{width:"64",height:"64",rx:c,ry:c,fill:e.color,style:o}),(0,r.jsx)("path",{d:e.path,fill:i})]}))}}g({color:"#7f7f7f",networkName:"email",path:"M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z"});function v(e){const t=Object.entries(e).filter((([,e])=>null!=e)).map((([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(String(t))}`));return t.length>0?`?${t.join("&")}`:""}function b(e){var t=e,{beforeOnClick:n,children:o,className:i,disabled:l,disabledStyle:s={opacity:.6},forwardedRef:u,htmlTitle:d,networkLink:h,networkName:w,onClick:p,onShareWindowClose:g,openShareDialogOnClick:v=!0,opts:b,resetButtonStyle:k=!0,style:y,url:L,windowHeight:M=400,windowPosition:j="windowCenter",windowWidth:z=550}=t,N=C(t,["beforeOnClick","children","className","disabled","disabledStyle","forwardedRef","htmlTitle","networkLink","networkName","onClick","onShareWindowClose","openShareDialogOnClick","opts","resetButtonStyle","style","url","windowHeight","windowPosition","windowWidth"]);const x=c("react-share__ShareButton",{"react-share__ShareButton--disabled":!!l,disabled:!!l},i),H=m(m(k?{backgroundColor:"transparent",border:"none",padding:0,font:"inherit",color:"inherit",cursor:"pointer"}:{},y),l&&s);return(0,r.jsx)("button",f(m({},N),{className:x,onClick:async e=>{const t=h(L,b);if(!l){if(e.preventDefault(),n){const e=n();!(r=e)||"object"!=typeof r&&"function"!=typeof r||"function"!=typeof r.then||await e}var r,o,c;if(v){!function(e,t,n){var r=t,{height:o,width:c}=r,i=C(r,["height","width"]);const l=m({height:o,width:c,location:"no",toolbar:"no",status:"no",directories:"no",menubar:"no",scrollbars:"yes",resizable:"no",centerscreen:"yes",chrome:"yes"},i),s=window.open(e,"",Object.keys(l).map((e=>`${e}=${l[e]}`)).join(", "));if(n){const e=window.setInterval((()=>{try{(null===s||s.closed)&&(window.clearInterval(e),n(s))}catch(t){a.error(t)}}),1e3)}}(t,m({height:M,width:z},"windowCenter"===j?(o=z,c=M,{left:window.outerWidth/2+(window.screenX||window.screenLeft||0)-o/2,top:window.outerHeight/2+(window.screenY||window.screenTop||0)-c/2}):((e,t)=>({top:(window.screen.height-t)/2,left:(window.screen.width-e)/2}))(z,M)),g)}p&&p(e,t)}},ref:u,style:H,title:d,children:o}))}function k(e,t,n,c){function i(o,i){const a=n(o),l=m({},o);return Object.keys(a).forEach((e=>{delete l[e]})),(0,r.jsx)(b,f(m(m({},c),l),{forwardedRef:i,networkName:e,networkLink:t,opts:n(o)}))}return i.displayName=`ShareButton-${e}`,(0,o.forwardRef)(i)}k("email",(function(e,{subject:t,body:n,separator:r}){return"mailto:"+v({subject:t,body:n?n+r+e:e})}),(e=>({subject:e.subject,body:e.body,separator:e.separator||" "})),{openShareDialogOnClick:!1,onClick:(e,t)=>{window.location.href=t}}),g({color:"#0965FE",networkName:"facebook",path:"M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z"}),g({color:"#0A7CFF",networkName:"facebookmessenger",path:"M 53.066406 21.871094 C 52.667969 21.339844 51.941406 21.179688 51.359375 21.496094 L 37.492188 29.058594 L 28.867188 21.660156 C 28.339844 21.207031 27.550781 21.238281 27.054688 21.730469 L 11.058594 37.726562 C 10.539062 38.25 10.542969 39.09375 11.0625 39.613281 C 11.480469 40.027344 12.121094 40.121094 12.640625 39.839844 L 26.503906 32.28125 L 35.136719 39.679688 C 35.667969 40.132812 36.457031 40.101562 36.949219 39.609375 L 52.949219 23.613281 C 53.414062 23.140625 53.464844 22.398438 53.066406 21.871094 Z M 53.066406 21.871094"});k("facebookmessenger",(function(e,{appId:t,redirectUri:n,to:r}){return"https://www.facebook.com/dialog/send"+v({link:e,redirect_uri:n||e,app_id:t,to:r})}),(e=>({appId:e.appId,redirectUri:e.redirectUri,to:e.to})),{windowWidth:1e3,windowHeight:820});class y extends Error{constructor(e){super(e),this.name="AssertionError"}}function L(e,t){if(!e)throw new y(t)}k("facebook",(function(e,{hashtag:t}){return L(e,"facebook.url"),"https://www.facebook.com/sharer/sharer.php"+v({u:e,hashtag:t})}),(e=>({hashtag:e.hashtag})),{windowWidth:550,windowHeight:400});function M(e){var t=e,{children:n=(e=>e),className:i,getCount:a,url:l}=t,s=C(t,["children","className","getCount","url"]);const u=function(){const e=(0,o.useRef)(!1);return(0,o.useEffect)((()=>(e.current=!0,()=>{e.current=!1})),[]),(0,o.useCallback)((()=>e.current),[])}(),[d,h]=(0,o.useState)(void 0),[w,p]=(0,o.useState)(!1);return(0,o.useEffect)((()=>{p(!0),a(l,(e=>{u()&&(h(e),p(!1))}))}),[l]),(0,r.jsx)("span",f(m({className:c("react-share__ShareCount",i)},s),{children:!w&&void 0!==d&&n(d)}))}function j(e){const t=t=>(0,r.jsx)(M,m({getCount:e},t));return t.displayName=`ShareCount(${e.name})`,t}j((function(e,t){i(`https://graph.facebook.com/?id=${e}&fields=og_object{engagement}`,((e,n)=>{t(!e&&n&&n.og_object&&n.og_object.engagement?n.og_object.engagement.count:void 0)}))})),g({color:"#009ad9",networkName:"hatena",path:"M 36.164062 33.554688 C 34.988281 32.234375 33.347656 31.5 31.253906 31.34375 C 33.125 30.835938 34.476562 30.09375 35.335938 29.09375 C 36.191406 28.09375 36.609375 26.78125 36.609375 25.101562 C 36.628906 23.875 36.332031 22.660156 35.75 21.578125 C 35.160156 20.558594 34.292969 19.71875 33.253906 19.160156 C 32.304688 18.640625 31.175781 18.265625 29.847656 18.042969 C 28.523438 17.824219 26.195312 17.730469 22.867188 17.730469 L 14.769531 17.730469 L 14.769531 47.269531 L 23.113281 47.269531 C 26.46875 47.269531 28.886719 47.15625 30.367188 46.929688 C 31.851562 46.695312 33.085938 46.304688 34.085938 45.773438 C 35.289062 45.148438 36.28125 44.179688 36.933594 42.992188 C 37.597656 41.796875 37.933594 40.402344 37.933594 38.816406 C 37.933594 36.621094 37.347656 34.867188 36.164062 33.554688 Z M 22.257812 24.269531 L 23.984375 24.269531 C 25.988281 24.269531 27.332031 24.496094 28.015625 24.945312 C 28.703125 25.402344 29.042969 26.183594 29.042969 27.285156 C 29.042969 28.390625 28.664062 29.105469 27.9375 29.550781 C 27.210938 29.992188 25.84375 30.199219 23.855469 30.199219 L 22.257812 30.199219 Z M 29.121094 41.210938 C 28.328125 41.691406 26.976562 41.925781 25.078125 41.925781 L 22.257812 41.925781 L 22.257812 35.488281 L 25.195312 35.488281 C 27.144531 35.488281 28.496094 35.738281 29.210938 36.230469 C 29.925781 36.726562 30.304688 37.582031 30.304688 38.832031 C 30.304688 40.078125 29.914062 40.742188 29.105469 41.222656 Z M 29.121094 41.210938 M 46.488281 39.792969 C 44.421875 39.792969 42.742188 41.46875 42.742188 43.535156 C 42.742188 45.605469 44.421875 47.28125 46.488281 47.28125 C 48.554688 47.28125 50.230469 45.605469 50.230469 43.535156 C 50.230469 41.46875 48.554688 39.792969 46.488281 39.792969 Z M 46.488281 39.792969 M 43.238281 17.730469 L 49.738281 17.730469 L 49.738281 37.429688 L 43.238281 37.429688 Z M 43.238281 17.730469 "});k("hatena",(function(e,{title:t}){return L(e,"hatena.url"),`http://b.hatena.ne.jp/add?mode=confirm&url=${e}&title=${t}`}),(e=>({title:e.title})),{windowWidth:660,windowHeight:460,windowPosition:"windowCenter"});j((function(e,t){i("https://bookmark.hatenaapis.com/count/entry"+v({url:e}),((e,n)=>{t(null!=n?n:void 0)}))})),g({color:"#1F1F1F",networkName:"instapaper",path:"M35.688 43.012c0 2.425.361 2.785 3.912 3.056V48H24.401v-1.932c3.555-.27 3.912-.63 3.912-3.056V20.944c0-2.379-.36-2.785-3.912-3.056V16H39.6v1.888c-3.55.27-3.912.675-3.912 3.056v22.068h.001z"});k("instapaper",(function(e,{title:t,description:n}){return L(e,"instapaper.url"),"http://www.instapaper.com/hello2"+v({url:e,title:t,description:n})}),(e=>({title:e.title,description:e.description})),{windowWidth:500,windowHeight:500,windowPosition:"windowCenter"}),g({color:"#00b800",networkName:"line",path:"M52.62 30.138c0 3.693-1.432 7.019-4.42 10.296h.001c-4.326 4.979-14 11.044-16.201 11.972-2.2.927-1.876-.591-1.786-1.112l.294-1.765c.069-.527.142-1.343-.066-1.865-.232-.574-1.146-.872-1.817-1.016-9.909-1.31-17.245-8.238-17.245-16.51 0-9.226 9.251-16.733 20.62-16.733 11.37 0 20.62 7.507 20.62 16.733zM27.81 25.68h-1.446a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-8.985a.402.402 0 0 0-.402-.401zm9.956 0H36.32a.402.402 0 0 0-.402.401v5.338L31.8 25.858a.39.39 0 0 0-.031-.04l-.002-.003-.024-.025-.008-.007a.313.313 0 0 0-.032-.026.255.255 0 0 1-.021-.014l-.012-.007-.021-.012-.013-.006-.023-.01-.013-.005-.024-.008-.014-.003-.023-.005-.017-.002-.021-.003-.021-.002h-1.46a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-5.337l4.123 5.568c.028.04.063.072.101.099l.004.003a.236.236 0 0 0 .025.015l.012.006.019.01a.154.154 0 0 1 .019.008l.012.004.028.01.005.001a.442.442 0 0 0 .104.013h1.446a.4.4 0 0 0 .401-.4v-8.985a.402.402 0 0 0-.401-.401zm-13.442 7.537h-3.93v-7.136a.401.401 0 0 0-.401-.401h-1.447a.4.4 0 0 0-.401.401v8.984a.392.392 0 0 0 .123.29c.072.068.17.111.278.111h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401zm21.429-5.287c.222 0 .401-.18.401-.402v-1.446a.401.401 0 0 0-.401-.402h-5.778a.398.398 0 0 0-.279.113l-.005.004-.006.008a.397.397 0 0 0-.111.276v8.984c0 .108.043.206.112.278l.005.006a.401.401 0 0 0 .284.117h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401h-3.93v-1.519h3.93c.222 0 .401-.18.401-.402V29.85a.401.401 0 0 0-.401-.402h-3.93V27.93h3.93z"});k("line",(function(e,{title:t}){return L(e,"line.url"),"https://social-plugins.line.me/lineit/share"+v({url:e,text:t})}),(e=>({title:e.title})),{windowWidth:500,windowHeight:500});const z=g({color:"#0077B5",networkName:"linkedin",path:"M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z"});const N=k("linkedin",(function(e,{title:t,summary:n,source:r}){return L(e,"linkedin.url"),"https://linkedin.com/shareArticle"+v({url:e,mini:"true",title:t,summary:n,source:r})}),(({title:e,summary:t,source:n})=>({title:e,summary:t,source:n})),{windowWidth:750,windowHeight:600});g({color:"#21A5D8",networkName:"livejournal",path:"M18.3407821,28.1764706 L21.9441341,31.789916 L33.0055865,42.882353 C33.0055865,42.882353 33.0893855,42.9663866 33.0893855,42.9663866 L46.6648046,47 C46.6648046,47 46.6648046,47 46.7486034,47 C46.8324022,47 46.8324022,47 46.9162012,46.9159664 C47,46.8319327 47,46.8319327 47,46.7478991 L42.9776536,33.1344537 C42.9776536,33.1344537 42.9776536,33.1344537 42.8938548,33.0504202 L31.1620111,21.3697479 L31.1620111,21.3697479 L28.1452514,18.2605042 C27.3072626,17.4201681 26.5530726,17 25.7150838,17 C24.2905028,17 23.0335195,18.3445378 21.5251397,19.8571429 C21.273743,20.1092437 20.9385475,20.4453781 20.6871508,20.697479 C20.3519553,21.0336134 20.1005586,21.2857143 19.849162,21.5378151 C18.3407821,22.9663866 17.0837989,24.2268908 17,25.7394958 C17.0837989,26.4957983 17.5027933,27.3361345 18.3407821,28.1764706 Z M39.9012319,39.6134454 C39.7336341,39.4453781 39.4822374,37.6806724 40.2364275,36.8403362 C40.9906174,36.0840337 41.6610084,36 42.1638017,36 C42.3313995,36 42.4989973,36 42.5827961,36 L44.8453659,43.5630253 L43.5883828,44.8235295 L36.0464833,42.5546218 C35.9626843,42.2184874 35.8788855,41.2100841 36.8844722,40.2016807 C37.2196676,39.8655463 37.8900587,39.6134454 38.5604498,39.6134454 C39.147042,39.6134454 39.5660364,39.7815126 39.5660364,39.7815126 C39.6498353,39.8655463 39.8174331,39.8655463 39.8174331,39.7815126 C39.9850307,39.7815126 39.9850307,39.697479 39.9012319,39.6134454 Z"});k("livejournal",(function(e,{title:t,description:n}){return L(e,"livejournal.url"),"https://www.livejournal.com/update.bml"+v({subject:t,event:n})}),(e=>({title:e.title,description:e.description})),{windowWidth:660,windowHeight:460}),g({color:"#168DE2",networkName:"mailru",path:"M39.7107745,17 C41.6619755,17 43.3204965,18.732852 43.3204965,21.0072202 C43.3204965,23.2815885 41.7595357,25.0144404 39.7107745,25.0144404 C37.7595732,25.0144404 36.1010522,23.2815885 36.1010522,21.0072202 C36.1010522,18.732852 37.7595732,17 39.7107745,17 Z M24.3938451,17 C26.3450463,17 28.0035672,18.732852 28.0035672,21.0072202 C28.0035672,23.2815885 26.4426063,25.0144404 24.3938451,25.0144404 C22.4426439,25.0144404 20.7841229,23.2815885 20.7841229,21.0072202 C20.7841229,18.732852 22.4426439,17 24.3938451,17 Z M51.9057817,43.4259928 C51.7106617,44.0758123 51.4179815,44.6173285 50.9301812,44.9422383 C50.637501,45.1588448 50.2472607,45.267148 49.8570205,45.267148 C49.07654,45.267148 48.3936197,44.833935 48.0033795,44.0758123 L46.2472985,40.7184115 L45.759498,41.2599278 C42.5400162,44.9422383 37.466893,47 32.0035297,47 C26.5401664,47 21.5646034,44.9422383 18.2475614,41.2599278 L17.7597611,40.7184115 L16.00368,44.0758123 C15.6134398,44.833935 14.9305194,45.267148 14.1500389,45.267148 C13.7597986,45.267148 13.3695584,45.1588448 13.0768782,44.9422383 C12.0037176,44.2924187 11.7110374,42.7761733 12.2963978,41.5848375 L16.7841605,33.0288807 C17.1744007,32.270758 17.8573211,31.8375453 18.6378016,31.8375453 C19.0280418,31.8375453 19.4182821,31.9458485 19.7109623,32.1624548 C20.7841229,32.8122743 21.0768031,34.3285197 20.4914427,35.5198555 L20.1012025,36.2779783 L20.2963226,36.602888 C22.4426439,39.9602888 27.0279667,42.234657 31.9059697,42.234657 C36.7839727,42.234657 41.3692955,40.068592 43.5156167,36.602888 L43.7107367,36.2779783 L43.3204965,35.6281587 C43.0278165,35.0866425 42.9302562,34.436823 43.1253765,33.7870035 C43.3204965,33.137184 43.6131767,32.5956678 44.100977,32.270758 C44.3936572,32.0541515 44.7838975,31.9458485 45.1741377,31.9458485 C45.9546182,31.9458485 46.6375385,32.3790613 47.0277787,33.137184 L51.5155415,41.6931408 C52.003342,42.234657 52.100902,42.8844765 51.9057817,43.4259928 Z"});k("mailru",(function(e,{title:t,description:n,imageUrl:r}){return L(e,"mailru.url"),"https://connect.mail.ru/share"+v({url:e,title:t,description:n,image_url:r})}),(e=>({title:e.title,description:e.description,imageUrl:e.imageUrl})),{windowWidth:660,windowHeight:460}),g({color:"#F97400",networkName:"ok",path:"M39,30c-1,0-3,2-7,2s-6-2-7-2c-1.1,0-2,0.9-2,2c0,1,0.6,1.5,1,1.7c1.2,0.7,5,2.3,5,2.3l-4.3,5.4 c0,0-0.8,0.9-0.8,1.6c0,1.1,0.9,2,2,2c1,0,1.5-0.7,1.5-0.7S32,39,32,39c0,0,4.5,5.3,4.5,5.3S37,45,38,45c1.1,0,2-0.9,2-2 c0-0.6-0.8-1.6-0.8-1.6L35,36c0,0,3.8-1.6,5-2.3c0.4-0.3,1-0.7,1-1.7C41,30.9,40.1,30,39,30z M32,15c-3.9,0-7,3.1-7,7s3.1,7,7,7c3.9,0,7-3.1,7-7S35.9,15,32,15z M32,25.5 c-1.9,0-3.5-1.6-3.5-3.5c0-1.9,1.6-3.5,3.5-3.5c1.9,0,3.5,1.6,3.5,3.5C35.5,23.9,33.9,22.5,35,22.5z "});k("ok",(function(e,{title:t,description:n,image:r}){return L(e,"ok.url"),"https://connect.ok.ru/offer"+v({url:e,title:t,description:n,imageUrl:r})}),(e=>({title:e.title,description:e.description,image:e.image})),{windowWidth:588,windowHeight:480,windowPosition:"screenCenter"});j((function(e,t){window.OK||(window.OK={Share:{count:function(e,t){var n,r;null==(r=(n=window.OK.callbacks)[e])||r.call(n,t)}},callbacks:[]});const n=window.OK.callbacks.length;return window.ODKL={updateCount(e,t){var n,r;const o=""===e?0:parseInt(e.replace("react-share-",""),10);null==(r=(n=window.OK.callbacks)[o])||r.call(n,""===t?void 0:parseInt(t,10))}},window.OK.callbacks.push(t),i("https://connect.ok.ru/dk"+v({"st.cmd":"extLike",uid:`react-share-${n}`,ref:e}))})),g({color:"#E60023",networkName:"pinterest",path:"M32,16c-8.8,0-16,7.2-16,16c0,6.6,3.9,12.2,9.6,14.7c0-1.1,0-2.5,0.3-3.7 c0.3-1.3,2.1-8.7,2.1-8.7s-0.5-1-0.5-2.5c0-2.4,1.4-4.1,3.1-4.1c1.5,0,2.2,1.1,2.2,2.4c0,1.5-0.9,3.7-1.4,5.7 c-0.4,1.7,0.9,3.1,2.5,3.1c3,0,5.1-3.9,5.1-8.5c0-3.5-2.4-6.1-6.7-6.1c-4.9,0-7.9,3.6-7.9,7.7c0,1.4,0.4,2.4,1.1,3.1 c0.3,0.3,0.3,0.5,0.2,0.9c-0.1,0.3-0.3,1-0.3,1.3c-0.1,0.4-0.4,0.6-0.8,0.4c-2.2-0.9-3.3-3.4-3.3-6.1c0-4.5,3.8-10,11.4-10 c6.1,0,10.1,4.4,10.1,9.2c0,6.3-3.5,11-8.6,11c-1.7,0-3.4-0.9-3.9-2c0,0-0.9,3.7-1.1,4.4c-0.3,1.2-1,2.5-1.6,3.4 c1.4,0.4,3,0.7,4.5,0.7c8.8,0,16-7.2,16-16C48,23.2,40.8,16,32,16z"});k("pinterest",(function(e,{media:t,description:n,pinId:r}){return r?`https://pinterest.com/pin/${r}/repin/x/`:(L(e,"pinterest.url"),L(t,"pinterest.media"),"https://pinterest.com/pin/create/button/"+v({url:e,media:t,description:n}))}),(e=>({media:e.media,description:e.description,pinId:e.pinId})),{windowWidth:1e3,windowHeight:730});j((function(e,t){i("https://api.pinterest.com/v1/urls/count.json"+v({url:e}),((e,n)=>{t(n?n.count:void 0)}))})),g({color:"#EF3F56",networkName:"pocket",path:"M41.084 29.065l-7.528 7.882a2.104 2.104 0 0 1-1.521.666 2.106 2.106 0 0 1-1.522-.666l-7.528-7.882c-.876-.914-.902-2.43-.065-3.384.84-.955 2.228-.987 3.1-.072l6.015 6.286 6.022-6.286c.88-.918 2.263-.883 3.102.071.841.938.82 2.465-.06 3.383l-.015.002zm6.777-10.976C47.463 16.84 46.361 16 45.14 16H18.905c-1.2 0-2.289.82-2.716 2.044-.125.363-.189.743-.189 1.125v10.539l.112 2.096c.464 4.766 2.73 8.933 6.243 11.838.06.053.125.102.19.153l.04.033c1.882 1.499 3.986 2.514 6.259 3.014a14.662 14.662 0 0 0 6.13.052c.118-.042.235-.065.353-.087.03 0 .065-.022.098-.042a15.395 15.395 0 0 0 6.011-2.945l.039-.045.18-.153c3.502-2.902 5.765-7.072 6.248-11.852L48 29.674v-10.52c0-.366-.041-.728-.161-1.08l.022.015z"});k("pocket",(function(e,{title:t}){return L(e,"pocket.url"),"https://getpocket.com/save"+v({url:e,title:t})}),(e=>({title:e.title})),{windowWidth:500,windowHeight:500});const x=g({color:"#FF5700",networkName:"reddit",path:"M 53.34375 32 C 53.277344 30.160156 52.136719 28.53125 50.429688 27.839844 C 48.722656 27.148438 46.769531 27.523438 45.441406 28.800781 C 41.800781 26.324219 37.519531 24.957031 33.121094 24.863281 L 35.199219 14.878906 L 42.046875 16.320312 C 42.214844 17.882812 43.496094 19.09375 45.066406 19.171875 C 46.636719 19.253906 48.03125 18.183594 48.359375 16.644531 C 48.6875 15.105469 47.847656 13.558594 46.382812 12.992188 C 44.914062 12.425781 43.253906 13.007812 42.464844 14.367188 L 34.625 12.800781 C 34.363281 12.742188 34.09375 12.792969 33.871094 12.9375 C 33.648438 13.082031 33.492188 13.308594 33.441406 13.566406 L 31.070312 24.671875 C 26.617188 24.738281 22.277344 26.105469 18.59375 28.609375 C 17.242188 27.339844 15.273438 26.988281 13.570312 27.707031 C 11.863281 28.429688 10.746094 30.089844 10.71875 31.941406 C 10.691406 33.789062 11.757812 35.484375 13.441406 36.257812 C 13.402344 36.726562 13.402344 37.195312 13.441406 37.664062 C 13.441406 44.832031 21.792969 50.65625 32.097656 50.65625 C 42.398438 50.65625 50.753906 44.832031 50.753906 37.664062 C 50.789062 37.195312 50.789062 36.726562 50.753906 36.257812 C 52.363281 35.453125 53.371094 33.800781 53.34375 32 Z M 21.34375 35.199219 C 21.34375 33.433594 22.777344 32 24.542969 32 C 26.3125 32 27.742188 33.433594 27.742188 35.199219 C 27.742188 36.96875 26.3125 38.398438 24.542969 38.398438 C 22.777344 38.398438 21.34375 36.96875 21.34375 35.199219 Z M 39.9375 44 C 37.664062 45.710938 34.871094 46.582031 32.03125 46.464844 C 29.191406 46.582031 26.398438 45.710938 24.128906 44 C 23.847656 43.65625 23.871094 43.15625 24.183594 42.839844 C 24.5 42.527344 25 42.503906 25.34375 42.785156 C 27.269531 44.195312 29.617188 44.90625 32 44.800781 C 34.386719 44.929688 36.746094 44.242188 38.6875 42.847656 C 39.042969 42.503906 39.605469 42.511719 39.953125 42.863281 C 40.296875 43.21875 40.289062 43.785156 39.9375 44.128906 Z M 39.359375 38.527344 C 37.59375 38.527344 36.160156 37.09375 36.160156 35.328125 C 36.160156 33.5625 37.59375 32.128906 39.359375 32.128906 C 41.128906 32.128906 42.558594 33.5625 42.558594 35.328125 C 42.59375 36.203125 42.269531 37.054688 41.65625 37.6875 C 41.046875 38.316406 40.203125 38.664062 39.328125 38.65625 Z M 39.359375 38.527344"});const H=k("reddit",(function(e,{title:t}){return L(e,"reddit.url"),"https://www.reddit.com/submit"+v({url:e,title:t})}),(e=>({title:e.title})),{windowWidth:660,windowHeight:460,windowPosition:"windowCenter"});k("gab",(function(e,{title:t}){return L(e,"gab.url"),"https://gab.com/compose"+v({url:e,text:t})}),(e=>({title:e.title})),{windowWidth:660,windowHeight:640,windowPosition:"windowCenter"}),g({color:"#00d178",networkName:"gab",path:"m17.0506,23.97457l5.18518,0l0,14.23933c0,6.82699 -3.72695,10.09328 -9.33471,10.09328c-2.55969,0 -4.82842,-0.87286 -6.22084,-2.0713l2.07477,-3.88283c1.19844,0.81051 2.33108,1.29543 3.85511,1.29543c2.75366,0 4.44049,-1.97432 4.44049,-4.82149l0,-0.87286c-1.16728,1.39242 -2.81947,2.0713 -4.63446,2.0713c-4.44048,0 -7.81068,-3.68885 -7.81068,-8.28521c0,-4.59289 3.37019,-8.28174 7.81068,-8.28174c1.81499,0 3.46718,0.67888 4.63446,2.0713l0,-1.55521zm-3.62997,11.39217c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm25.7077,4.13913l-5.18518,0l0,-1.29197c-1.00448,1.13264 -2.3969,1.81152 -4.21188,1.81152c-3.62997,0 -5.63893,-2.52504 -5.63893,-5.4034c0,-4.27076 5.251,-5.85715 9.78846,-4.49937c-0.09698,-1.39241 -0.9733,-2.39343 -2.78829,-2.39343c-1.26426,0 -2.72248,0.48492 -3.62997,1.00102l-1.5552,-3.72003c1.19844,-0.77587 3.40136,-1.55174 5.96452,-1.55174c3.78931,0 7.25648,2.13365 7.25648,7.95962l0,8.08777zm-5.18518,-6.14809c-2.42806,-0.77587 -4.66563,-0.3533 -4.66563,1.36124c0,1.00101 0.84168,1.6799 1.84616,1.6799c1.20191,0 2.56315,-0.96984 2.81947,-3.04115zm13.00626,-17.66495l0,9.83695c1.16727,-1.39242 2.81946,-2.0713 4.63445,-2.0713c4.44048,0 7.81068,3.68885 7.81068,8.28174c0,4.59636 -3.37019,8.28521 -7.81068,8.28521c-1.81499,0 -3.46718,-0.67888 -4.63445,-2.0713l0,1.55174l-5.18519,0l0,-23.81304l5.18519,0zm3.62997,19.67391c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm0,0"});j((function(e,t){i(`https://www.reddit.com/api/info.json?limit=1&url=${e}`,{param:"jsonp"},((e,n)=>{t(!e&&n&&n.data&&n.data.children.length>0&&n.data.children[0].data.score?n.data.children[0].data.score:void 0)}))}));const S=g({color:"#25A3E3",networkName:"telegram",path:"m45.90873,15.44335c-0.6901,-0.0281 -1.37668,0.14048 -1.96142,0.41265c-0.84989,0.32661 -8.63939,3.33986 -16.5237,6.39174c-3.9685,1.53296 -7.93349,3.06593 -10.98537,4.24067c-3.05012,1.1765 -5.34694,2.05098 -5.4681,2.09312c-0.80775,0.28096 -1.89996,0.63566 -2.82712,1.72788c-0.23354,0.27218 -0.46884,0.62161 -0.58825,1.10275c-0.11941,0.48114 -0.06673,1.09222 0.16682,1.5716c0.46533,0.96052 1.25376,1.35737 2.18443,1.71383c3.09051,0.99037 6.28638,1.93508 8.93263,2.8236c0.97632,3.44171 1.91401,6.89571 2.84116,10.34268c0.30554,0.69185 0.97105,0.94823 1.65764,0.95525l-0.00351,0.03512c0,0 0.53908,0.05268 1.06412,-0.07375c0.52679,-0.12292 1.18879,-0.42846 1.79109,-0.99212c0.662,-0.62161 2.45836,-2.38812 3.47683,-3.38552l7.6736,5.66477l0.06146,0.03512c0,0 0.84989,0.59703 2.09312,0.68132c0.62161,0.04214 1.4399,-0.07726 2.14229,-0.59176c0.70766,-0.51626 1.1765,-1.34683 1.396,-2.29506c0.65673,-2.86224 5.00979,-23.57745 5.75257,-27.00686l-0.02107,0.08077c0.51977,-1.93157 0.32837,-3.70159 -0.87096,-4.74991c-0.60054,-0.52152 -1.2924,-0.7498 -1.98425,-0.77965l0,0.00176zm-0.2072,3.29069c0.04741,0.0439 0.0439,0.0439 0.00351,0.04741c-0.01229,-0.00351 0.14048,0.2072 -0.15804,1.32576l-0.01229,0.04214l-0.00878,0.03863c-0.75858,3.50668 -5.15554,24.40802 -5.74203,26.96472c-0.08077,0.34417 -0.11414,0.31959 -0.09482,0.29852c-0.1756,-0.02634 -0.50045,-0.16506 -0.52679,-0.1756l-13.13468,-9.70175c4.4988,-4.33199 9.09945,-8.25307 13.744,-12.43229c0.8218,-0.41265 0.68483,-1.68573 -0.29852,-1.70681c-1.04305,0.24584 -1.92279,0.99564 -2.8798,1.47502c-5.49971,3.2626 -11.11882,6.13186 -16.55882,9.49279c-2.792,-0.97105 -5.57873,-1.77704 -8.15298,-2.57601c2.2336,-0.89555 4.00889,-1.55579 5.75608,-2.23009c3.05188,-1.1765 7.01687,-2.7042 10.98537,-4.24067c7.94051,-3.06944 15.92667,-6.16346 16.62028,-6.43037l0.05619,-0.02283l0.05268,-0.02283c0.19316,-0.0878 0.30378,-0.09658 0.35471,-0.10009c0,0 -0.01756,-0.05795 -0.00351,-0.04566l-0.00176,0zm-20.91715,22.0638l2.16687,1.60145c-0.93418,0.91311 -1.81743,1.77353 -2.45485,2.38812l0.28798,-3.98957"});const O=k("telegram",(function(e,{title:t}){return L(e,"telegram.url"),"https://telegram.me/share/url"+v({url:e,text:t})}),(e=>({title:e.title})),{windowWidth:550,windowHeight:400});g({color:"#34526f",networkName:"tumblr",path:"M39.2,41c-0.6,0.3-1.6,0.5-2.4,0.5c-2.4,0.1-2.9-1.7-2.9-3v-9.3h6v-4.5h-6V17c0,0-4.3,0-4.4,0 c-0.1,0-0.2,0.1-0.2,0.2c-0.3,2.3-1.4,6.4-5.9,8.1v3.9h3V39c0,3.4,2.5,8.1,9,8c2.2,0,4.7-1,5.2-1.8L39.2,41z"});k("tumblr",(function(e,{title:t,caption:n,tags:r,posttype:o}){return L(e,"tumblr.url"),"https://www.tumblr.com/widgets/share/tool"+v({canonicalUrl:e,title:t,caption:n,tags:r,posttype:o})}),(e=>({title:e.title,tags:(e.tags||[]).join(","),caption:e.caption,posttype:e.posttype||"link"})),{windowWidth:660,windowHeight:460});j((function(e,t){return i("https://api.tumblr.com/v2/share/stats"+v({url:e}),((e,n)=>{t(!e&&n&&n.response?n.response.note_count:void 0)}))}));const A=g({color:"#00aced",networkName:"twitter",path:"M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z"});const V=k("twitter",(function(e,{title:t,via:n,hashtags:r=[],related:o=[]}){return L(e,"twitter.url"),L(Array.isArray(r),"twitter.hashtags is not an array"),L(Array.isArray(o),"twitter.related is not an array"),"https://twitter.com/intent/tweet"+v({url:e,text:t,via:n,hashtags:r.length>0?r.join(","):void 0,related:o.length>0?o.join(","):void 0})}),(e=>({hashtags:e.hashtags,title:e.title,via:e.via,related:e.related})),{windowWidth:550,windowHeight:400});g({color:"#7360f2",networkName:"viber",path:"m31.0,12.3c9.0,0.2 16.4,6.2 18.0,15.2c0.2,1.5 0.3,3.0 0.4,4.6a1.0,1.0 0 0 1 -0.8,1.2l-0.1,0a1.1,1.1 0 0 1 -1.0,-1.2l0,0c-0.0,-1.2 -0.1,-2.5 -0.3,-3.8a16.1,16.1 0 0 0 -13.0,-13.5c-1.0,-0.1 -2.0,-0.2 -3.0,-0.3c-0.6,-0.0 -1.4,-0.1 -1.6,-0.8a1.1,1.1 0 0 1 0.9,-1.2l0.6,0l0.0,-0.0zm10.6,39.2a19.9,19.9 0 0 1 -2.1,-0.6c-6.9,-2.9 -13.2,-6.6 -18.3,-12.2a47.5,47.5 0 0 1 -7.0,-10.7c-0.8,-1.8 -1.6,-3.7 -2.4,-5.6c-0.6,-1.7 0.3,-3.4 1.4,-4.7a11.3,11.3 0 0 1 3.7,-2.8a2.4,2.4 0 0 1 3.0,0.7a39.0,39.0 0 0 1 4.7,6.5a3.1,3.1 0 0 1 -0.8,4.2c-0.3,0.2 -0.6,0.5 -1.0,0.8a3.3,3.3 0 0 0 -0.7,0.7a2.1,2.1 0 0 0 -0.1,1.9c1.7,4.9 4.7,8.7 9.7,10.8a5.0,5.0 0 0 0 2.5,0.6c1.5,-0.1 2.0,-1.8 3.1,-2.7a2.9,2.9 0 0 1 3.5,-0.1c1.1,0.7 2.2,1.4 3.3,2.2a37.8,37.8 0 0 1 3.1,2.4a2.4,2.4 0 0 1 0.7,3.0a10.4,10.4 0 0 1 -4.4,4.8a10.8,10.8 0 0 1 -1.9,0.6c-0.7,-0.2 0.6,-0.2 0,0l0.0,0l0,-0.0zm3.1,-21.4a4.2,4.2 0 0 1 -0.0,0.6a1.0,1.0 0 0 1 -1.9,0.1a2.7,2.7 0 0 1 -0.1,-0.8a10.9,10.9 0 0 0 -1.4,-5.5a10.2,10.2 0 0 0 -4.2,-4.0a12.3,12.3 0 0 0 -3.4,-1.0c-0.5,-0.0 -1.0,-0.1 -1.5,-0.2a0.9,0.9 0 0 1 -0.9,-1.0l0,-0.1a0.9,0.9 0 0 1 0.9,-0.9l0.1,0a14.1,14.1 0 0 1 5.9,1.5a11.9,11.9 0 0 1 6.5,9.3c0,0.1 0.0,0.3 0.0,0.5c0,0.4 0.0,0.9 0.0,1.5l0,0l0.0,0.0zm-5.6,-0.2a1.1,1.1 0 0 1 -1.2,-0.9l0,-0.1a11.3,11.3 0 0 0 -0.2,-1.4a4.0,4.0 0 0 0 -1.5,-2.3a3.9,3.9 0 0 0 -1.2,-0.5c-0.5,-0.1 -1.1,-0.1 -1.6,-0.2a1.0,1.0 0 0 1 -0.8,-1.1l0,0l0,0a1.0,1.0 0 0 1 1.1,-0.8c3.4,0.2 6.0,2.0 6.3,6.2a2.8,2.8 0 0 1 0,0.8a0.8,0.8 0 0 1 -0.8,0.7l0,0l0.0,-0.0z"});k("viber",(function(e,{title:t,separator:n}){return L(e,"viber.url"),"viber://forward"+v({text:t?t+n+e:e})}),(e=>({title:e.title,separator:e.separator||" "})),{windowWidth:660,windowHeight:460}),g({color:"#4C75A3",networkName:"vk",path:"M44.94,44.84h-0.2c-2.17-.36-3.66-1.92-4.92-3.37C39.1,40.66,38,38.81,36.7,39c-1.85.3-.93,3.52-1.71,4.9-0.62,1.11-3.29.91-5.12,0.71-5.79-.62-8.75-3.77-11.35-7.14A64.13,64.13,0,0,1,11.6,26a10.59,10.59,0,0,1-1.51-4.49C11,20.7,12.56,21,14.11,21c1.31,0,3.36-.29,4.32.2C19,21.46,19.57,23,20,24a37.18,37.18,0,0,0,3.31,5.82c0.56,0.81,1.41,2.35,2.41,2.14s1.06-2.63,1.1-4.18c0-1.77,0-4-.5-4.9S25,22,24.15,21.47c0.73-1.49,2.72-1.63,5.12-1.63,2,0,4.84-.23,5.62,1.12s0.25,3.85.2,5.71c-0.06,2.09-.41,4.25,1,5.21,1.09-.12,1.68-1.2,2.31-2A28,28,0,0,0,41.72,24c0.44-1,.91-2.65,1.71-3,1.21-.47,3.15-0.1,4.92-0.1,1.46,0,4.05-.41,4.52.61,0.39,0.85-.75,3-1.1,3.57a61.88,61.88,0,0,1-4.12,5.61c-0.58.78-1.78,2-1.71,3.27,0.05,0.94,1,1.67,1.71,2.35a33.12,33.12,0,0,1,3.92,4.18c0.47,0.62,1.5,2,1.4,2.76C52.66,45.81,46.88,44.24,44.94,44.84Z"});k("vk",(function(e,{title:t,image:n,noParse:r,noVkLinks:o}){return L(e,"vk.url"),"https://vk.com/share.php"+v({url:e,title:t,image:n,noparse:r?1:0,no_vk_links:o?1:0})}),(e=>({title:e.title,image:e.image,noParse:e.noParse,noVkLinks:e.noVkLinks})),{windowWidth:660,windowHeight:460});j((function(e,t){window.VK||(window.VK={}),window.VK.Share={count:(e,t)=>{var n,r;return null==(r=null==(n=window.VK.callbacks)?void 0:n[e])?void 0:r.call(n,t)}},window.VK.callbacks=[];const n=window.VK.callbacks.length;return window.VK.callbacks.push(t),i("https://vk.com/share.php"+v({act:"count",index:n,url:e}))})),g({color:"#DF2029",networkName:"weibo",path:"M40.9756152,15.0217119 C40.5000732,15.0546301 39.9999314,15.1204666 39.5325878,15.2192213 C38.6634928,15.4085016 38.0977589,16.2643757 38.2863368,17.1284787 C38.4667163,18.0008129 39.3194143,18.5686519 40.1885094,18.3793715 C42.8613908,17.8115326 45.7720411,18.6427174 47.7316073,20.8153207 C49.6911735,22.996153 50.2077122,25.975254 49.3714112,28.5840234 C49.1008441,29.4316684 49.5763861,30.3533789 50.4208857,30.6249537 C51.2653852,30.8965286 52.1754769,30.4192153 52.4542425,29.5715703 C53.6349013,25.9011885 52.9133876,21.7699494 50.1585171,18.7085538 C48.0923641,16.4042776 45.2063093,15.1533848 42.3530505,15.0217119 C41.8775084,14.9970227 41.4511594,14.9887937 40.9756152,15.0217119 Z M27.9227762,19.8277737 C24.9957268,20.140498 20.863421,22.4365431 17.2312548,26.0822378 C13.2711279,30.0571148 11,34.2871065 11,37.9328012 C11,44.9032373 19.8713401,49.125 28.5786978,49.125 C39.9917329,49.125 47.600423,42.4261409 47.600423,37.1427636 C47.600423,33.9496952 44.9603397,32.1638816 42.549827,31.4149913 C41.9594976,31.2339421 41.5167516,31.1434164 41.8283133,30.3616079 C42.5006339,28.66632 42.6236176,27.1932286 41.8939054,26.1480742 C40.5328692,24.1894405 36.7203236,24.2881952 32.448635,26.0822378 C32.448635,26.0822378 31.1203949,26.6912261 31.4647526,25.6213825 C32.1206742,23.4981576 32.0304845,21.712342 31.0056075,20.6836478 C30.2840938,19.9512176 29.2510184,19.6878718 27.9227762,19.8277737 Z M42.0906819,20.6836478 C41.6233383,20.6589586 41.1723917,20.716566 40.7132466,20.8153207 C39.9671353,20.9716828 39.4997917,21.7781784 39.6637721,22.5270687 C39.8277525,23.275959 40.5574647,23.7450433 41.303576,23.5804521 C42.1972686,23.3911718 43.2057485,23.6380596 43.8616701,24.3704897 C44.5175916,25.1029198 44.6733735,26.0657797 44.3864073,26.9381118 C44.1486363,27.6705419 44.5093932,28.4770397 45.2391054,28.7156963 C45.9688176,28.9461239 46.780521,28.5922524 47.0100936,27.8598223 C47.584026,26.0740087 47.2396661,24.0248493 45.8950269,22.5270687 C44.886547,21.4078489 43.4845162,20.7494842 42.0906819,20.6836478 Z M29.496988,29.9665891 C35.3100922,30.1723275 39.9917329,33.0691319 40.3852858,37.0769272 C40.8362324,41.6607904 35.5970585,45.9319315 28.6442899,46.6232144 C21.6915214,47.3144973 15.6488446,44.154347 15.197898,39.5787128 C14.7469514,34.9948495 20.059916,30.7237084 27.004486,30.0324256 C27.8735831,29.950131 28.6688875,29.9336709 29.496988,29.9665891 Z M25.5614586,34.3776322 C23.183744,34.5916017 20.9372116,35.9577073 19.9205332,37.9328012 C18.5348994,40.6238672 19.9041362,43.6029661 23.0689567,44.582284 C26.340366,45.5945202 30.1857056,44.0638213 31.5303448,41.1587879 C32.8503864,38.3195909 31.1613894,35.3734082 27.9227762,34.5751416 C27.1438688,34.3776322 26.356763,34.3035667 25.5614586,34.3776322 Z M24.052839,38.7228388 C24.3316067,38.7310678 24.5857748,38.8215935 24.8399449,38.9203482 C25.8648218,39.3400561 26.1845841,40.4428158 25.5614586,41.4221338 C24.9219361,42.3932227 23.5690963,42.8623069 22.5442194,42.4096807 C21.5357395,41.9652856 21.2487754,40.8542948 21.8882979,39.9078951 C22.3638421,39.2001542 23.2247386,38.7146097 24.052839,38.7228388 Z"});k("weibo",(function(e,{title:t,image:n}){return L(e,"weibo.url"),"http://service.weibo.com/share/share.php"+v({url:e,title:t,pic:n})}),(e=>({title:e.title,image:e.image})),{windowWidth:660,windowHeight:550,windowPosition:"screenCenter"}),g({color:"#25D366",networkName:"whatsapp",path:"m42.32286,33.93287c-0.5178,-0.2589 -3.04726,-1.49644 -3.52105,-1.66732c-0.4712,-0.17346 -0.81554,-0.2589 -1.15987,0.2589c-0.34175,0.51004 -1.33075,1.66474 -1.63108,2.00648c-0.30032,0.33658 -0.60064,0.36247 -1.11327,0.12945c-0.5178,-0.2589 -2.17994,-0.80259 -4.14759,-2.56312c-1.53269,-1.37217 -2.56312,-3.05503 -2.86603,-3.57283c-0.30033,-0.5178 -0.03366,-0.80259 0.22524,-1.06149c0.23301,-0.23301 0.5178,-0.59547 0.7767,-0.90616c0.25372,-0.31068 0.33657,-0.5178 0.51262,-0.85437c0.17088,-0.36246 0.08544,-0.64725 -0.04402,-0.90615c-0.12945,-0.2589 -1.15987,-2.79613 -1.58964,-3.80584c-0.41424,-1.00971 -0.84142,-0.88027 -1.15987,-0.88027c-0.29773,-0.02588 -0.64208,-0.02588 -0.98382,-0.02588c-0.34693,0 -0.90616,0.12945 -1.37736,0.62136c-0.4712,0.5178 -1.80194,1.76053 -1.80194,4.27186c0,2.51134 1.84596,4.945 2.10227,5.30747c0.2589,0.33657 3.63497,5.51458 8.80262,7.74113c1.23237,0.5178 2.1903,0.82848 2.94111,1.08738c1.23237,0.38836 2.35599,0.33657 3.24402,0.20712c0.99159,-0.15534 3.04985,-1.24272 3.47963,-2.45956c0.44013,-1.21683 0.44013,-2.22654 0.31068,-2.45955c-0.12945,-0.23301 -0.46601,-0.36247 -0.98382,-0.59548m-9.40068,12.84407l-0.02589,0c-3.05503,0 -6.08417,-0.82849 -8.72495,-2.38189l-0.62136,-0.37023l-6.47252,1.68286l1.73463,-6.29129l-0.41424,-0.64725c-1.70875,-2.71846 -2.6149,-5.85116 -2.6149,-9.07706c0,-9.39809 7.68934,-17.06155 17.15993,-17.06155c4.58253,0 8.88029,1.78642 12.11655,5.02268c3.23625,3.21036 5.02267,7.50812 5.02267,12.06476c-0.0078,9.3981 -7.69712,17.06155 -17.14699,17.06155m14.58906,-31.58846c-3.93529,-3.80584 -9.1133,-5.95471 -14.62789,-5.95471c-11.36055,0 -20.60848,9.2065 -20.61625,20.52564c0,3.61684 0.94757,7.14565 2.75211,10.26282l-2.92557,10.63564l10.93337,-2.85309c3.0136,1.63108 6.4052,2.4958 9.85634,2.49839l0.01037,0c11.36574,0 20.61884,-9.2091 20.62403,-20.53082c0,-5.48093 -2.14111,-10.64081 -6.03239,-14.51915"});k("whatsapp",(function(e,{title:t,separator:n}){return L(e,"whatsapp.url"),"https://"+(/(android|iphone|ipad|mobile)/i.test(navigator.userAgent)?"api":"web")+".whatsapp.com/send"+v({text:t?t+n+e:e})}),(e=>({title:e.title,separator:e.separator||" "})),{windowWidth:550,windowHeight:400}),g({color:"#4326c4",networkName:"workplace",path:"M34.019,10.292c0.21,0.017,0.423,0.034,0.636,0.049 c3.657,0.262,6.976,1.464,9.929,3.635c3.331,2.448,5.635,5.65,6.914,9.584c0.699,2.152,0.983,4.365,0.885,6.623 c-0.136,3.171-1.008,6.13-2.619,8.867c-0.442,0.75-0.908,1.492-1.495,2.141c-0.588,0.651-1.29,1.141-2.146,1.383 c-1.496,0.426-3.247-0.283-3.961-1.642c-0.26-0.494-0.442-1.028-0.654-1.548c-1.156-2.838-2.311-5.679-3.465-8.519 c-0.017-0.042-0.037-0.082-0.065-0.145c-0.101,0.245-0.192,0.472-0.284,0.698c-1.237,3.051-2.475,6.103-3.711,9.155 c-0.466,1.153-1.351,1.815-2.538,2.045c-1.391,0.267-2.577-0.154-3.496-1.247c-0.174-0.209-0.31-0.464-0.415-0.717 c-2.128-5.22-4.248-10.442-6.37-15.665c-0.012-0.029-0.021-0.059-0.036-0.104c0.054-0.003,0.103-0.006,0.15-0.006 c1.498-0.001,2.997,0,4.495-0.004c0.12-0.001,0.176,0.03,0.222,0.146c1.557,3.846,3.117,7.691,4.679,11.536 c0.018,0.046,0.039,0.091,0.067,0.159c0.273-0.673,0.536-1.32,0.797-1.968c1.064-2.627,2.137-5.25,3.19-7.883 c0.482-1.208,1.376-1.917,2.621-2.135c1.454-0.255,2.644,0.257,3.522,1.449c0.133,0.18,0.229,0.393,0.313,0.603 c1.425,3.495,2.848,6.991,4.269,10.488c0.02,0.047,0.04,0.093,0.073,0.172c0.196-0.327,0.385-0.625,0.559-0.935 c0.783-1.397,1.323-2.886,1.614-4.461c0.242-1.312,0.304-2.634,0.187-3.962c-0.242-2.721-1.16-5.192-2.792-7.38 c-2.193-2.939-5.086-4.824-8.673-5.625c-1.553-0.346-3.124-0.405-4.705-0.257c-3.162,0.298-6.036,1.366-8.585,3.258 c-3.414,2.534-5.638,5.871-6.623,10.016c-0.417,1.76-0.546,3.547-0.384,5.348c0.417,4.601,2.359,8.444,5.804,11.517 c2.325,2.073,5.037,3.393,8.094,3.989c1.617,0.317,3.247,0.395,4.889,0.242c1-0.094,1.982-0.268,2.952-0.529 c0.04-0.01,0.081-0.018,0.128-0.028c0,1.526,0,3.047,0,4.586c-0.402,0.074-0.805,0.154-1.21,0.221 c-0.861,0.14-1.728,0.231-2.601,0.258c-0.035,0.002-0.071,0.013-0.108,0.021c-0.493,0-0.983,0-1.476,0 c-0.049-0.007-0.1-0.018-0.149-0.022c-0.315-0.019-0.629-0.033-0.945-0.058c-1.362-0.105-2.702-0.346-4.017-0.716 c-3.254-0.914-6.145-2.495-8.66-4.752c-2.195-1.971-3.926-4.29-5.176-6.963c-1.152-2.466-1.822-5.057-1.993-7.774 c-0.014-0.226-0.033-0.451-0.05-0.676c0-0.502,0-1.003,0-1.504c0.008-0.049,0.02-0.099,0.022-0.148 c0.036-1.025,0.152-2.043,0.338-3.052c0.481-2.616,1.409-5.066,2.8-7.331c2.226-3.625,5.25-6.386,9.074-8.254 c2.536-1.24,5.217-1.947,8.037-2.126c0.23-0.015,0.461-0.034,0.691-0.051C33.052,10.292,33.535,10.292,34.019,10.292z"});k("workplace",(function(e,{quote:t,hashtag:n}){return L(e,"workplace.url"),"https://work.facebook.com/sharer.php"+v({u:e,quote:t,hashtag:n})}),(e=>({quote:e.quote,hashtag:e.hashtag})),{windowWidth:550,windowHeight:400}),g({color:"#000000",networkName:"X",path:"M 41.116 18.375 h 4.962 l -10.8405 12.39 l 12.753 16.86 H 38.005 l -7.821 -10.2255 L 21.235 47.625 H 16.27 l 11.595 -13.2525 L 15.631 18.375 H 25.87 l 7.0695 9.3465 z m -1.7415 26.28 h 2.7495 L 24.376 21.189 H 21.4255 z"})}}]); \ No newline at end of file diff --git a/assets/js/8258.00f858d5.js.LICENSE.txt b/assets/js/8258.206edb6e.js.LICENSE.txt similarity index 100% rename from assets/js/8258.00f858d5.js.LICENSE.txt rename to assets/js/8258.206edb6e.js.LICENSE.txt diff --git a/assets/js/main.e4d36266.js b/assets/js/main.aeb96e10.js similarity index 77% rename from assets/js/main.e4d36266.js rename to assets/js/main.aeb96e10.js index 0c79d028965..1baa208b5c0 100644 --- a/assets/js/main.e4d36266.js +++ b/assets/js/main.aeb96e10.js @@ -1,4 +1,4 @@ -/*! For license information please see main.e4d36266.js.LICENSE.txt */ +/*! For license information please see main.aeb96e10.js.LICENSE.txt */ (self.webpackChunkweb=self.webpackChunkweb||[]).push([[179],{88100:(e,t,n)=>{"use strict";n.d(t,{D3:()=>Js,tw:()=>Ks});var r=n(67294),o=n(25108),i=n(23085).lW,a=function(e,t){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},a(e,t)};var s=function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function y(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o0&&x[0]<4?1:+(x[0]+x[1])),!S&&te&&(!(x=te.match(/Edge\/(\d+)/))||x[1]>=74)&&(x=te.match(/Chrome\/(\d+)/))&&(S=+x[1]);var ae=S,se=!!Object.getOwnPropertySymbols&&!C((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&ae&&ae<41})),ce=se&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,le=Object,ue=ce?function(e){return"symbol"==typeof e}:function(e){var t=Q("Symbol");return X(t)&&ee(t.prototype,le(e))},de=String,pe=function(e){try{return de(e)}catch(e){return"Object"}},fe=TypeError,he=function(e){if(X(e))return e;throw fe(pe(e)+" is not a function")},me=function(e,t){var n=e[t];return null==n?void 0:he(n)},ge=TypeError,be=Object.defineProperty,ye=function(e,t){try{be(k,e,{value:t,configurable:!0,writable:!0})}catch(f){k[e]=t}return t},ve=k["__core-js_shared__"]||ye("__core-js_shared__",{}),_e=w((function(e){(e.exports=function(e,t){return ve[e]||(ve[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.24.0",mode:"global",copyright:"\xa9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.24.0/LICENSE",source:"https://github.com/zloirock/core-js"})})),we=Object,xe=function(e){return we(q(e))},Se=B({}.hasOwnProperty),Ee=Object.hasOwn||function(e,t){return Se(xe(e),t)},ke=0,Ce=Math.random(),Te=B(1..toString),Ae=function(e){return"Symbol("+(void 0===e?"":e)+")_"+Te(++ke+Ce,36)},Re=_e("wks"),Oe=k.Symbol,Pe=Oe&&Oe.for,ze=ce?Oe:Oe&&Oe.withoutSetter||Ae,Ze=function(e){if(!Ee(Re,e)||!se&&"string"!=typeof Re[e]){var t="Symbol."+e;se&&Ee(Oe,e)?Re[e]=Oe[e]:Re[e]=ce&&Pe?Pe(t):ze(t)}return Re[e]},Ie=TypeError,Ne=Ze("toPrimitive"),Le=function(e){var t=function(e,t){if(!K(e)||ue(e))return e;var n,r=me(e,Ne);if(r){if(void 0===t&&(t="default"),n=O(r,e,t),!K(n)||ue(n))return n;throw Ie("Can't convert object to primitive value")}return void 0===t&&(t="number"),function(e,t){var n,r;if("string"===t&&X(n=e.toString)&&!K(r=O(n,e)))return r;if(X(n=e.valueOf)&&!K(r=O(n,e)))return r;if("string"!==t&&X(n=e.toString)&&!K(r=O(n,e)))return r;throw ge("Can't convert object to primitive value")}(e,t)}(e,"string");return ue(t)?t:t+""},je=k.document,De=K(je)&&K(je.createElement),Me=function(e){return De?je.createElement(e):{}},Be=!T&&!C((function(){return 7!=Object.defineProperty(Me("div"),"a",{get:function(){return 7}}).a})),Fe=Object.getOwnPropertyDescriptor,Ue={f:T?Fe:function(e,t){if(e=Y(e),t=Le(t),Be)try{return Fe(e,t)}catch(e){}if(Ee(e,t))return N(!O(I.f,e,t),e[t])}},$e=T&&C((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),We=String,Ge=TypeError,He=function(e){if(K(e))return e;throw Ge(We(e)+" is not an object")},Ve=TypeError,qe=Object.defineProperty,Ye=Object.getOwnPropertyDescriptor,Xe={f:T?$e?function(e,t,n){if(He(e),t=Le(t),He(n),"function"==typeof e&&"prototype"===t&&"value"in n&&"writable"in n&&!n.writable){var r=Ye(e,t);r&&r.writable&&(e[t]=n.value,n={configurable:"configurable"in n?n.configurable:r.configurable,enumerable:"enumerable"in n?n.enumerable:r.enumerable,writable:!1})}return qe(e,t,n)}:qe:function(e,t,n){if(He(e),t=Le(t),He(n),Be)try{return qe(e,t,n)}catch(e){}if("get"in n||"set"in n)throw Ve("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},Ke=T?function(e,t,n){return Xe.f(e,t,N(1,n))}:function(e,t,n){return e[t]=n,e},Je=Function.prototype,Qe=T&&Object.getOwnPropertyDescriptor,et=Ee(Je,"name"),tt={EXISTS:et,PROPER:et&&"something"===function(){}.name,CONFIGURABLE:et&&(!T||T&&Qe(Je,"name").configurable)},nt=B(Function.toString);X(ve.inspectSource)||(ve.inspectSource=function(e){return nt(e)});var rt,ot,it,at=ve.inspectSource,st=k.WeakMap,ct=X(st)&&/native code/.test(at(st)),lt=_e("keys"),ut=function(e){return lt[e]||(lt[e]=Ae(e))},dt={},pt=k.TypeError,ft=k.WeakMap;if(ct||ve.state){var ht=ve.state||(ve.state=new ft),mt=B(ht.get),gt=B(ht.has),bt=B(ht.set);rt=function(e,t){if(gt(ht,e))throw new pt("Object already initialized");return t.facade=e,bt(ht,e,t),t},ot=function(e){return mt(ht,e)||{}},it=function(e){return gt(ht,e)}}else{var yt=ut("state");dt[yt]=!0,rt=function(e,t){if(Ee(e,yt))throw new pt("Object already initialized");return t.facade=e,Ke(e,yt,t),t},ot=function(e){return Ee(e,yt)?e[yt]:{}},it=function(e){return Ee(e,yt)}}var vt={set:rt,get:ot,has:it,enforce:function(e){return it(e)?ot(e):rt(e,{})},getterFor:function(e){return function(t){var n;if(!K(t)||(n=ot(t)).type!==e)throw pt("Incompatible receiver, "+e+" required");return n}}},_t=w((function(e){var t=tt.CONFIGURABLE,n=vt.enforce,r=vt.get,o=Object.defineProperty,i=T&&!C((function(){return 8!==o((function(){}),"length",{value:8}).length})),a=String(String).split("String"),s=e.exports=function(e,r,s){"Symbol("===String(r).slice(0,7)&&(r="["+String(r).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),s&&s.getter&&(r="get "+r),s&&s.setter&&(r="set "+r),(!Ee(e,"name")||t&&e.name!==r)&&(T?o(e,"name",{value:r,configurable:!0}):e.name=r),i&&s&&Ee(s,"arity")&&e.length!==s.arity&&o(e,"length",{value:s.arity});try{s&&Ee(s,"constructor")&&s.constructor?T&&o(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var c=n(e);return Ee(c,"source")||(c.source=a.join("string"==typeof r?r:"")),e};Function.prototype.toString=s((function(){return X(this)&&r(this).source||at(this)}),"toString")})),wt=function(e,t,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:t;if(X(n)&&_t(n,i,r),r.global)o?e[t]=n:ye(t,n);else{try{r.unsafe?e[t]&&(o=!0):delete e[t]}catch(e){}o?e[t]=n:Xe.f(e,t,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return e},xt=Math.ceil,St=Math.floor,Et=Math.trunc||function(e){var t=+e;return(t>0?St:xt)(t)},kt=function(e){var t=+e;return t!=t||0===t?0:Et(t)},Ct=Math.max,Tt=Math.min,At=function(e,t){var n=kt(e);return n<0?Ct(n+t,0):Tt(n,t)},Rt=Math.min,Ot=function(e){return e>0?Rt(kt(e),9007199254740991):0},Pt=function(e){return Ot(e.length)},zt=function(e){return function(t,n,r){var o,i=Y(t),a=Pt(i),s=At(r,a);if(e&&n!=n){for(;a>s;)if((o=i[s++])!=o)return!0}else for(;a>s;s++)if((e||s in i)&&i[s]===n)return e||s||0;return!e&&-1}},Zt={includes:zt(!0),indexOf:zt(!1)},It=Zt.indexOf,Nt=B([].push),Lt=function(e,t){var n,r=Y(e),o=0,i=[];for(n in r)!Ee(dt,n)&&Ee(r,n)&&Nt(i,n);for(;t.length>o;)Ee(r,n=t[o++])&&(~It(i,n)||Nt(i,n));return i},jt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Dt=jt.concat("length","prototype"),Mt={f:Object.getOwnPropertyNames||function(e){return Lt(e,Dt)}},Bt={f:Object.getOwnPropertySymbols},Ft=B([].concat),Ut=Q("Reflect","ownKeys")||function(e){var t=Mt.f(He(e)),n=Bt.f;return n?Ft(t,n(e)):t},$t=function(e,t,n){for(var r=Ut(t),o=Xe.f,i=Ue.f,a=0;a1?arguments[1]:void 0,t.length)),r=cn(e);return mn?mn(t,r,n):gn(t,n,n+r.length)===r}});var _n=function(e,t){return B(k[e].prototype[t])};_n("String","startsWith");var wn=Array.isArray||function(e){return"Array"==$(e)},xn=TypeError,Sn=function(e){if(e>9007199254740991)throw xn("Maximum allowed index exceeded");return e},En=function(e,t,n){var r=Le(t);r in e?Xe.f(e,r,N(0,n)):e[r]=n},kn=function(){},Cn=[],Tn=Q("Reflect","construct"),An=/^\s*(?:class|function)\b/,Rn=B(An.exec),On=!An.exec(kn),Pn=function(e){if(!X(e))return!1;try{return Tn(kn,Cn,e),!0}catch(e){return!1}},zn=function(e){if(!X(e))return!1;switch(an(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return On||!!Rn(An,at(e))}catch(e){return!0}};zn.sham=!0;var Zn=!Tn||C((function(){var e;return Pn(Pn.call)||!Pn(Object)||!Pn((function(){e=!0}))||e}))?zn:Pn,In=Ze("species"),Nn=Array,Ln=function(e,t){return new(function(e){var t;return wn(e)&&(t=e.constructor,(Zn(t)&&(t===Nn||wn(t.prototype))||K(t)&&null===(t=t[In]))&&(t=void 0)),void 0===t?Nn:t}(e))(0===t?0:t)},jn=Ze("species"),Dn=Ze("isConcatSpreadable"),Mn=ae>=51||!C((function(){var e=[];return e[Dn]=!1,e.concat()[0]!==e})),Bn=("concat",ae>=51||!C((function(){var e=[];return(e.constructor={})[jn]=function(){return{foo:1}},1!==e.concat(Boolean).foo}))),Fn=function(e){if(!K(e))return!1;var t=e[Dn];return void 0!==t?!!t:wn(e)};Jt({target:"Array",proto:!0,arity:1,forced:!Mn||!Bn},{concat:function(e){var t,n,r,o,i,a=xe(this),s=Ln(a,0),c=0;for(t=-1,r=arguments.length;ta;)Xe.f(e,n=o[a++],r[n]);return e},Hn={f:Gn},Vn=Q("document","documentElement"),qn=ut("IE_PROTO"),Yn=function(){},Xn=function(e){return"
- - + + \ No newline at end of file diff --git a/blog/chat2query-tutorials/index.html b/blog/chat2query-tutorials/index.html index 6d340fc5af0..fbd10b2e6bc 100644 --- a/blog/chat2query-tutorials/index.html +++ b/blog/chat2query-tutorials/index.html @@ -21,13 +21,13 @@ - - + +

Get insight from your own data by asking questions without SQL skills

Β· One min read
PingCAP
ChatGPT

This blog is written with help of ChatGPT.


To get insight of your own dataset without writing sql is easy, follow these steps:

  1. Sign up for a TiDB Cloud account at https://tidbcloud.com/ using your email, Google account, or GitHub account.

  2. Create a free Serverless Tier cluster in the TiDB Cloud web console.

  3. In the TiDB Cloud web console, click the "Import" button and follow the prompts to load a CSV file into your cluster from a local file or from Amazon S3.

    Import Data

  4. Use the web console's SQL editor(Chat2Query) to get insights from your data. But no worry, you don't need to write SQL, you could ask questions about your data in natural language.

    The magic is typing -- your question and press Enter, here is an example:

- - + + \ No newline at end of file diff --git a/blog/deep-insight-into-js-framework-2021/index.html b/blog/deep-insight-into-js-framework-2021/index.html index 3642f3d5703..55e774f38da 100644 --- a/blog/deep-insight-into-js-framework-2021/index.html +++ b/blog/deep-insight-into-js-framework-2021/index.html @@ -21,13 +21,13 @@ - - + +

Deep Insights into JavaScript Frameworks

Β· 3 min read
Jagger

In this chapter, we will share with you some of the top JavaScript Framework repos(JSF repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Note:

  1. You can move your cursor onto any of the repository bars/lines on the chart and get the exact number.
  2. The SQL commands above each chart are what we use on our TiDB Cloud to get the analytical results. Try those SQL commands by yourselves on TiDB Cloud with this 10-minute tutorial.

Star history of top JavaScript Framework repos since 2011​

The number of stars is often thought of as a measure of whether a GitHub repository is popular or not. We sort all JavaScript framework repositories from GitHub by the total number of historical stars since 2011. For visualizing the results more intuitively, we show the top 10 open source databases by using an interactive line chart.

Top 10 most starred JSF repos in 2021​

Top 10 JSF repos with the most PRs in 2021​

Which javascript framework have the widest feedback sources?​

The chart below displays the number of issue creators of leading javascript framework each year and their growth trend during the past ten years.

Top 20 developers contributing the most PRs to JSF repos in 2021​

Top 10 JSF repos with the highest YoY growth rate of stars in 2021​

Top 10 JSF repos with the lowest YoY growth rate of stars in 2021​

Top 10 most used programming languages in JSF repos in 2021​

Top 20 companies contributing the most to JSF repos in 2021​

Top 10 countries/regions contributing the most to JSF repos in 2021​

The Rankings of JSF repos measured by Z-score in 2021​

The analytical results displayed above are generated based on just one single metric of these three: stars, PRs, or contributors. Now, we will use the Z-score method to rank the JSF repos on GitHub.

This is the comprehensive ranking calculated by z-score:

- - + + \ No newline at end of file diff --git a/blog/deep-insight-into-lowcode-development-tools-2021/index.html b/blog/deep-insight-into-lowcode-development-tools-2021/index.html index ed51d90694b..ad3666ffc7e 100644 --- a/blog/deep-insight-into-lowcode-development-tools-2021/index.html +++ b/blog/deep-insight-into-lowcode-development-tools-2021/index.html @@ -21,13 +21,13 @@ - - + +

Deep Insights into Low-code Development Tools

Β· 2 min read
Jagger

In this chapter, we will share with you some of the top low-code development tools repos (LCDT repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Note:

  1. You can move your cursor onto any of the repository bars/lines on the chart and get the exact number.
  2. The SQL commands above each chart are what we use on our TiDB Cloud to get the analytical results. Try those SQL commands by yourselves on TiDB Cloud with this 10-minute tutorial.

Star history of top LCDT repos since 2011​

Top 10 most starred LCDT repos in 2021​

Top 10 LCDT repos with the most PRs in 2021​

Top 20 developers contributing the most PRs to LCDT repos in 2021​

Top 10 LCDT repos with the highest YoY growth rate in 2021​

Top 10 LCDT repos with the lowest YoY growth rate in 2021​

Top 7 most used programming languages in LCDT repos in 2021​

Top 20 companies contributing the most to LCDT repos in 2021​

Top 20 countries/regions contributing the most to LCDT repos in 2021​

The rankings of LCDT repos measured by Z-score in 2021​

The analytical results displayed above are generated based on just one single metric of these three: stars, PRs, or contributors. Now, we will use the Z-score method to rank the LCDT repos on GitHub.

This is the comprehensive ranking calculated by z-score:

- - + + \ No newline at end of file diff --git a/blog/deep-insight-into-open-source-databases/index.html b/blog/deep-insight-into-open-source-databases/index.html index 13c8fe7e87e..7276bfe34c8 100644 --- a/blog/deep-insight-into-open-source-databases/index.html +++ b/blog/deep-insight-into-open-source-databases/index.html @@ -21,13 +21,13 @@ - - + +

Deep Insight Into Open Source Databases

Β· 6 min read
Jagger

On this page, we will share with you many deep insights into open source databases, such as the database popularity, database contributors, coding vitality, community feedback and so on.

We’ll also share the SQL commands that generate all these analytical results above each chart, so you can use them on your own on TiDB Cloud following this 10-minute tutorial.

Database Popularity​

The popularity trend in the past ten years​

The chart below displays the accumulated number of stars open source databases gained respectively each year and their star growth trend during the past ten years.

Which databases experienced a popularity boom in 2021?​

The chart below displays top 10 open source databases with the highest year-over-year growth rate of stars in 2021 alone.

Which databases barely gained influence in 2021?​

The chart below displays top 10 open source databases with the lowest year-over-year growth rate of stars in 2021 alone.

Which databases were the new favorites in 2021?​

The chart below displays the top open source databases that gained the most stars in 2021.

Which countries & regions favor databases the most?​

The map below describes the geographical distribution of database stargazers. The larger and darker the color spots on this map, the more database stargazers are distributed.

Which companies like databases the most?​

The pie chart below describes which company those database stargazers work for and how many stargazers those companies employ.

Database contributors​

Which countries & regions led the database contributions in 2021?​

The map below shows the geographic distribution of developers who pushed commits, resolved issues, or submitted pull requests to open source databases in 2021. The larger and darker the color spots on this map, the more database contributors were distributed.

Which companies led the database contributions in 2021?​

The chart below shows the employment distribution of developers who pushed commits, resolved issues, or submitted pull requests to open source databases in 2021.

Who were the leading individual contributors in 2021?​

The chart below lists 20 most active individual contributors to open source databases in 2021 based on how many pull requests they opened.

When did developers contribute?​

The heat map below describes the number of push events that occur at a particular point of time (UTC). For each day and hour, the colored boxes indicate the number of push events. The lighter the color, the fewer push events; the darker the color, the more push events. You can learn from this heat map what time is the busiest for contributors, and roughly conclude which country or region distributes the most contributors.

Database coding vitality​

Which databases vibrantly maintained and updated itself in 2021?​

The chart below displays top 10 open source databases that received the most pull requests in 2021 alone.

Database user feedback​

Which databases have the widest feedback sources?​

The chart below displays the number of issue creators of leading open source databases each year and their growth trend during the past ten years.

Which databases gave the fastest first response in 2021?​

The bar chart below shows the median time each open source database needs to make its first response to an issue.

Which databases were the most efficient in feedback resolution in 2021?​

The bar chart below shows the median time each open source database needs to close an issue.

Who gave the feedback in 2021?​

The map below shows the geographical distribution of developers who submitted issues to open source databases. The larger and darker the color spots on this map, the more issue openers were distributed.

Community Robustness​

Which databases have the most heavy contributors?​

The chart below displays the number of heavy contributors (who submitted more than 100 pull requests), medium contributors (who submitted more than 10 but less than 100 pull requests), and light contributors (who submitted less than 10 pull requests) of leading open source databases. The chart also ranks these databases based on their number of heavy contributors.

Click here to expand SQL

Which databases are heavily contributed?​

The chart below displays the number of pull requests submitted by heavy contributors, medium contributors, and light contributors. The chart also ranks these databases based on the number of pull requests submitted by heavy contributors.

Click here to expand SQL

How fast did databases approve their code changes?​

The chart below shows the median time each open source database needs from submitting to merging a pull request.

Database programming languages​

Which languages were most favored in 2021?​

The chart below shows the top programming languages used in pull requests submitted to open source databases in 2021.

- - + + \ No newline at end of file diff --git a/blog/deep-insight-into-programming-languages-2021/index.html b/blog/deep-insight-into-programming-languages-2021/index.html index f73a8070026..db394d66994 100644 --- a/blog/deep-insight-into-programming-languages-2021/index.html +++ b/blog/deep-insight-into-programming-languages-2021/index.html @@ -21,13 +21,13 @@ - - + +

Deep Insights into Programming Languages

Β· 2 min read
Jagger

In this chapter, we will share with you some of the top programming language repos (PL repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Note:

  1. You can move your cursor onto any of the repository bars/lines on the chart and get the exact number.
  2. The SQL commands above each chart are what we use on TiDB Cloud to get the analytical results. Try those SQL commands by yourselves on TiDB Cloud with this 10-minute tutorial.

Star history of top PL repos since 2011​

Top 10 most starred PL repos in 2021​

Top 10 PL repos with the most PRs in 2021​

Top 20 developers contributed the most PRs to PL repos in 2021​

Top 9 PL repos with the highest YoY growth rate of stars in 2021​

Top 10 PL repos with the lowest YoY growth rate of stars in 2021​

Top 20 companies contributing the most to PL repos in 2021​

Top countries or regions contributing to OSS programming languages​

The rankings of PL repos measured by Z-score in 2021​

The analytical results displayed above are generated based on just one single metric of these three: stars, PRs, or contributors. Now, we will use the Z-score method to rank PL repos on GitHub.

This is the comprehensive ranking calculated by z-score:

- - + + \ No newline at end of file diff --git a/blog/deep-insight-into-web-framework-2021/index.html b/blog/deep-insight-into-web-framework-2021/index.html index 3e7aa1c4670..5d49b765ba7 100644 --- a/blog/deep-insight-into-web-framework-2021/index.html +++ b/blog/deep-insight-into-web-framework-2021/index.html @@ -21,13 +21,13 @@ - - + +

Deep Insights into Web Frameworks

Β· 3 min read
Jagger

In this chapter, we will share with you some of the top Web Framework repos (WF repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Note:

  1. You can move your cursor onto any of the repository bars/lines on the chart and get the exact number.
  2. The SQL commands above each chart are what we use on our TiDB Cloud to get the analytical results. Try those SQL commands by yourselves on TiDB Cloud with this 10-minute tutorial.

Star history of top Web Framework repos since 2011​

The number of stars is often thought of as a measure of whether a GitHub repository is popular or not. We sort all web framework repositories from GitHub by the total number of historical stars since 2011. For visualizing the results more intuitively, we show the top 10 open source databases by using an interactive line chart.

Top 10 most starred Web Framework repos in 2021​

Top 10 Web Framework repos with the most PRs in 2021​

Top 20 developers contributed the most PRs to Web Framework repos in 2021​

Top 20 Web Framework repos with the highest YoY growth rate of stars in 2021​

Top 10 Web Framework repos with the lowest YoY growth rate of stars in 2021​

Top 10 most used programming languages in Web Framework repos in 2021​

Top 20 companies contributing the most to Web Framework repos in 2021​

Top 10 countries/regions contributing the most to Web Framework repos in 2021​

The Rankings of Web Framework repos measured by Z-score in 2021​

The analytical results displayed above are generated based on just one single metric of these three: stars, PRs, or contributors. Now, we will use the Z-score method to rank the WF repos on GitHub.

This is the comprehensive ranking calculated by z-score:

- - + + \ No newline at end of file diff --git a/blog/explore-deep-in-4.6-billion-github-events/index.html b/blog/explore-deep-in-4.6-billion-github-events/index.html index 4ba0539c005..c2690bc9cd1 100644 --- a/blog/explore-deep-in-4.6-billion-github-events/index.html +++ b/blog/explore-deep-in-4.6-billion-github-events/index.html @@ -21,13 +21,13 @@ - - + +

Explore Deep in 4.6 Billion GitHub Events

Β· 10 min read
Fendy Feng

4.6 billion is literally an astronomical figure. The richest star map of our galaxy, brought by Gaia space observatory, includes just under 2 billion stars. What does a view of 4.6 billion GitHub events really look like? What secrets and values can be discovered in such an enormous amount of data?

Here you go: OSSInsight.io can help you find the answer. It’s a useful insight tool that can give you the most updated open source intelligence, and help you deeply understand any single GitHub project or quickly compare any two projects by digging deep into 4.6 billion GitHub events in real time. Here are some ways you can play with it.

Compare any two GitHub projects​

Do you wonder how different projects have performed and developed over time? Which project is worthy of more attention? OSSInsight.io can answer your questions via the Compare Projects page.

Let’s take the Kubernetes repository (K8s) and Docker’s Moby repository as examples and compare them in terms of popularity and coding vitality.

Popularity​

To compare the popularity of two repositories, we use multiple metrics including the number of stars, the growth trend of stars over time, and stargazers’ geographic and employment distribution.

Number of stars​

The line chart below shows the accumulated number of stars of K8s and Moby each year. According to the chart, Moby was ahead of K8s until late 2019. The star growth of Moby slowed after 2017 while K8s has kept a steady growth pace.

The star history of K8s and Moby

Geographical distribution of stargazers​

The map below shows the stargazers’ geographical distribution of Moby and K8s. As you can see, their stargazers are scattered around the world with the majority coming from the US, Europe, and China.

The geographical distribution of K8s and Moby stargazers

Employment distribution of stargazers​

The chart below shows the stargazers’ employment of K8s (red) and Moby (dark blue). Both of their stargazers work in a wide range of industries, and most come from leading dotcom companies such as Google, Tencent, and Microsoft. The difference is that the top two companies of K8s’ stargazers are Google and Microsoft from the US, while Moby’s top two followers are Tencent and Alibaba from China.

The employment distribution of K8s and Moby stargazers

Coding vitality​

To compare the coding vitality of two GitHub projects, we use many metrics including the growth trend of pull requests (PRs), the monthly number of PRs, commits and pushes, and the heat map of developers’ contribution time.

Number of commits and pushes​

The bar chart below shows the number of commits and pushes submitted to K8s (top) and Moby (bottom) each month after their inception. Generally speaking, K8s has more pushes and commits than Moby, and their number grew stably until 2020 followed by a slowdown afterwards. Moby’s monthly pushes and commits had a minor growth between 2015 and 2017, and then barely increased after 2018.

The monthly pushes and commits of K8s (top) and Moby (bottom)

Number of PRs​

The charts below show the monthly and accumulated number of PRs of the two repositories. As you can see, K8s has received stable and consistent PR contributions ever since its inception and its accumulated number of PRs has also grown steadily. Moby had vibrant PR submissions before late 2017, but started to drop afterwards. Its accumulated number of PRs reached a plateau in 2017, which has remained the case ever since.

The monthly and accumulated PR number of K8s (top) and Moby (bottom)

Developers’ contribution time​

The following heat map shows developers’ contribution time for K8s (left) and Moby (right). Each square represents one hour in a day. The darker the color, the more contributions occur during that time. K8s has many more dark parts than Moby, and K8s’ contributions occur almost 24 hours a day, 7 days a week. K8s definitely has more dynamic coding activities than Moby.

Heat map of developers’ contribution time of K8s (left) and Moby (right)

Taken together, these metrics show that while both K8s and Moby are popular across industries world-wide, K8s has more vibrant coding activities than Moby. K8s is continuously gaining popularity and coding vitality while Moby is falling in both over time.

Popularity and coding vitality are just two dimensions to compare repositories. If you want to discover more insights or compare other projects you are interested in, feel free to visit the Compare page and explore it for yourself.

Of course, you can use this same page to deeply explore any single GitHub project and gain the most up-to-date insights about them. The key metrics and the corresponding changes are presented in a panoramic view. More in-depth analytics such as code changes by PR size groups and PR lines are also available. Explore it for yourself and you’d be surprised. Have fun.

Panoramic view of key GitHub metrics (K8s as an example)

Total PR number each month/PR groups (K8s as an example)

The number of lines of code change each month (K8s as an example)

Key open source insights​

OSSInsight.io does more than explore or compare repositories. It gives you historical, real-time, and custom open source insights. In this section, we’ll share some key insights in open source databases and programming languages. If you want to gain insights in other areas, you can explore the Insights page for yourself.

Note: If you want to get those analytical results by yourself, you can execute the SQL commands above each chart on TiDB Cloud with ease following this 10-minute tutorial.

Rust: the most active programming language​

Rust was first released in 2012 and has been among the leading programming languages for 10 years. It has the most active repository with a total of 103,047 PRs at the time of writing.

Click here to show SQL commands

SELECT
programming_language_repos.name AS repo_name,
COUNT(*) AS num
FROM github_events
JOIN programming_language_repos ON programming_language_repos.id = github_events.repo_id
WHERE type = 'PullRequestEvent'
AND action = 'opened'
GROUP BY 1
ORDER BY 2 DESC
LIMIT 10

PR numbers of the leading programming languages

Go: the new favorite and the fastest growing programming language​

According to OSSInsight.io, 10 programming languages dominate the open source community. Go is the most popular with 108,317 stars, followed by Node and TypeScript. Go is also the fastest growing language in popularity.

Click here to show SQL commands

WITH repo_stars AS (
SELECT
repo_id,
ANY_VALUE(repos.name) AS repo_name,
COUNT(distinct actor_login) AS stars
FROM github_events
JOIN programming_language_repos repos ON repos.id = github_events.repo_id
WHERE type = 'WatchEvent'
GROUP BY 1
), top_10_repos AS (
SELECT
repo_id, repo_name, stars
FROM repo_stars rs
ORDER BY stars DESC
LIMIT 10
), tmp AS (
SELECT
event_year,
tr.repo_name AS repo_name,
COUNT(*) AS year_stars
FROM github_events
JOIN top_10_repos tr ON tr.repo_id = github_events.repo_id
WHERE type = 'WatchEvent' AND event_year <= 2021
GROUP BY 2, 1
ORDER BY 1 ASC, 2
), tmp1 AS (
SELECT
event_year,
repo_name,
SUM(year_stars) OVER(partition by repo_name order by event_year ASC) as stars
FROM tmp
ORDER BY event_year ASC, repo_name
)
SELECT event_year, repo_name, stars FROM tmp1

The star growth trends of leading programming languages

Microsoft and Google: the top two programing languages contributors​

As world-renowned high-tech companies, Microsoft and Google take the lead in open source language contributions with a total of 1,443 and 947 contributors respectively at the time of writing.

Click here to show SQL commands

SELECT
TRIM(LOWER(REPLACE(u.company, '@', ''))) AS company,
COUNT(DISTINCT actor_id) AS num
FROM
github_events github_events
JOIN programming_language_repos db ON db.id = github_events.repo_id
JOIN users u ON u.login = github_events.actor_login
WHERE
github_events.type IN (
'IssuesEvent', 'PullRequestEvent','IssueCommentEvent',
'PullRequestReviewCommentEvent', 'CommitCommentEvent',
'PullRequestReviewEvent'
)
AND u.company IS NOT NULL
AND u.company != ''
AND u.company != 'none'
GROUP BY 1
ORDER BY 2 DESC
LIMIT 20;

Companies who contribute the most to programing languages

Elasticsearch draws the most attention​

Elasticsearch was one of the first open source databases. It is the most liked database with 64,554 stars, followed by Redis and Prometheus. From 2011 to 2016, Elasticseasrch and Redis shared the top spot until Elasticsearch broke away in 2017.

Click here to show SQL commands

WITH repo_stars AS (
SELECT
repo_id,
ANY_VALUE(repos.name) AS repo_name,
COUNT(distinct actor_login) AS stars
FROM github_events
JOIN db_repos repos ON repos.id = github_events.repo_id
WHERE type = 'WatchEvent'
GROUP BY 1
), top_10_repos AS (
SELECT
repo_id, repo_name, stars
FROM repo_stars rs
ORDER BY stars DESC
LIMIT 10
), tmp AS (
SELECT
event_year,
tr.repo_name AS repo_name,
COUNT(*) AS year_stars
FROM github_events
JOIN top_10_repos tr ON tr.repo_id = github_events.repo_id
WHERE type = 'WatchEvent' AND event_year <= 2021
GROUP BY 2, 1
ORDER BY 1 ASC, 2
), tmp1 AS (
SELECT
event_year,
repo_name,
SUM(year_stars) OVER(partition by repo_name order by event_year ASC) as stars
FROM tmp
ORDER BY event_year ASC, repo_name
)
SELECT event_year, repo_name, stars FROM tmp1

The star growth trend of leading databases

China: the number one fan of open source databases​

China has the most open source database followers with 11,171 stargazers of database repositories, followed by the US and Europe.

Click here to show SQL commands

select upper(u.country_code) as country_or_area, count(*) as count, count(*) / max(s.total) as percentage
from github_events
use index(index_github_events_on_repo_id)
left join users u ON github_events.actor_login = u.login
join (
-- Get the number of people has the country code.
select count(*) as total
from github_events
use index(index_github_events_on_repo_id)
left join users u ON github_events.actor_login = u.login
where repo_id in (507775, 60246359, 17165658, 41986369, 16563587, 6838921, 108110, 166515022, 48833910, 156018, 50229487, 20089857, 5349565, 6934395, 6358188, 11008207, 19961085, 206444, 30753733, 105944401, 31006158, 99919302, 50874442, 84240850, 28738447, 44781140, 372536760, 13124802, 146459443, 28449431, 23418517, 206417, 9342529, 19257422, 196353673, 172104891, 402945349, 11225014, 2649214, 41349039, 114187903, 20587599, 19816070, 69400326, 927442, 24494032) and github_events.type = 'WatchEvent' and u.country_code is not null
) s
where repo_id in (507775, 60246359, 17165658, 41986369, 16563587, 6838921, 108110, 166515022, 48833910, 156018, 50229487, 20089857, 5349565, 6934395, 6358188, 11008207, 19961085, 206444, 30753733, 105944401, 31006158, 99919302, 50874442, 84240850, 28738447, 44781140, 372536760, 13124802, 146459443, 28449431, 23418517, 206417, 9342529, 19257422, 196353673, 172104891, 402945349, 11225014, 2649214, 41349039, 114187903, 20587599, 19816070, 69400326, 927442, 24494032) and github_events.type = 'WatchEvent' and u.country_code is not null
group by 1
order by 2 desc;

The geographical distribution of open source database stargazers

OSSInsight.io also allows you to create your own custom insights into any GitHub repository created after 2011. You’re welcome to visit the Insights page to explore more.

Run your own analytics with TiDB Cloud​

All the analytics on OSSInsight.io are powered by TiDB Cloud, a fully-managed database as a service. If you want to run your own analytics and get your own insights, sign up for a TiDB Cloud account and try it for yourself with this 10-minute tutorial.

Contact us​

Do you find OSSInsight.io useful and fun to work with? Do you have any question or feedback to share with us? Feel free to file an issue on GitHub or follow us on Twitter to get the latest information. You’re also welcome to share this insight tool with your friends.

- - + + \ No newline at end of file diff --git a/blog/github-data-is-booming/index.html b/blog/github-data-is-booming/index.html index 2663c7f1e07..adfb39534ff 100644 --- a/blog/github-data-is-booming/index.html +++ b/blog/github-data-is-booming/index.html @@ -21,13 +21,13 @@ - - + +

GitHub Events Are Booming! Are Bots the Reason?

Β· 5 min read
Mia Zhou
Wink Yao
Caitin Chen

The OSS Insight website displays the data changes of GitHub events in real time. GitHub events are activities triggered by user actions on GitHub, for example, commenting and forking a repository. In nearly seven weeks, GitHub events increased by about 150 million, from 4.7 billion to 4.85 billion. GitHub events are booming!

This post dives deeply into GitHub event trending, why GitHub events are surging, and whether GitHub's architecture can handle the increasing load.

Historical data analysis​

The OSS Insight database includes all the GitHub events since 2011. When we plot the number of events by year, we can see that since 2018 they have been increasing rapidly.


GitHub event trending

GitHub event trending

The figure below shows how long it takes to grow each billion events in GitHub.


The time to reach a billion GitHub events

The time to reach a billion GitHub events

It's taking less and less for GitHub to generate 1 billion events. It took more than 6 years for the first billion events and only 13 months for the last billion!

The secret behind the exponential growth of GitHub events​

GitHub Actions was released in October 2018. Since August 2019, it has supported continuous integration and continuous delivery (CI/CD), and it has been free for open source projects. Therefore, projects hosted on GitHub can automate their own development workflows, and a large number of automation-related bot applications have appeared on GitHub Marketplace. Could GitHub events' data growth be related to these?

To find the answer, we divided the events into data from humans and data from bots and plotted them with the following histogram. The blue columns represent the human data, and the yellow columns represent the bot data.


Bot events vs. human events

Bot events vs. human events

As you can see, the proportion of GitHub bot events has increased each year. In 2015, they were only 1.23% of all events. In early July of this year, they reached 13.2%. To show the data changes of bot events more clearly, we made the following line chart.


Bot event trending

Bot event trending

This figure shows that since 2019, bot events have been grown faster than before. As Mini256, a TiDB community contributor said in Love, Code, and Robot β€” Explore robots in the world of code:

For now, rough statistics find that there are more than 95,620 bots on GitHub. The number doesn't seem like so much, but wait...

These 95 thousand bot accounts generated 603 million events. These events account for 12.82% of all public events on GitHub, and these GitHub robots have served over 18 million open source repositories.

Bots are playing an increasingly important role on GitHub. Many projects are handing over automated work to bots. We expect that GitHub events will grow faster in the future.

When will GitHub reach 10 billion events?​

How many GitHub events will there be by the end of 2022? We fit predictions to GitHub historical data.


Human event fit (left) vs. bot event fit (right)

Human event fit (left) vs. bot event fit (right)

It's estimated that by the end of 2022, GitHub events will reach 5.36 billion.


github-event-prediction
GitHub event prediction

According to this prediction, GitHub events will exceed 10 billion in February 2025.


gitub-events-exceed-10-billion
GitHub events will exceed 10 billion in 2025

Can MySQL sharding support such a huge amount of data?​

GitHub uses MySQL as the main storage for all non-git warehouse data. The rapid growth of data volume poses a great challenge to GitHub's high availability. In March 2022, GitHub had 3 service disruptions, each lasting 2-5 hours. The official investigation report shows the MySQL database caused the outages. During peak load periods, the GitHub mysql1 database (the main database cluster in GitHub) load increased. Therefore, database access reached the maximum number of connections. This affected the performance of many GitHub services and features.

In fact, over the past few years GitHub has optimized its databases. For example, it added clusters to support platform growth and partitioned the main database. But these improvements did not fundamentally solve the problem. In the near future, GitHub events will exceed 5 billion, or even 10 billion. Can MySQL sharding support such data surge?

Data sources​

All the analysis data in this article comes from OSS Insight, a tool based on TiDB to analyze and gain insights into GitHub events data.

You can use it to easily get insights about developers and repositories based on billions of GitHub events. You can also get the latest and historical rankings and trends in technical fields.


The OSS Insight website

The OSS Insight website

- - + + \ No newline at end of file diff --git a/blog/how-it-works/index.html b/blog/how-it-works/index.html index 0bcf2bf1c81..cfbb33f7f7a 100644 --- a/blog/how-it-works/index.html +++ b/blog/how-it-works/index.html @@ -21,13 +21,13 @@ - - + +

Data Preparation for Analytics

Β· 5 min read
hooopo

Data​

All the data we use here on this website sources from GH Archive, a non-profit project that records and archives all GitHub events data since 2011. The total data volume archived by GH Archive can be up to 4 billion rows. We download the json file on GH Archive and convert it into csv format via Script, and finally load it into the TiDB cluster in parallel through TiDB-Lightning.

In this section, we will explain step by step how we conduct this process.

  1. Prepare the data in csv format for TiDB Lighting.
β”œβ”€β”€ gharchive_dev.github_events.000000000000.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000001.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000002.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000003.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000004.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000005.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000006.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000007.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000008.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000009.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000010.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000011.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000012.csv
β”œβ”€β”€ gharchive_dev.github_events.000000000013.csv
  1. Configure the TiDB Lightning as follows.
cat tidb-lightning.toml
[mydumper.csv]
separator = ','
delimiter = '"'
header = true
not-null = false
backslash-escape = true
trim-last-separator = false

[tikv-importer]
backend = "local"
sorted-kv-dir = "/kvdir/"

disk-quota = "1.5TiB"

[mydumper]
data-source-dir = "/csv_dir/"
strict-format = false
no-schema = true

[tidb]
host = "xxx"
port = 3306
user = "github_events"
password = "******"

[lightning]
check-requirements = false
region-concurrency = 32
meta-schema-name = "gharchive_meta"
  1. Load the data into the TiDB cluster.
nohup tidb-lightning -config ./tidb-lightning.toml > nohup.out
  1. Convert the unstructured json file provided by GH Archive into structured data.
gharchive_dev> desc github_events;
+--------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+-------+
| id | bigint(20) | YES | MUL | <null> | |
| type | varchar(255) | YES | MUL | <null> | |
| created_at | datetime | YES | MUL | <null> | |
| repo_id | bigint(20) | YES | MUL | <null> | |
| repo_name | varchar(255) | YES | MUL | <null> | |
| actor_id | bigint(20) | YES | MUL | <null> | |
| actor_login | varchar(255) | YES | MUL | <null> | |
| actor_location | varchar(255) | YES | | <null> | |
| language | varchar(255) | YES | MUL | <null> | |
| additions | bigint(20) | YES | MUL | <null> | |
| deletions | bigint(20) | YES | MUL | <null> | |
| action | varchar(255) | YES | MUL | <null> | |
| number | int(11) | YES | | <null> | |
| commit_id | varchar(255) | YES | MUL | <null> | |
| comment_id | bigint(20) | YES | MUL | <null> | |
| org_login | varchar(255) | YES | MUL | <null> | |
| org_id | bigint(20) | YES | MUL | <null> | |
| state | varchar(255) | YES | | <null> | |
| closed_at | datetime | YES | MUL | <null> | |
| comments | int(11) | YES | MUL | <null> | |
| pr_merged_at | datetime | YES | MUL | <null> | |
| pr_merged | tinyint(1) | YES | | <null> | |
| pr_changed_files | int(11) | YES | MUL | <null> | |
| pr_review_comments | int(11) | YES | MUL | <null> | |
| pr_or_issue_id | bigint(20) | YES | MUL | <null> | |
| event_day | date | YES | MUL | <null> | |
| event_month | date | YES | MUL | <null> | |
| author_association | varchar(255) | YES | | <null> | |
| event_year | int(11) | YES | MUL | <null> | |
| push_size | int(11) | YES | | <null> | |
| push_distinct_size | int(11) | YES | | <null> | |
+--------------------+--------------+------+-----+---------+-------+
  1. With structured data at hand, we can start to make further analysis with TiDB Cloud. Execute SQL commands to generate analytical results. For example, you can execute SQL commands below to output the top 10 most starred JavaScript framework repos in 2021.
  SELECT js.name, count(*) as stars 
FROM github_events
JOIN js_framework_repos js ON js.id = github_events.repo_id
WHERE type = 'WatchEvent' and event_year = 2021
GROUP BY 1
ORDER BY 2 DESC
LIMIT 10;
+-------------------+-------+
| name | stars |
+-------------------+-------+
| facebook/react | 22830 |
| sveltejs/svelte | 18573 |
| vuejs/vue | 18015 |
| angular/angular | 11037 |
| alpinejs/alpine | 6993 |
| preactjs/preact | 2965 |
| hotwired/stimulus | 1355 |
| marko-js/marko | 1006 |
| neomjs/neo | 826 |
| tastejs/todomvc | 813 |
+-------------------+-------+

We have analyzed all the GitHub projects regarding databases, JavaScript frameworks, programming languages, web frameworks, and low-code development tools, and provided valuable insights in 2021, in real time, and custom insights. If the repository you care about is not included here, you're welcome to submit your PR here. If you want to gain more insights into other areas, you can try TiDB Cloud by yourselves with this 10-minute tutorial.

Below are the areas of GitHub projects we have analyzed.

gharchive_dev> show tables;
+-----------------------------+
| Tables_in_gharchive_dev |
+-----------------------------+
| cn_repos |
| css_framework_repos |
| db_repos |
| github_events |
| js_framework_repos |
| nocode_repos |
| programming_language_repos |
| static_site_generator_repos |
| web_framework_repos |
+-----------------------------+
info

🌟 Details in how OSS Insight works​

Go to read Use TiDB Cloud to Analyze GitHub Events in 10 Minutes and use the Serverless Tier TiDB Cloud Cluster.

You can find the reason How we implement OSS Insight ? as well!

- - + + \ No newline at end of file diff --git a/blog/how-to-build-oss-comparison-gpt/index.html b/blog/how-to-build-oss-comparison-gpt/index.html index 9546f3da53c..3aede79c6ad 100644 --- a/blog/how-to-build-oss-comparison-gpt/index.html +++ b/blog/how-to-build-oss-comparison-gpt/index.html @@ -21,13 +21,13 @@ - - + +

Configurations for building "Open Source Benchmark" GPTs

Β· 18 min read
sykp241095
ChatGPT

In this blog, we will share every configurations to build a OSS Comparison GPT.

GPTs Configurations​

Name​

Open Source Benchmark

Description​

Compare open-source softwares

Instructions​

You are a data analysis expert. 
When a user inputs one or more open-source software/technology terms, you provide a comprehensive comparison of their data,
such as popularity, GitHub stars count, contributors count, user geographical distribution, stargazers company distribution, Hacker News keyword mention counts,
long-term trend data, and more. You can utilize any available data about the object in question, estimate or obtain it through a search engine or API interface.
Currently, you have the following APIs at your disposal:

1. GitHub API for getting repo basic info
2. OSS Insight API for star history and stargazer's distribution
3. Hackernews mentions per_year API
4. OSS Insight star history chart API (show me with a <img> label)
5. OSS Insight API for stargazers company distribution

Here's a step-by-step process:

Identify which API to use based on the data you need.
- you goal is to think more metrics according exist API.
- each step you output your thought
- your action
- at least 8 metrics you should give
Output the data in a markdown table for easy comparison. add your known metrics for more insight. at least 8 metrics.

| Dimension | A | B |
|----------------|-------------|-------------|
| Dimension 1 | Detail A1 | Detail B1 |
| Dimension 2 | Detail A2 | Detail B2 |
| Dimension 3 | Detail A3 | Detail B3 |
| ... | ... | ... |
| Dimension N | Detail AN | Detail BN |

- For star history data, you should generate a line chart using oss insight star history api, at least one chart.
- For stargazers company data, you use markdown table:
| Company | Stargazers Count |
|-----------------|------------------|
| Company A | 100 |
| Company B | 75 |
| Company C | 50 |
| Company D | 30 |
| Other/Unknown | 45 |

Provide insights and analysis based on the collected data. and trending insight.
Be sure to think big! Always give plan and explain what you do.

Let's begin

Plan:
Tools:
Action:
Output:
Deep Insight:

At the end, you should give use some surprise, you can search stackshare.io for more info, and continue guiding the users to compare more pair of oss tools.

Conversation starters​

PyTorch vs TensorFlow
TiDB vs Vitess
React vs Vue
Golang vs Rust-lang

Capabilities​

tip

Make all these three capabilities checked

  • Web Browsing
  • DALL-E Image Generation
  • Code Interpreter

Actions​

Action 1: Config API of next.ossinsight.io for drawing star historical chart​

Schema​
openapi: 3.0.0
info:
title: OSS Insight star history chart API
version: 1.0.0
description: OSS Insight star history chart API.
servers:
- url: https://next.ossinsight.io
paths:
/widgets/official/analyze-repo-stars-history/manifest.json:
get:
operationId: Star History
summary: Retrieve repository star history analysis
description: Fetches the star history and analysis for specified repositories.
parameters:
- name: repo_id
in: query
required: true
description: The ID of the primary repository.
schema:
type: integer
- name: vs_repo_id
in: query
required: true
description: The ID of the repository to compare with.
schema:
type: integer
responses:
'200':
description: Successful response with star history data.
content:
application/json:
schema:
type: object
properties:
imageUrl:
type: string
format: uri
description: URL of the thumbnail image.
title:
type: string
description: Title of the analysis.
description:
type: string
description: Description of the analysis.
'400':
description: Bad request - parameters missing or invalid.
'404':
description: Resource not found.
'500':
description: Internal server error.
Privacy policy​
https://www.pingcap.com/privacy-policy/

Action 2: Config api.github.com for fetching basic info of a repository​

As GitHub API use Personal Access Token and Bearer type of authentication for authentication, you should create one in: https://github.com/settings/tokens, it will be used later.

Schema:​
openapi: 3.0.0
info:
title: GitHub Repository Info API
description: An API for retrieving information about GitHub repositories.
version: 1.0.0
servers:
- url: https://api.github.com
description: GitHub API Server
paths:
/repos/{owner}/{repo}:
get:
summary: Get Repository Info
description: Retrieve information about a GitHub repository.
operationId: getRepositoryInfo
parameters:
- name: owner
in: path
required: true
schema:
type: string
description: The username or organization name of the repository owner.
- name: repo
in: path
required: true
schema:
type: string
description: The name of the repository.
responses:
'200':
description: Successful response with repository information.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
name:
type: string
full_name:
type: string
owner:
type: object
properties:
login:
type: string
id:
type: integer
avatar_url:
type: string
html_url:
type: string
private:
type: boolean
description:
type: string
fork:
type: boolean
url:
type: string
html_url:
type: string
language:
type: string
forks_count:
type: integer
stargazers_count:
type: integer
watchers_count:
type: integer
size:
type: integer
default_branch:
type: string
open_issues_count:
type: integer
topics:
type: array
items:
type: string
has_issues:
type: boolean
has_projects:
type: boolean
has_wiki:
type: boolean
has_pages:
type: boolean
has_downloads:
type: boolean
has_discussions:
type: boolean
archived:
type: boolean
disabled:
type: boolean
visibility:
type: string
pushed_at:
type: string
format: date-time
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
license:
type: object
properties:
key:
type: string
name:
type: string
spdx_id:
type: string
url:
type: string
Privacy policy​
https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement

Action 3: Stargazer's geo & company distribution provided by TiDB Serverless Data Service​

Schema URL to import​
https://us-west-2.prod.aws.tidbcloud.com/api/v1/dataservices/external/appexport/openapi?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBpZCI6ImRhdGFhcHAtUmZGS2NaRnUiLCJjcmVhdGVyIjoiaHVvaGFvQHBpbmdjYXAuY29tIiwic2VuY2UiOiJvcGVuYXBpIn0.xqu-ZCPHozisIHWTD5XM_5t2JWOGVpAejcQeWiTH_Mw

or you can use the following details schema.

Show detailed API schema

components:
schemas:
getGithubRepoStar_historyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
date:
type: string
stargazers:
type: string
required:
- date
- stargazers
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_companyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
company_name:
type: string
proportion:
type: string
stargazers:
type: string
required:
- company_name
- stargazers
- proportion
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_countryResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
country_code:
type: string
percentage:
type: string
stargazers:
type: string
required:
- country_code
- stargazers
- percentage
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_countResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
required:
- count
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_per_yearResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
date:
type: string
required:
- count
- date
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
securitySchemes:
basicAuth:
description: Enter your public key for the username field and private key for
the password field
scheme: basic
type: http
info:
description: API Interface for GPT PK Action, response GitHub repo metrics and hackernews
mentions count data
title: GPT-PK
version: 1.0.0
openapi: 3.0.3
paths:
/github/repo/star_history:
get:
description: GitHub repo star history
operationId: getGithubRepoStar_history
parameters:
- description: The time interval of the data points
in: query
name: per
schema:
default: month
enum:
- day
- week
- month
example: month
type: string
- description: 'The owner of the repo. For example: `pingcap`'
in: query
name: owner
required: true
schema:
default: ""
example: ""
type: string
- description: 'The name of the repo. For example: `tidb`'
in: query
name: repo
required: true
schema:
default: ""
example: ""
type: string
- description: The start date of the range
in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- description: The end date of the range
in: query
name: to
schema:
default: "2099-12-31"
example: "2099-12-31"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Internal server error
summary: /github/repo/star_history
tags:
- Default
/github/repo/stargazers_company:
get:
operationId: getGithubRepoStargazers_company
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Internal server error
summary: /github/repo/stargazers_company
tags:
- Default
/github/repo/stargazers_country:
get:
description: github repo stargazers country
operationId: getGithubRepoStargazers_country
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
- in: query
name: exclude_unknown
schema:
default: "true"
example: "true"
type: boolean
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Internal server error
summary: /github/repo/stargazers_country
tags:
- Default
/hackernews/mentions_count:
get:
description: Total counts for keyword in hackernews
operationId: getHackernewsMentions_count
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Internal server error
summary: /hackernews/mentions_count
tags:
- Default
/hackernews/mentions_per_year:
get:
description: keyword mentions per year in hackernews
operationId: getHackernewsMentions_per_year
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Internal server error
summary: /hackernews/mentions_per_year
tags:
- Default
security:
- basicAuth: []
servers:
- url: https://us-west-2.data.tidbcloud.com/api/v1beta/app/dataapp-RfFKcZFu/endpoint

API Key​

When config this action, you should input the following encoded api key in Authentication -> API Key -> Auth Type(Basic)

QzBTQ0VRNzA6MmJjNjAwYzUtODA0Mi00Yzg4LTkxNTgtMTNiNzdkMDY0OGM5
Note!
  • Make sure using this key for GPT's learning, thanks~
  • We will revoke this key after a period of time
Privacy policy​
https://www.pingcap.com/privacy-policy/
- - + + \ No newline at end of file diff --git a/blog/how-to-learn-sql-easily-by-visualizing-with-chatgpt/index.html b/blog/how-to-learn-sql-easily-by-visualizing-with-chatgpt/index.html index ea007226bab..13ee7a31030 100644 --- a/blog/how-to-learn-sql-easily-by-visualizing-with-chatgpt/index.html +++ b/blog/how-to-learn-sql-easily-by-visualizing-with-chatgpt/index.html @@ -21,14 +21,14 @@ - - + +

How to Learn SQL Easily by Visualizing with ChatGPT

Β· 2 min read
PingCAP
ChatGPT

SQL is a powerful language for managing and analyzing data, but it can be difficult to learn for beginners. That's where ChatGPT comes in.

ChatGPT is a large language model trained by OpenAI that can help you learn SQL easily by visualizing the key information in a SQL query. In this blog post, we'll show you how to use ChatGPT to visualize SQL queries using pretty ASCII art diagrams. Let's start with an example. Suppose we want to find the top 10 most popular AI projects on GitHub in the last month. Here's the SQL query that does that:

SELECT
repo_name,
COUNT(*) AS stars
FROM
github_events
WHERE
type = 'WatchEvent'
AND created_at > DATE_SUB(NOW(), INTERVAL 1 MONTH)
AND repo_name LIKE '%AI%'
GROUP BY
repo_name
ORDER BY
stars DESC
LIMIT
10

Now, let's use ChatGPT to visualize this SQL query using pretty ASCII art diagrams. Here's the diagram:

          +-------------------+            
| What to Retrieve? | top 10
+-------------------+
| SELECT
| repo_name,
| COUNT(*) AS stars
v
+-------------------+
| From Where? | GitHub
+-------------------+
| FROM
| github_events
v
+-------------------+
| Filter By: | last month, AI projects, most popular
+-------------------+
| WHERE
| type = 'WatchEvent'
| AND created_at > DATE_SUB(NOW(), INTERVAL 1 MONTH)
| AND repo_name LIKE '%AI%'
v
+-------------------+
| Group By |
+-------------------+
| GROUP BY
| repo_name
v
+-------------------+
| Order By | most popular
+-------------------+
| ORDER BY
| stars DESC
v
+-------------------+
| Limit To 10 | top 10
+-------------------+
| LIMIT
| 10
v

This diagram visually shows the flow of the SQL query, from selecting what to retrieve, to filtering, grouping, ordering, and limiting the results. The arrows make it easy to see the relationship between the key information in the question and the corresponding SQL statements.

By using ChatGPT to visualize SQL queries with pretty ASCII art diagrams, you can learn SQL easily and quickly. The diagrams help you understand the structure of the SQL query, and make it easy to see how the various statements are related. With practice, you'll be able to write your own SQL queries in no time.

In conclusion, if you want to learn SQL easily, try using ChatGPT to visualize SQL queries with pretty ASCII art diagrams. It's a fun and effective way to learn SQL and improve your data management skills.

- - + + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index b4b157b7a4e..708f0a3b212 100644 --- a/blog/index.html +++ b/blog/index.html @@ -21,15 +21,15 @@ - - + +

Β· 18 min read
sykp241095
ChatGPT

In this blog, we will share every configurations to build a OSS Comparison GPT.

GPTs Configurations​

Name​

Open Source Benchmark

Description​

Compare open-source softwares

Instructions​

You are a data analysis expert. 
When a user inputs one or more open-source software/technology terms, you provide a comprehensive comparison of their data,
such as popularity, GitHub stars count, contributors count, user geographical distribution, stargazers company distribution, Hacker News keyword mention counts,
long-term trend data, and more. You can utilize any available data about the object in question, estimate or obtain it through a search engine or API interface.
Currently, you have the following APIs at your disposal:

1. GitHub API for getting repo basic info
2. OSS Insight API for star history and stargazer's distribution
3. Hackernews mentions per_year API
4. OSS Insight star history chart API (show me with a <img> label)
5. OSS Insight API for stargazers company distribution

Here's a step-by-step process:

Identify which API to use based on the data you need.
- you goal is to think more metrics according exist API.
- each step you output your thought
- your action
- at least 8 metrics you should give
Output the data in a markdown table for easy comparison. add your known metrics for more insight. at least 8 metrics.

| Dimension | A | B |
|----------------|-------------|-------------|
| Dimension 1 | Detail A1 | Detail B1 |
| Dimension 2 | Detail A2 | Detail B2 |
| Dimension 3 | Detail A3 | Detail B3 |
| ... | ... | ... |
| Dimension N | Detail AN | Detail BN |

- For star history data, you should generate a line chart using oss insight star history api, at least one chart.
- For stargazers company data, you use markdown table:
| Company | Stargazers Count |
|-----------------|------------------|
| Company A | 100 |
| Company B | 75 |
| Company C | 50 |
| Company D | 30 |
| Other/Unknown | 45 |

Provide insights and analysis based on the collected data. and trending insight.
Be sure to think big! Always give plan and explain what you do.

Let's begin

Plan:
Tools:
Action:
Output:
Deep Insight:

At the end, you should give use some surprise, you can search stackshare.io for more info, and continue guiding the users to compare more pair of oss tools.

Conversation starters​

PyTorch vs TensorFlow
TiDB vs Vitess
React vs Vue
Golang vs Rust-lang

Capabilities​

tip

Make all these three capabilities checked

  • Web Browsing
  • DALL-E Image Generation
  • Code Interpreter

Actions​

Action 1: Config API of next.ossinsight.io for drawing star historical chart​

Schema​
openapi: 3.0.0
info:
title: OSS Insight star history chart API
version: 1.0.0
description: OSS Insight star history chart API.
servers:
- url: https://next.ossinsight.io
paths:
/widgets/official/analyze-repo-stars-history/manifest.json:
get:
operationId: Star History
summary: Retrieve repository star history analysis
description: Fetches the star history and analysis for specified repositories.
parameters:
- name: repo_id
in: query
required: true
description: The ID of the primary repository.
schema:
type: integer
- name: vs_repo_id
in: query
required: true
description: The ID of the repository to compare with.
schema:
type: integer
responses:
'200':
description: Successful response with star history data.
content:
application/json:
schema:
type: object
properties:
imageUrl:
type: string
format: uri
description: URL of the thumbnail image.
title:
type: string
description: Title of the analysis.
description:
type: string
description: Description of the analysis.
'400':
description: Bad request - parameters missing or invalid.
'404':
description: Resource not found.
'500':
description: Internal server error.
Privacy policy​
https://www.pingcap.com/privacy-policy/

Action 2: Config api.github.com for fetching basic info of a repository​

As GitHub API use Personal Access Token and Bearer type of authentication for authentication, you should create one in: https://github.com/settings/tokens, it will be used later.

Schema:​
openapi: 3.0.0
info:
title: GitHub Repository Info API
description: An API for retrieving information about GitHub repositories.
version: 1.0.0
servers:
- url: https://api.github.com
description: GitHub API Server
paths:
/repos/{owner}/{repo}:
get:
summary: Get Repository Info
description: Retrieve information about a GitHub repository.
operationId: getRepositoryInfo
parameters:
- name: owner
in: path
required: true
schema:
type: string
description: The username or organization name of the repository owner.
- name: repo
in: path
required: true
schema:
type: string
description: The name of the repository.
responses:
'200':
description: Successful response with repository information.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
name:
type: string
full_name:
type: string
owner:
type: object
properties:
login:
type: string
id:
type: integer
avatar_url:
type: string
html_url:
type: string
private:
type: boolean
description:
type: string
fork:
type: boolean
url:
type: string
html_url:
type: string
language:
type: string
forks_count:
type: integer
stargazers_count:
type: integer
watchers_count:
type: integer
size:
type: integer
default_branch:
type: string
open_issues_count:
type: integer
topics:
type: array
items:
type: string
has_issues:
type: boolean
has_projects:
type: boolean
has_wiki:
type: boolean
has_pages:
type: boolean
has_downloads:
type: boolean
has_discussions:
type: boolean
archived:
type: boolean
disabled:
type: boolean
visibility:
type: string
pushed_at:
type: string
format: date-time
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
license:
type: object
properties:
key:
type: string
name:
type: string
spdx_id:
type: string
url:
type: string
Privacy policy​
https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement

Action 3: Stargazer's geo & company distribution provided by TiDB Serverless Data Service​

Schema URL to import​
https://us-west-2.prod.aws.tidbcloud.com/api/v1/dataservices/external/appexport/openapi?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBpZCI6ImRhdGFhcHAtUmZGS2NaRnUiLCJjcmVhdGVyIjoiaHVvaGFvQHBpbmdjYXAuY29tIiwic2VuY2UiOiJvcGVuYXBpIn0.xqu-ZCPHozisIHWTD5XM_5t2JWOGVpAejcQeWiTH_Mw

or you can use the following details schema.

Show detailed API schema

components:
schemas:
getGithubRepoStar_historyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
date:
type: string
stargazers:
type: string
required:
- date
- stargazers
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_companyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
company_name:
type: string
proportion:
type: string
stargazers:
type: string
required:
- company_name
- stargazers
- proportion
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_countryResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
country_code:
type: string
percentage:
type: string
stargazers:
type: string
required:
- country_code
- stargazers
- percentage
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_countResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
required:
- count
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_per_yearResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
date:
type: string
required:
- count
- date
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
securitySchemes:
basicAuth:
description: Enter your public key for the username field and private key for
the password field
scheme: basic
type: http
info:
description: API Interface for GPT PK Action, response GitHub repo metrics and hackernews
mentions count data
title: GPT-PK
version: 1.0.0
openapi: 3.0.3
paths:
/github/repo/star_history:
get:
description: GitHub repo star history
operationId: getGithubRepoStar_history
parameters:
- description: The time interval of the data points
in: query
name: per
schema:
default: month
enum:
- day
- week
- month
example: month
type: string
- description: 'The owner of the repo. For example: `pingcap`'
in: query
name: owner
required: true
schema:
default: ""
example: ""
type: string
- description: 'The name of the repo. For example: `tidb`'
in: query
name: repo
required: true
schema:
default: ""
example: ""
type: string
- description: The start date of the range
in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- description: The end date of the range
in: query
name: to
schema:
default: "2099-12-31"
example: "2099-12-31"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Internal server error
summary: /github/repo/star_history
tags:
- Default
/github/repo/stargazers_company:
get:
operationId: getGithubRepoStargazers_company
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Internal server error
summary: /github/repo/stargazers_company
tags:
- Default
/github/repo/stargazers_country:
get:
description: github repo stargazers country
operationId: getGithubRepoStargazers_country
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
- in: query
name: exclude_unknown
schema:
default: "true"
example: "true"
type: boolean
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Internal server error
summary: /github/repo/stargazers_country
tags:
- Default
/hackernews/mentions_count:
get:
description: Total counts for keyword in hackernews
operationId: getHackernewsMentions_count
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Internal server error
summary: /hackernews/mentions_count
tags:
- Default
/hackernews/mentions_per_year:
get:
description: keyword mentions per year in hackernews
operationId: getHackernewsMentions_per_year
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Internal server error
summary: /hackernews/mentions_per_year
tags:
- Default
security:
- basicAuth: []
servers:
- url: https://us-west-2.data.tidbcloud.com/api/v1beta/app/dataapp-RfFKcZFu/endpoint

API Key​

When config this action, you should input the following encoded api key in Authentication -> API Key -> Auth Type(Basic)

QzBTQ0VRNzA6MmJjNjAwYzUtODA0Mi00Yzg4LTkxNTgtMTNiNzdkMDY0OGM5
Note!
  • Make sure using this key for GPT's learning, thanks~
  • We will revoke this key after a period of time
Privacy policy​
https://www.pingcap.com/privacy-policy/

Β· 2 min read
PingCAP
ChatGPT

SQL is a powerful language for managing and analyzing data, but it can be difficult to learn for beginners. That's where ChatGPT comes in.

ChatGPT is a large language model trained by OpenAI that can help you learn SQL easily by visualizing the key information in a SQL query. In this blog post, we'll show you how to use ChatGPT to visualize SQL queries using pretty ASCII art diagrams. Let's start with an example. Suppose we want to find the top 10 most popular AI projects on GitHub in the last month. Here's the SQL query that does that:

SELECT
repo_name,
COUNT(*) AS stars
FROM
github_events
WHERE
type = 'WatchEvent'
AND created_at > DATE_SUB(NOW(), INTERVAL 1 MONTH)
AND repo_name LIKE '%AI%'
GROUP BY
repo_name
ORDER BY
stars DESC
LIMIT
10

Now, let's use ChatGPT to visualize this SQL query using pretty ASCII art diagrams. Here's the diagram:

          +-------------------+            
| What to Retrieve? | top 10
+-------------------+
| SELECT
| repo_name,
| COUNT(*) AS stars
v
+-------------------+
| From Where? | GitHub
+-------------------+
| FROM
| github_events
v
+-------------------+
| Filter By: | last month, AI projects, most popular
+-------------------+
| WHERE
| type = 'WatchEvent'
| AND created_at > DATE_SUB(NOW(), INTERVAL 1 MONTH)
| AND repo_name LIKE '%AI%'
v
+-------------------+
| Group By |
+-------------------+
| GROUP BY
| repo_name
v
+-------------------+
| Order By | most popular
+-------------------+
| ORDER BY
| stars DESC
v
+-------------------+
| Limit To 10 | top 10
+-------------------+
| LIMIT
| 10
v

This diagram visually shows the flow of the SQL query, from selecting what to retrieve, to filtering, grouping, ordering, and limiting the results. The arrows make it easy to see the relationship between the key information in the question and the corresponding SQL statements.

By using ChatGPT to visualize SQL queries with pretty ASCII art diagrams, you can learn SQL easily and quickly. The diagrams help you understand the structure of the SQL query, and make it easy to see how the various statements are related. With practice, you'll be able to write your own SQL queries in no time.

In conclusion, if you want to learn SQL easily, try using ChatGPT to visualize SQL queries with pretty ASCII art diagrams. It's a fun and effective way to learn SQL and improve your data management skills.

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

Β· One min read
PingCAP
ChatGPT

This blog is written with help of ChatGPT.


To get insight of your own dataset without writing sql is easy, follow these steps:

  1. Sign up for a TiDB Cloud account at https://tidbcloud.com/ using your email, Google account, or GitHub account.

  2. Create a free Serverless Tier cluster in the TiDB Cloud web console.

  3. In the TiDB Cloud web console, click the "Import" button and follow the prompts to load a CSV file into your cluster from a local file or from Amazon S3.

    Import Data

  4. Use the web console's SQL editor(Chat2Query) to get insights from your data. But no worry, you don't need to write SQL, you could ask questions about your data in natural language.

    The magic is typing -- your question and press Enter, here is an example:

Β· 11 min read
Mini256
Caitin Chen

TL;DR:

This post tells how a website on a distributed database reduced online serving latency from 1.11 s to 417.7 ms, and then to 123.6 ms. We found that some lessons learned on MySQL could be applied throughout the optimization process. But when we optimize a distributed database, we need to consider more.

The OSS Insight website displays the data changes of GitHub events in real time. It's powered by TiDB Cloud, a MySQL-compatible distributed SQL database for elastic scale and real-time analytics.

Recently, to save costs, we tried to use lower-specification machines without affecting query efficiency and user experience. But our website and query response slowed down.


The repository analysis page was loading

The repository analysis page was loading, loading, and loading

How could we solve these problems on a distributed database? Could we use the methodology we learned on MySQL?

Analyzing the SQL execution plan​

To identify slow SQL statements, we used TiDB Cloud's Diagnosis page to sort SQL queries by their average latency.

For example, after the API server received a request, it executed the following SQL statement to obtain the number of issues in the vscode repository:

SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

However, if the open source repository is large, this query may take several seconds or more to execute.

Using EXPLAIN ANALYZE to troubleshoot query performance problems​

In MySQL, when we troubleshoot query performance problems, we usually use the EXPLAIN ANALYZE <sql> statement to view the SQL statement's execution plan. We can use the execution plan to locate the problem. The same works for TiDB.

We executed the EXPLAIN statement:

EXPLAIN ANALYZE SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

The result showed that the query took 1.11 seconds to execute.


The query result

The query result

You can see that TiDB's EXPLAIN ANALYZE statement execution result was completely different from MySQL's. TiDB's execution plan gave us a clearer understanding of how this SQL statement was executed.

The execution plan shows:

  • This SQL statement was split into several subtasks. Some were on the root node, and others were on the tikv node.
  • The query fetched data from the partition:issue_event partition table.
  • This query did a range scan through the index index_github_events_on_repo_id(repo_id). This let the query narrow down the data scan quickly. This process only took 59 ms. It was the sum of the execution times of multiple concurrent tasks.
  • Besides IndexRangeScan, the query also used TableRowIDScan. This scan took 4.69 s, the sum of execution times for multiple concurrent subtasks.

From the execution times above, we determined that the query performance bottleneck was in the TableRowIDScan step.

We reran the EXPLAIN ANALYZE statement and found that the query was faster the second time. Why?

Why did TableRowIDScan take so long?​

To find the reason why TableRowIDScan took so long, we need basic knowledge of TiDB's underlying storage.

In TiDB, a table's data entries and indexes are stored on TiKV nodes in key-value pairs.

  • For an index, the key is the combination of the index value and the row_id (for a non-clustered index) or the primary key (for a clustered index). The row_id or primary key indicates where the data is stored.
  • For a data entry, the key is the combination of the table ID and the row_id or primary key. The value part is the combination of this row of data.

This graph shows how IndexLookup is executed in the execution plan:


The logical structure

This is the logical structure, not the physical storage structure.

In the query above, TiDB uses the query condition repo_id=41881900 to filter out all row numbers row_id related to the repository in the secondary index index_github_events_on_repo_id. The query needs the number column data, but the secondary index doesn't provide it. Therefore, TiDB must execute IndexLookup to find the corresponding row in the table based on the obtained row_id (the TableRowIDScan step).

The rows are probably scattered in different data blocks and stored on the hard disk. This causes TiDB to perform a large number of I/O operations to read data from different data blocks or even different machine nodes.

Why was EXPLAIN ANALYZE faster the second time?​

In EXPLAIN ANALYZE's execution result, we saw that the "execution info" column corresponding to the TableRowIDScan step contained this information:

block: {cache_hit_count: 2755559, read_count: 179510, read_byte: 4.07 GB}

We thought this had something to do with TiKV. TiKV read a very large number of data blocks from the disk. Because the data blocks read from the disk were cached in memory in the first execution, 2.75 million data blocks could be read directly from memory instead of being retrieved from the hard disk. This made the TableRowIDScan step much faster, and the query was faster overall.

However, we believed that user queries were random. For example, a user might look up data from a vscode repository and then go to a kubernetes repository. TiKV's memory couldn't cache all the data blocks in all the drives. Therefore, this did not solve our problem, but it reminded us that when we analyze SQL execution efficiency, we need to exclude cache effects.

Using a covering index to avoid executing TableRowIDScan​

Could we avoid executing TableRowIDScan in IndexLookup?

In MySQL, a covering index prevents the database from index lookup after index filtering. We wanted to apply this to OSS Insight. In our TiDB database, we tried to create a composite index to achieve index coverage.

When we created a composite index with multiple columns, we needed to pay attention to the column order. Our goals were to allow a composite index to be used by as many queries as possible, to help these queries narrow the scope of data scans as quickly as possible, and to provide as many fields as possible in the query. When we created a composite index we followed this order:

  1. Columns that had high differentiation and could be used as equivalence conditions for the WHERE statement, like repo_id
  2. Columns that didn't have high differentiation but could be used as equivalence conditions for the WHERE statement, like type and action
  3. Columns that could be used as range query conditions for the WHERE statement, like created_at
  4. Redundant columns that were not used as filter conditions but were used in the query, such as number and push_size

We used the CREATE INDEX statement to create a composite index in the database:

CREATE INDEX index_github_events_on_repo_id_type_number ON github_events(repo_id, type, number);

When we created the index and ran the SQL statement again, the query speed was significantly faster. We viewed the execution plan through EXPLAIN ANALYZE and found that the execution plan became simpler. The IndexLookup and TableRowIDScan steps were gone. The query took only 417.7 ms.


The result of the EXPLAIN query

The result of the EXPLAIN query. This query cost 417.7 ms

So we knew that our query could get all the data it needed by doing an IndexRangeScan on the new index. This composite index included the number field, so TiDB did not need to perform IndexLookup to get data from the table. This reduced a lot of I/O operations.


`IndexRangeScan` in the non-clustered table

IndexRangeScan in the non-clustered table

Pushing down computing to further reduce query latency​

For a query that needed to obtain 270,000 rows of data, 417.7 ms was quite a short execution time. But could we improve the time even more?

We thought this relied on TiDB's architecture that separates computing and storage layers. This is different from MySQL.

In TiDB:

  • The tidb-server node computes data. It corresponds to root in the execution plan.
  • The tikv-server node stores the data. It corresponds to cop[tikv] in the execution plan.

Generally, an SQL statement is split into multiple steps to execute with the cooperation of computing and storage nodes.

When we executed the SQL statement in this article, TiDB obtained the data of the github_events table from tikv-server and performed the aggregate calculation of the COUNT function on tidb-server.

SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

The execution plan indicated that when TiDB was performing IndexReader, tidb-server needed to read 270,000 rows of data from tikv-server through the network. This was time-consuming.


`tidb-server` read 270,000 rows of data from `tikv-server`

tidb-server read 270,000 rows of data from tikv-server

How could we avoid such a large network transmission? Although the query needed to obtain a large amount of data, the final calculation result was only a number. Could we complete the COUNT aggregation calculation on tikv-server and return the result only to tidb-server?

TiDB had implemented this idea through the coprocessor on tikv-server. This optimization process is called computing pushdown.

The execution plan indicated that our SQL query did not do this. Why? We checked the TiDB documentation and learned that:

Usually, aggregate functions with the DISTINCT option are executed in the TiDB layer in a single-threaded execution model.

This meant that our SQL statement couldn't use computing pushdown.

SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

Therefore, we removed the DISTINCT keyword.

For the github_events table, an issue only generated an event with the IssuesEvent type and opened action. We could get the total number of unique issues by adding the condition of action = 'opened'. This way, we didn't need to use the DISTINCT keyword for deduplication.

SELECT
COUNT(number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent'
AND action = 'opened';

The composite index we created lacked the action column. This caused the query index coverage to fail. So we created a new composite index:

CREATE INDEX index_github_events_on_repo_id_type_action_number ON github_events(repo_id, type, action, number);

After we created the index, we checked the execution plan of the modified SQL statement through the EXPLAIN ANALYZE statement. We found that:

  • Because we added a new filter action='opened', the number of rows to scan had decreased from 270,000 to 140,000.
  • tikv-server executed the StreamAgg operator, which was the aggregate calculation of the COUNT function. This indicated that the calculation had been pushed down to the TiKV coprocessor for execution.
  • tidb-server only needed to obtain two rows of data from tikv-server through the network. This greatly reduced the amount of data transmitted.
  • The query only took 123.6 ms.
+-------------------------+---------+---------+-----------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------+------+
| id | estRows | actRows | task | access object | execution info | operator info | memory | disk |
+-------------------------+---------+---------+-----------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------+------+
| StreamAgg_28 | 1.00 | 1 | root | | time:123.6ms, loops:2 | funcs:count(Column#43)->Column#34 | 388 Bytes | N/A |
| └─IndexReader_29 | 1.00 | 2 | root | partition:issues_event | time:123.6ms, loops:2, cop_task: {num: 2, max: 123.5ms, min: 1.5ms, avg: 62.5ms, p95: 123.5ms, max_proc_keys: 131360, p95_proc_keys: 131360, tot_proc: 115ms, tot_wait: 1ms, rpc_num: 2, rpc_time: 125ms, copr_cache_hit_ratio: 0.50, distsql_concurrency: 15} | index:StreamAgg_11 | 590 Bytes | N/A |
| └─StreamAgg_11 | 1.00 | 2 | cop[tikv] | | tikv_task:{proc max:116ms, min:8ms, avg: 62ms, p80:116ms, p95:116ms, iters:139, tasks:2}, scan_detail: {total_process_keys: 131360, total_process_keys_size: 23603556, total_keys: 131564, get_snapshot_time: 1ms, rocksdb: {delete_skipped_count: 320, key_skipped_count: 131883, block: {cache_hit_count: 307, read_count: 1, read_byte: 63.9 KB, read_time: 60.2Β΅s}}} | funcs:count(gharchive_dev.github_events.number)->Column#43 | N/A | N/A |
| └─IndexRangeScan_15 | 7.00 | 141179 | cop[tikv] | table:github_events, index:index_ge_on_repo_id_type_action_created_at_number(repo_id, type, action, created_at, number) | tikv_task:{proc max:116ms, min:8ms, avg: 62ms, p80:116ms, p95:116ms, iters:139, tasks:2} | range:[41881900 "IssuesEvent" "opened",41881900 "IssuesEvent" "opened"], keep order:false | N/A | N/A |
+-------------------------+---------+---------+-----------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------+------+

Applying what we learned to other queries​

Through our analysis and optimizations, the query latency was significantly reduced:

1.11 s β†’ 417.7 ms β†’ 123.6 ms

We applied what we learned to other queries and created the following composite indexes in the github_events table:

index_ge_on_repo_id_type_action_pr_merged_created_at_add_del

index_ge_on_repo_id_type_action_created_at_number_pdsize_psize

index_ge_on_repo_id_type_action_created_at_actor_login

index_ge_on_creator_id_type_action_merged_created_at_add_del

index_ge_on_actor_id_type_action_created_at_repo_id_commits

These composite indexes covered more than 20 analytical queries in repository analysis and personal analysis pages on the OSS Insight website. This improved our website's overall loading speed.

Some lessons we learned on MySQL can be applied throughout the optimization process. But we need to consider more when we optimize query performance in a distributed database. We also recommend you read Performance Tuning in the TiDB documentation. This will give you a more professional and comprehensive guide to performance optimization.

References​

Β· 10 min read
Cheese Wong
Jagger
hooopo
Vita Lu
Mia Zhou
Caitin Chen

We analyzed more than 5,000,000,000 rows of GitHub event data and got the results here. In this report, you'll get interesting findings about open source software on GitHub in 2022, including:

Top languages in the open source world over the past four years​

This chart ranks programming languages yearly from 2019 to 2022 based on the ratio of new repositories using these languages to all new repositories.


top-programming-languages
Top programming languages

Insights:

  • Python surpassed Java and moved to #3 in 2021.
  • TypeScript rose from #10 to #6, and SCSS rose from #39 to #19. The rise of SCSS shows that open source projects that value front-end expressiveness are gradually gaining popularity.
  • The two languages Ruby and R dropped a lot in ranking over the years.

Rankings of back-end programming languages​

The programming languages used in a pull request reflect which languages developers used. To find out the most popular back-end programming languages, we queried the distribution of programming languages by new pull requests from 2019 to 2022 and took the top 10 for each year.


top-back-end-programming-languages
Top back-end programming languages

The chart data indicates:

  • Python and Java rank #1 and #2 respectively. In 2021, Go overtook Ruby to rank #3 in 2021.
  • Rust has been trending upward for several years, ranking #9 in 2022.

Geographic distribution of developer behavior​

We queried the number of various events that occurred throughout the world from January 1 to September 30, 2022 and identified the top 10 countries by the number of events triggered by developers in these countries. The chart displays the proportion of each event type by country or region.


geographic-distribution-of-developer-behavior
Geographic distribution of developer behavior

The chart shows that:

  • The events triggered in the top 10 countries account for about 23.27% of all GitHub events. However, the number of developers from these countries is only 10%.
  • US developers are most likely to review code, with a PullRequestReviewEvent share of 6.15%.
  • Korean developers prefer pushing directly to repositories (PushEvent).
  • Japanese developers are most likely to submit code via pull requests, with a PullRequestEvent share of 10%.
  • German developers like to open issues and comments, with IssueEvent and CommentEvent accounting for 4.18% and 12.66% respectively.
  • Chinese developers like to star repositories, with 17.23% for WatchEvent and 2.7% for ForkEvent.

Notes:

  • In 2022, 17,062,081 developers had behavioral events, and 2,923,523 of them have the Location field, so the sampling rate is 17.13%
  • GitHub identifies 15 types of events. We only show commonly used types. Comment Event includes CommitCommentEvent, IssueCommentEvent, and PullRequestReviewCommentEvent. Others includes MemberEvent, CreateEvent, ReleaseEvent, GollumEvent, and PublicEvent.

Developer behavior distribution on weekdays and weekends​

We queried the distribution of each event type over the seven days of the week.


developer-behavior-distribution-on-weekdays-and-weekends
Developer behavior distribution on weekdays and weekends

Insights:

  • Developers are most active on weekdays, with 77.73% of events occurring on weekdays.

The distribution of specific events​

developer-behavior-distribution-from-monday-to-sunday
Developer behavior distribution from Monday to Sunday

Insights:

  • Pull Request Event, Pull Request Review Event, and Issues Event all have the highest percentage on Tuesdays, while the lowest percentage is on the weekends.
  • The amount of Push Event, Watch Event, and Fork Event activities are similar on weekdays and weekends, while the Pull Request Review Event is the most different. Watch Event and Fork Event are more personal behaviors, Pull Request Review Events are more work behaviors, and Push Events are used more in personal projects.

Each year, technology introduces new buzz words. Can we gain insight into technical trends through the open source repositories behind the hot words? We investigated five technical areas: Low Code, Web3, GitHub Actions, Database, and AI.

We queried the number of open source repositories associated with each technical area, as well as the percentage of active repositories in 2022.


activity-levels-of-popular-topics
Activity levels of popular topics

This figure shows that open source repositories in the Low Code topic are the most active, with 76.3% being active in 2022, followed by Web3 with 63.85%.

We queried the following items for each technical area from 2015 to 2022:

  • The annual increment of repositories
  • The annual increment of collaborative events
  • The number of developers participating in collaborative events
  • The annual increment of stars

Then, we calculated the growth rate for each year which can reflect new entrants, developer engagement in this technical field, and the industry's interest in this area. For 2022, we compare its first nine months with the first nine months of 2021.


low-code-repositories
Low code repositories

We can see that 2020 is the peak period of project development, with a 313.43% increase in new repositories and a 157.06% increase in developer collaborative events. The industry's interest increased most significantly in 2021, reaching 184.82%. In 2022, the year-on-year growth data shows that the number of new repositories decreased (-26.21%), but developer engagement and industry interest are still rising.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


web3-repositories
Web3 repositories

Whether it is the creation of new repositories, developers, or the interest of the industry, the Web3 ecosystem has grown rapidly in recent years, and the growth rate of new repositories peaked at 322.65% in 2021.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


github-actions-repositories
GitHub Actions repositories

The annual increase of GitHub Actions repositories has been declining, but developer engagement and the industry's interest are still increasing slightly.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


database-repositories
Database repositories

As an infrastructure project, the Database project's threshold is high. Compared with projects in other fields, a database project has a stable growth rate.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


ai-repositories
AI repositories

After two years of high growth in 2016 and 2017, open source projects in AI have been growing gradually slowly.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories

The number of stars is the most visible indication of the popularity of open source projects. We looked at the 50 projects that received the most stars from January 1 to September 30, 2022. We found that:


most-popular-repositories-2022
The most popular repositories in 2022

* Time range: 2022.01.01-2022.09.30, excluding bot events

The most active repositories over the past four years​

Here we looked up the top 20 active repositories per year from 2019 to 2022 and counted the total number of listings per repository. The activity of the repository is ranked according to the number of developers participating in collaborative events.

Repository NameCount
microsoft/vscode4
flutter/flutter4
MicrosoftDocs/azure-docs4
firstcontributions/first-contributions4
Facebook/react-native4
pytorch/pytorch4
microsoft/TypeScript4
tensorflow/tensorflow3
kubernetes/kubernetes3
DefinitelyTyped/DefinitelyTyped3
golang/go3
google/it-cert-automation-practice3
home-assistant/core3
microsoft/PowerToys3
microsoft/WSL3

Insights:

  • Microsoft has the most repositories on the list, with five.

  • tensorflow/tensorflow and kubernetes/kubernetes both dropped out of the top 20 after three consecutive years on the list (2019 to 2021).

  • New to the 2022 list are archway-network/testnets, element-fi/elf-council-frontend, solana-labs/token-list, education/GitHubGraduation-2022, taozhiyu/TyProAction, NixOS/nixpkgs, rust-lang/rust.

  • Time range: 2022.01.01-2022.09.30, excluding bot events

Who gave the most stars in 2022​

We queried the developers who gave the most stars in 2022, took the top 20, and filtered out accounts of suspected bots. If a developer's number of star events divided by the number of starred repositories is equal to or greater than 2, we suspect this user to be a bot.


developers-most-stars
Developers who gave the most stars

We found that until September 30, 2022, the developer who starred the most repositories had starred a total of 37,228 repositories, an average of 136 repositories per day.

* Time range: 2022.01.01-2022.09.30, excluding bot events

The most active developers since 2011​

We queried the top 20 most active developers per year since 2011. This time we didn't filter out bot events.


most-active-developers
The most active developers

We found that the percentage of bots is becoming larger and larger. Bots started to overtake humans in 2013 and have reached over 95% in 2022.

Appendix​

Term description​

  • GitHub events: GitHub events are triggered by user actions, like starring a repository or pushing code.
  • Time range: In this report, the data collection range of 2022 is from January 1, 2022 to September 30, 2022. When comparing data of 2022 with another year, we use year-on-year analysis.
  • Bot events: Bot-triggered events account for a growing percentage of GitHub events. However, these events are not the focus of this report. We filtered out most of the bot-initiated events by matching regular expressions.

How we classify technical fields by topics​

We do exact matching and fuzzy matching based on the repository topic. Exact matching means that the repository topics have a topic that exactly matches the word, and fuzzy matching means that the repository topics have a topic that contains the word.

TopicExact matchingFuzzy matching
GitHub Actionsactionsgithub-action, gh-action
Low Codelow-code, lowcode, nocode, no-code
Web3web3
Databasedbdatabase, databases
nosql, newsql, sql
mongodb,neo4j
AIai, aiops, aiotartificial-intelligence, machine-intelligence
computer-vision, image-processing, opencv, computervision, imageprocessing
voice-recognition, speech-recognition, voicerecognition, speechrecognition, speech-processing
machinelearning, machine-learning
deeplearning, deep-learning
transferlearning, transfer-learning
mlops
text-to-speech, tts, speech-synthesis, voice-synthesis
robot, robotics
sentiment-analysis
natural-language-processing, nlp
language-model, text-classification, question-answering, knowledge-graph, knowledge-base
gan, gans, generative-adversarial-network, generative-adversarial-networks
neural-network, neuralnetwork, neuralnetworks, neural-network, dnn
tensorflow
PyTorch
huggingface
transformers
seq2seq, sequence-to-sequence
data-analysis, data-science
object-detection, objectdetection
data-augmentation
classification
action-recognition

Β· 5 min read
Mia Zhou
Wink Yao
Caitin Chen

The OSS Insight website displays the data changes of GitHub events in real time. GitHub events are activities triggered by user actions on GitHub, for example, commenting and forking a repository. In nearly seven weeks, GitHub events increased by about 150 million, from 4.7 billion to 4.85 billion. GitHub events are booming!

This post dives deeply into GitHub event trending, why GitHub events are surging, and whether GitHub's architecture can handle the increasing load.

Historical data analysis​

The OSS Insight database includes all the GitHub events since 2011. When we plot the number of events by year, we can see that since 2018 they have been increasing rapidly.


GitHub event trending

GitHub event trending

The figure below shows how long it takes to grow each billion events in GitHub.


The time to reach a billion GitHub events

The time to reach a billion GitHub events

It's taking less and less for GitHub to generate 1 billion events. It took more than 6 years for the first billion events and only 13 months for the last billion!

The secret behind the exponential growth of GitHub events​

GitHub Actions was released in October 2018. Since August 2019, it has supported continuous integration and continuous delivery (CI/CD), and it has been free for open source projects. Therefore, projects hosted on GitHub can automate their own development workflows, and a large number of automation-related bot applications have appeared on GitHub Marketplace. Could GitHub events' data growth be related to these?

To find the answer, we divided the events into data from humans and data from bots and plotted them with the following histogram. The blue columns represent the human data, and the yellow columns represent the bot data.


Bot events vs. human events

Bot events vs. human events

As you can see, the proportion of GitHub bot events has increased each year. In 2015, they were only 1.23% of all events. In early July of this year, they reached 13.2%. To show the data changes of bot events more clearly, we made the following line chart.


Bot event trending

Bot event trending

This figure shows that since 2019, bot events have been grown faster than before. As Mini256, a TiDB community contributor said in Love, Code, and Robot β€” Explore robots in the world of code:

For now, rough statistics find that there are more than 95,620 bots on GitHub. The number doesn't seem like so much, but wait...

These 95 thousand bot accounts generated 603 million events. These events account for 12.82% of all public events on GitHub, and these GitHub robots have served over 18 million open source repositories.

Bots are playing an increasingly important role on GitHub. Many projects are handing over automated work to bots. We expect that GitHub events will grow faster in the future.

When will GitHub reach 10 billion events?​

How many GitHub events will there be by the end of 2022? We fit predictions to GitHub historical data.


Human event fit (left) vs. bot event fit (right)

Human event fit (left) vs. bot event fit (right)

It's estimated that by the end of 2022, GitHub events will reach 5.36 billion.


github-event-prediction
GitHub event prediction

According to this prediction, GitHub events will exceed 10 billion in February 2025.


gitub-events-exceed-10-billion
GitHub events will exceed 10 billion in 2025

Can MySQL sharding support such a huge amount of data?​

GitHub uses MySQL as the main storage for all non-git warehouse data. The rapid growth of data volume poses a great challenge to GitHub's high availability. In March 2022, GitHub had 3 service disruptions, each lasting 2-5 hours. The official investigation report shows the MySQL database caused the outages. During peak load periods, the GitHub mysql1 database (the main database cluster in GitHub) load increased. Therefore, database access reached the maximum number of connections. This affected the performance of many GitHub services and features.

In fact, over the past few years GitHub has optimized its databases. For example, it added clusters to support platform growth and partitioned the main database. But these improvements did not fundamentally solve the problem. In the near future, GitHub events will exceed 5 billion, or even 10 billion. Can MySQL sharding support such data surge?

Data sources​

All the analysis data in this article comes from OSS Insight, a tool based on TiDB to analyze and gain insights into GitHub events data.

You can use it to easily get insights about developers and repositories based on billions of GitHub events. You can also get the latest and historical rankings and trends in technical fields.


The OSS Insight website

The OSS Insight website

Β· 10 min read
Wink Yao
Fendy Feng

In early January 2022, Max, our CEO, a big fan of open-source, asked if my team could build a small tool to help us understand all the open-source projects on GitHub; and, that if everything worked well, we should open the API to help open source developers to build better insights. In fact, GitHub continuously publishes the public events in its open-source world through the open API. (Thank you and well done! Github). We can certainly learn a lot from the data!

I was excited about this project until Max said: β€œYou’ve only got one week.” Well, the boss is the boss! Although time was tight and we were faced with multiple head-aching problems, I decided to take up this challenge.

Headache 1: we need both historical and real-time data.​

After some quick research, we found GHArchive, an open-source project that collects and archives all GitHub data from 2011 and updates it hourly. By the way, a lot of open-source analytical tools such as CNCF's Devstats rely on GH Archive, too.

Thanks to GH Archive, we found the data source.

But there's another problem: hourly data is good, but not good enough. We wanted our data to be updated in real timeβ€”or at least near real time. We decided to directly use the GitHub event API, which collects all events that have occurred within the past hour.

By combining the data from the GH Archive and the GitHub event API, we can gain streaming, real-time event updates.


GitHub event updates

GitHub event updates

Headache 2: the data is huge!​

After we decompressed all the data from GH Archive, we found there were more than 4.6 billion rows of GitHub events. That’s a lot of data! We also noticed that about 300,000 rows were generated and updated each hour.


The data volume of GitHub events occurred after 2011

The data volume of GitHub events occurred after 2011

The database solution would be tricky here. Our goal is to build an application that provides real-time data insights based on a continuously growing dataset. So, scalability is a must. NoSQL databases can provide good scalability, but what follows is how to handle complex analytical queries. Unfortunately, NoSQL databases are not good at that.


Scalability vs SQL

Another option is to use an OLAP database such as ClickHouse. ClickHouse can handle the analytical workload very well, but it is not designed for serving online traffic. If we chose it, we would need another database for the online traffic.


OLAP vs Online Serving

What about sharding the database and then building an extract, transform, load (ETL) pipeline to synchronize the new events to a data warehouse? This sounds workable.


How a RDBMS handles the GitHub data

How a RDBMS handles the GitHub data

According to our product manager's (PM’s) plan, we needed to do some repo-specific or user-specific analysis. Although the total data volume was huge, the number of events was not too large for a single project or user. This meant using the secondary indexes in RDBMS would be a good idea. But, if we decided to use the above architecture, we had to be careful in selecting the database sharding key. For example, if we use user_id as the sharding key, then queries based on repo_id will be very tricky.

Another requirement from the PM was that our insight tool should provide OpenAPI, which meant we would have unpredictable concurrent traffic from the outside world.

Since we're not experts on Kafka and data warehouses, mastering and building such an infrastructure in just one week was a very difficult task for us.

The choice is obvious now, and don't forget PingCAP is a database company! TiDB seems a perfect fit for this, and it's a good chance to eat our own dog food. So, why not using TiDB! :)

If we use TiDB, can we get:

  • SQL support, including complex & flexible queries? β˜‘οΈ
  • Scalability? β˜‘οΈ
  • Secondary index support for fast lookup? β˜‘οΈ
  • Capability for online serving? β˜‘οΈ

Wow! It seems we got a winner!


By using the secondary index, TiDB scanned 29,639 rows (instead of 4.6 billion rows) GitHub events in 4.9 ms

By using the secondary index, TiDB scanned 29,639 rows (instead of 4.6 billion rows) GitHub events in 4.9 ms

To choose a database to support an application like OSS Insight, we think TiDB is a great choice. Plus, its simplified technology stack means a faster go-to-market and faster delivery of my boss' assignment.

After we used TiDB, we got a simplified architecture as shown below.


Simplified architecture after we use TiDB

Simplified architecture after we use TiDB

Headache 3: We have a "pushy" PM!​

Just as the subtitle indicates, we have a very β€œpushy” PM, which is not always a bad thing. :) His demands kept extending, from the single project analysis at the very beginning to the comparison and ranking of multiple repositories, and to other multidimensional analysis such as the geographical distribution of stargazers and contributors. What’s more pressing was that the deadlines stayed unchanged!!!

We had to keep a balance between the growing demands and the tight deadlines.

To save time, we built our website using Docusaurus, an open source static site generator in React with scalability, rather than building a site from scratch. We also used Apache Echarts, a powerful charting library, to turn analytical results into good-looking and easy-to-understand charts.

We chose TiDB as the database to support our website, and it perfectly supports SQL. This way, our back-end engineers could write SQL commands to handle complex and flexible analytical queries with ease and efficiency. Then, our front-end engineers would just need to display those SQL execution results in the form of good-looking charts.

Finally, we made it. We prototyped our tool in just one week, and named it OSS Insight, short for open source software insights. We continued to fine-tune it, and it was officially released on May 3.

How we deal with analytical queries with SQL​

Let's use one example to show you how we deal with complex analytical queries.

Analyze a GitHub collection: JavaScript frameworks​

OSS Insight can analyze popular GitHub collections by many metrics including the number of stars, issues, and contributors. Let’s identify which JavaScript framework has the most issue creators. This is an analytical query that includes aggregation and ranking. To get the result, we only need to execute one SQL statement:

SELECT
ci.repo_name AS repo_name,
COUNT(distinct actor_login) AS num
FROM
github_events ge
JOIN collection_items ci ON ge.repo_id = ci.repo_id
JOIN collections c ON ci.collection_id = c.id
WHERE
type = 'IssuesEvent'
AND action = 'opened'
AND c.id = 10005
-- Exclude Bots
and actor_login not like '%bot%'
and actor_login not in (select login from blacklist_users)
GROUP BY 1
ORDER BY 2 DESC
;

In the statement above, the collections and collection_items tables store the data of all GitHub repository collections in various areas. Each table has 30 rows. To get the order of issue creators, we need to associate the repository ID in the collection_items table with the real, 4.6-billion-row github_events table as shown below.


mysql> select * from collection_items where collection_id = 10005;
+-----+---------------+-----------------------+-----------+
| id | collection_id | repo_name | repo_id |
+-----+---------------+-----------------------+-----------+
| 127 | 10005 | marko-js/marko | 15720445 |
| 129 | 10005 | angular/angular | 24195339 |
| 131 | 10005 | emberjs/ember.js | 1801829 |
| 135 | 10005 | vuejs/vue | 11730342 |
| 136 | 10005 | vuejs/core | 137078487 |
| 138 | 10005 | facebook/react | 10270250 |
| 142 | 10005 | jashkenas/backbone | 952189 |
| 143 | 10005 | dojo/dojo | 10160528 |
...
30 rows in set (0.05 sec)

Next, let's look at the execution plan. TiDB is compatible with MySQL syntax, so its execution plan looks very similar to that of MySQL.

In the figure below, notice the parts in red boxes. The data in the table collection_items is read through distributed[row], which means this data is processed by TiDB’s row storage engine, TiKV. The data in the table github_events is read through distributed[column], which means this data is processed by TiDB’s columnar storage engine, TiFlash. TiDB uses both row and columnar storage engines to execute the same SQL statement. This is so convenient for OSS Insight because it doesn’t have to split the query into two statements.


TiDB execution plan

TiDB execution plan

TiDB returns the following result:

+-----------------------+-------+
| repo_name | num |
+-----------------------+-------+
| angular/angular | 11597 |
| facebook/react | 7653 |
| vuejs/vue | 6033 |
| angular/angular.js | 5624 |
| emberjs/ember.js | 2489 |
| sveltejs/svelte | 1978 |
| vuejs/core | 1792 |
| Polymer/polymer | 1785 |
| jquery/jquery | 1587 |
| jashkenas/backbone | 1463 |
| ionic-team/stencil | 1101 |
...
30 rows in set
Time: 7.809s

Then, we just need to draw the result with Apache Echarts into a more visualized chart as shown below.


JavaScript frameworks with the most issue creators

JavaScript frameworks with the most issue creators

Note: You can click the REQUEST INFO on the upper right side of each chart to get the SQL command for each result.

Feedback: People love it!​

After we released OSS Insight on May 3, we have received loud applause on social media, via emails and private messages, from many developers, engineers, researchers, and people who are passionate about the open source community in various companies and industries.

I am more than excited and grateful that so many people find OSS Insight interesting, helpful, and valuable. I am also proud that my team made such a wonderful product in such a short time.


Applause given by developers and organizations on Twitter-1

Applause given by developers and organizations on Twitter-1

Applause given by developers and organizations on Twitter

Lessons learned​

Looking back at the process we used to build this website, we have learned many mind-refreshing lessons.

First, quick doesn’t mean dirty, as long as we make the right choices. Building an insight tool in just one week is tricky, but thanks to those wonderful, ready-made, and open source projects such as TiDB, Docusaurus, and Echarts, we made it happen with efficiency and without compromising the quality.

Second, it’s crucial to select the right databaseβ€”especially one that supports SQL. TiDB is a distributed SQL database with great scalability that can handle both transactional and real-time analytical workloads. With its help, we can process billions of rows of data with ease, and use SQL commands to execute complicated real-time queries. Further, using TiDB means we can leverage its resources to go to market faster and get feedback promptly.

If you like our project or are interested in joining us, you’re welcome to submit your PRs to our GitHub repository. You can also follow us on Twitter for the latest information.

note

πŸ“Œ Join our workshop​

If you want to get your own insights, you can join our workshop and try using TiDB to support your own datasets.

Β· 7 min read
Mini256

When it comes to GitHub, we often see fake GitHub users who are always enthusiastic and active, giving timely feedback to project maintainers and contributors, and helping developers with tasks that can be automated. Yes, the next thing I want to discuss is something about GitHub bots.

Overview​

In the OSSInsight project, we have developed a number of metrics to provide insight into open source projects. When developing some open source project metrics, we always consider excluding bot-generated actions or events from the metric calculation.

However, We can't ignore the contribution of robots in the domain of open source, and it's important to shift our thinking to look at what bots are doing on GitHub.

GitHub's bots help developers do a lot of work:

  • Issue triage and management. (For example: stale[bot]、todo[bot])
  • Code review, security audit and quality inspection (For example, snyk-bot).
  • Format checking like ensuring license agreement signing, or make sure commit messages semantic. (For example: CLAassistant)
  • Integration with third-party systems, including Jira, Slack, Jenkins and so on.
  • As an agent to help contributor perform some operations needed permission on the repository. (For example: k8s-ci-bot、ti-chi-bot)

Looking at the historical data, we see that the number of GitHub bots grows significantly faster after 2019 (on average, 20,000 new bots are created each year)

Β· 3 min read
Jagger

In this chapter, we will share with you some of the top JavaScript Framework repos(JSF repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Note:

  1. You can move your cursor onto any of the repository bars/lines on the chart and get the exact number.
  2. The SQL commands above each chart are what we use on our TiDB Cloud to get the analytical results. Try those SQL commands by yourselves on TiDB Cloud with this 10-minute tutorial.

Star history of top JavaScript Framework repos since 2011​

The number of stars is often thought of as a measure of whether a GitHub repository is popular or not. We sort all JavaScript framework repositories from GitHub by the total number of historical stars since 2011. For visualizing the results more intuitively, we show the top 10 open source databases by using an interactive line chart.

- - + + \ No newline at end of file diff --git a/blog/page/2/index.html b/blog/page/2/index.html index e50fcad08bf..79206d9887d 100644 --- a/blog/page/2/index.html +++ b/blog/page/2/index.html @@ -21,13 +21,13 @@ - - + +

Β· 2 min read
Jagger

In this chapter, we will share with you some of the top low-code development tools repos (LCDT repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Β· 6 min read
Jagger

On this page, we will share with you many deep insights into open source databases, such as the database popularity, database contributors, coding vitality, community feedback and so on.

We’ll also share the SQL commands that generate all these analytical results above each chart, so you can use them on your own on TiDB Cloud following this 10-minute tutorial.

Β· 2 min read
Jagger

In this chapter, we will share with you some of the top programming language repos (PL repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Β· 3 min read
Jagger

In this chapter, we will share with you some of the top Web Framework repos (WF repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Β· 10 min read
Fendy Feng

4.6 billion is literally an astronomical figure. The richest star map of our galaxy, brought by Gaia space observatory, includes just under 2 billion stars. What does a view of 4.6 billion GitHub events really look like? What secrets and values can be discovered in such an enormous amount of data?

Here you go: OSSInsight.io can help you find the answer. It’s a useful insight tool that can give you the most updated open source intelligence, and help you deeply understand any single GitHub project or quickly compare any two projects by digging deep into 4.6 billion GitHub events in real time. Here are some ways you can play with it.

Compare any two GitHub projects​

Do you wonder how different projects have performed and developed over time? Which project is worthy of more attention? OSSInsight.io can answer your questions via the Compare Projects page.

Let’s take the Kubernetes repository (K8s) and Docker’s Moby repository as examples and compare them in terms of popularity and coding vitality.

Popularity​

To compare the popularity of two repositories, we use multiple metrics including the number of stars, the growth trend of stars over time, and stargazers’ geographic and employment distribution.

Number of stars​

The line chart below shows the accumulated number of stars of K8s and Moby each year. According to the chart, Moby was ahead of K8s until late 2019. The star growth of Moby slowed after 2017 while K8s has kept a steady growth pace.

The star history of K8s and Moby

Geographical distribution of stargazers​

The map below shows the stargazers’ geographical distribution of Moby and K8s. As you can see, their stargazers are scattered around the world with the majority coming from the US, Europe, and China.

The geographical distribution of K8s and Moby stargazers

Employment distribution of stargazers​

The chart below shows the stargazers’ employment of K8s (red) and Moby (dark blue). Both of their stargazers work in a wide range of industries, and most come from leading dotcom companies such as Google, Tencent, and Microsoft. The difference is that the top two companies of K8s’ stargazers are Google and Microsoft from the US, while Moby’s top two followers are Tencent and Alibaba from China.

The employment distribution of K8s and Moby stargazers

Β· 3 min read
ilovesoup

Providing insights on large volume of email data might not be as easy as we thought. While data coming in real-time, indices and metadata are to be built consistently. To make things worse, the data volume is beyond traditional single node databases' reach.

Background​

To store large volumes of real-time user data like email and provide insights is not easy. If your application is layered on top of Gmail to automatically extract and organize the useful information buried inside of our inboxes.

It became clear that they were going to need a better system for organizing terabytes of email metadata to power collaboration as their customer base rapidly increased, it is not easy to provide insights. You need to organize email data by first applying a unique identifier to the emails and then proactively indexing the email metadata. The unique identifier is what connects the same email headers across. For each email inserted in real-time, the system extracts meta information from it and builds indices for high concurrent access. When data volume is small, it's all good: traditional databases provide all you need. However, when data size grows beyond a single node's capacity, everything becomes very hard.

Potential Database Solutions​

Regarding databases, there are some options you might consider:

  1. NoSQL database. While fairly scalable, it does not provide you indexing and comprehensive query abilities. You might end up implementing them in your application code.
  2. Sharing cluster of databases. Designing sharding key and paying attention to the limitations between shards are painful. It might be fine for applications with simple schema designs, but it will be too complicated for CRM. Moreover, it's very hard to maintain.
  3. Analytical databases. They are fine for dashboard and reporting. But not fine for high concurrent updates and index based serving.

How to get real-time insights​

TiDB is a distributed database with user experience of traditional databases. It looks like a super large MySQL without the limitations of NoSQL and sharding cluster solutions. With TiDB, you can simply have the base information, indices and metadata being updated in a concurrent manner with the help of cross-node transaction ability.

To build such a system, you just need following steps:

  1. Create schemas according to your access pattern with indices on user name, organization, job title etc.
  2. Use streaming system to gather and extract meta information from your base data
  3. Insert into TiDB via ordinary MySQL client driver like JDBC. You might want to gather data in small batches of hundreds of rows to speed up ingestion. In a single transaction, updates on base data, indices and meta information are guaranteed to be consistent.
  4. Optionally, deploy a couple of TiFlash nodes to speed up large scale reporting queries.
  5. Access the data just like in MySQL and you are all done. SQL features for analytics like aggregations, multi-joins or window functions are all supported with great performance.

For more cases, please see here.

info

🌟 Details in how OSS Insight works​

Go to read Use TiDB Cloud to Analyze GitHub Events in 10 Minutes and use the Serverless Tier TiDB Cloud Cluster.

You can find how we deal with massive github data in Data Preparation for Analytics as well!

Β· 5 min read
Fendy Feng
hooopo

TiDB is an open source distributed NewSQL database with horizontal scalability, high availability, and strong consistency. It can also deal with mixed OLTP and OLAP workloads at the same time by leveraging its hybrid transactional and analytical (HTAP) capability.

TiDB Cloud is a fully-managed Database-as-a-Service (DBaaS) that brings everything great about TiDB to your cloud and lets you focus on your applications, not the complexities of your database.

In this tutorial, we will provide you with a piece of sample data of all GitHub events occurring on January 1, 2022, and walk you through on how to use TiDB Cloud to analyze this data in 10 minutes.

Sign up for a TiDB Cloud account (Free)​

  1. Click here to sign up for a TiDB Cloud account free of charge.
  2. Log in to your account.

Β· 5 min read
hooopo

Data​

All the data we use here on this website sources from GH Archive, a non-profit project that records and archives all GitHub events data since 2011. The total data volume archived by GH Archive can be up to 4 billion rows. We download the json file on GH Archive and convert it into csv format via Script, and finally load it into the TiDB cluster in parallel through TiDB-Lightning.

In this section, we will explain step by step how we conduct this process.

  1. Prepare the data in csv format for TiDB Lighting.
- - + + \ No newline at end of file diff --git a/blog/reduce-query-latency/index.html b/blog/reduce-query-latency/index.html index 50d5d687d5b..88da0869fcd 100644 --- a/blog/reduce-query-latency/index.html +++ b/blog/reduce-query-latency/index.html @@ -21,13 +21,13 @@ - - + +

Reducing Online Serving Latency from 1.11s to 123.6ms on a Distributed SQL Database

Β· 11 min read
Mini256
Caitin Chen

TL;DR:

This post tells how a website on a distributed database reduced online serving latency from 1.11 s to 417.7 ms, and then to 123.6 ms. We found that some lessons learned on MySQL could be applied throughout the optimization process. But when we optimize a distributed database, we need to consider more.

The OSS Insight website displays the data changes of GitHub events in real time. It's powered by TiDB Cloud, a MySQL-compatible distributed SQL database for elastic scale and real-time analytics.

Recently, to save costs, we tried to use lower-specification machines without affecting query efficiency and user experience. But our website and query response slowed down.


The repository analysis page was loading

The repository analysis page was loading, loading, and loading

How could we solve these problems on a distributed database? Could we use the methodology we learned on MySQL?

Analyzing the SQL execution plan​

To identify slow SQL statements, we used TiDB Cloud's Diagnosis page to sort SQL queries by their average latency.

For example, after the API server received a request, it executed the following SQL statement to obtain the number of issues in the vscode repository:

SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

However, if the open source repository is large, this query may take several seconds or more to execute.

Using EXPLAIN ANALYZE to troubleshoot query performance problems​

In MySQL, when we troubleshoot query performance problems, we usually use the EXPLAIN ANALYZE <sql> statement to view the SQL statement's execution plan. We can use the execution plan to locate the problem. The same works for TiDB.

We executed the EXPLAIN statement:

EXPLAIN ANALYZE SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

The result showed that the query took 1.11 seconds to execute.


The query result

The query result

You can see that TiDB's EXPLAIN ANALYZE statement execution result was completely different from MySQL's. TiDB's execution plan gave us a clearer understanding of how this SQL statement was executed.

The execution plan shows:

  • This SQL statement was split into several subtasks. Some were on the root node, and others were on the tikv node.
  • The query fetched data from the partition:issue_event partition table.
  • This query did a range scan through the index index_github_events_on_repo_id(repo_id). This let the query narrow down the data scan quickly. This process only took 59 ms. It was the sum of the execution times of multiple concurrent tasks.
  • Besides IndexRangeScan, the query also used TableRowIDScan. This scan took 4.69 s, the sum of execution times for multiple concurrent subtasks.

From the execution times above, we determined that the query performance bottleneck was in the TableRowIDScan step.

We reran the EXPLAIN ANALYZE statement and found that the query was faster the second time. Why?

Why did TableRowIDScan take so long?​

To find the reason why TableRowIDScan took so long, we need basic knowledge of TiDB's underlying storage.

In TiDB, a table's data entries and indexes are stored on TiKV nodes in key-value pairs.

  • For an index, the key is the combination of the index value and the row_id (for a non-clustered index) or the primary key (for a clustered index). The row_id or primary key indicates where the data is stored.
  • For a data entry, the key is the combination of the table ID and the row_id or primary key. The value part is the combination of this row of data.

This graph shows how IndexLookup is executed in the execution plan:


The logical structure

This is the logical structure, not the physical storage structure.

In the query above, TiDB uses the query condition repo_id=41881900 to filter out all row numbers row_id related to the repository in the secondary index index_github_events_on_repo_id. The query needs the number column data, but the secondary index doesn't provide it. Therefore, TiDB must execute IndexLookup to find the corresponding row in the table based on the obtained row_id (the TableRowIDScan step).

The rows are probably scattered in different data blocks and stored on the hard disk. This causes TiDB to perform a large number of I/O operations to read data from different data blocks or even different machine nodes.

Why was EXPLAIN ANALYZE faster the second time?​

In EXPLAIN ANALYZE's execution result, we saw that the "execution info" column corresponding to the TableRowIDScan step contained this information:

block: {cache_hit_count: 2755559, read_count: 179510, read_byte: 4.07 GB}

We thought this had something to do with TiKV. TiKV read a very large number of data blocks from the disk. Because the data blocks read from the disk were cached in memory in the first execution, 2.75 million data blocks could be read directly from memory instead of being retrieved from the hard disk. This made the TableRowIDScan step much faster, and the query was faster overall.

However, we believed that user queries were random. For example, a user might look up data from a vscode repository and then go to a kubernetes repository. TiKV's memory couldn't cache all the data blocks in all the drives. Therefore, this did not solve our problem, but it reminded us that when we analyze SQL execution efficiency, we need to exclude cache effects.

Using a covering index to avoid executing TableRowIDScan​

Could we avoid executing TableRowIDScan in IndexLookup?

In MySQL, a covering index prevents the database from index lookup after index filtering. We wanted to apply this to OSS Insight. In our TiDB database, we tried to create a composite index to achieve index coverage.

When we created a composite index with multiple columns, we needed to pay attention to the column order. Our goals were to allow a composite index to be used by as many queries as possible, to help these queries narrow the scope of data scans as quickly as possible, and to provide as many fields as possible in the query. When we created a composite index we followed this order:

  1. Columns that had high differentiation and could be used as equivalence conditions for the WHERE statement, like repo_id
  2. Columns that didn't have high differentiation but could be used as equivalence conditions for the WHERE statement, like type and action
  3. Columns that could be used as range query conditions for the WHERE statement, like created_at
  4. Redundant columns that were not used as filter conditions but were used in the query, such as number and push_size

We used the CREATE INDEX statement to create a composite index in the database:

CREATE INDEX index_github_events_on_repo_id_type_number ON github_events(repo_id, type, number);

When we created the index and ran the SQL statement again, the query speed was significantly faster. We viewed the execution plan through EXPLAIN ANALYZE and found that the execution plan became simpler. The IndexLookup and TableRowIDScan steps were gone. The query took only 417.7 ms.


The result of the EXPLAIN query

The result of the EXPLAIN query. This query cost 417.7 ms

So we knew that our query could get all the data it needed by doing an IndexRangeScan on the new index. This composite index included the number field, so TiDB did not need to perform IndexLookup to get data from the table. This reduced a lot of I/O operations.


`IndexRangeScan` in the non-clustered table

IndexRangeScan in the non-clustered table

Pushing down computing to further reduce query latency​

For a query that needed to obtain 270,000 rows of data, 417.7 ms was quite a short execution time. But could we improve the time even more?

We thought this relied on TiDB's architecture that separates computing and storage layers. This is different from MySQL.

In TiDB:

  • The tidb-server node computes data. It corresponds to root in the execution plan.
  • The tikv-server node stores the data. It corresponds to cop[tikv] in the execution plan.

Generally, an SQL statement is split into multiple steps to execute with the cooperation of computing and storage nodes.

When we executed the SQL statement in this article, TiDB obtained the data of the github_events table from tikv-server and performed the aggregate calculation of the COUNT function on tidb-server.

SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

The execution plan indicated that when TiDB was performing IndexReader, tidb-server needed to read 270,000 rows of data from tikv-server through the network. This was time-consuming.


`tidb-server` read 270,000 rows of data from `tikv-server`

tidb-server read 270,000 rows of data from tikv-server

How could we avoid such a large network transmission? Although the query needed to obtain a large amount of data, the final calculation result was only a number. Could we complete the COUNT aggregation calculation on tikv-server and return the result only to tidb-server?

TiDB had implemented this idea through the coprocessor on tikv-server. This optimization process is called computing pushdown.

The execution plan indicated that our SQL query did not do this. Why? We checked the TiDB documentation and learned that:

Usually, aggregate functions with the DISTINCT option are executed in the TiDB layer in a single-threaded execution model.

This meant that our SQL statement couldn't use computing pushdown.

SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

Therefore, we removed the DISTINCT keyword.

For the github_events table, an issue only generated an event with the IssuesEvent type and opened action. We could get the total number of unique issues by adding the condition of action = 'opened'. This way, we didn't need to use the DISTINCT keyword for deduplication.

SELECT
COUNT(number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent'
AND action = 'opened';

The composite index we created lacked the action column. This caused the query index coverage to fail. So we created a new composite index:

CREATE INDEX index_github_events_on_repo_id_type_action_number ON github_events(repo_id, type, action, number);

After we created the index, we checked the execution plan of the modified SQL statement through the EXPLAIN ANALYZE statement. We found that:

  • Because we added a new filter action='opened', the number of rows to scan had decreased from 270,000 to 140,000.
  • tikv-server executed the StreamAgg operator, which was the aggregate calculation of the COUNT function. This indicated that the calculation had been pushed down to the TiKV coprocessor for execution.
  • tidb-server only needed to obtain two rows of data from tikv-server through the network. This greatly reduced the amount of data transmitted.
  • The query only took 123.6 ms.
+-------------------------+---------+---------+-----------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------+------+
| id | estRows | actRows | task | access object | execution info | operator info | memory | disk |
+-------------------------+---------+---------+-----------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------+------+
| StreamAgg_28 | 1.00 | 1 | root | | time:123.6ms, loops:2 | funcs:count(Column#43)->Column#34 | 388 Bytes | N/A |
| └─IndexReader_29 | 1.00 | 2 | root | partition:issues_event | time:123.6ms, loops:2, cop_task: {num: 2, max: 123.5ms, min: 1.5ms, avg: 62.5ms, p95: 123.5ms, max_proc_keys: 131360, p95_proc_keys: 131360, tot_proc: 115ms, tot_wait: 1ms, rpc_num: 2, rpc_time: 125ms, copr_cache_hit_ratio: 0.50, distsql_concurrency: 15} | index:StreamAgg_11 | 590 Bytes | N/A |
| └─StreamAgg_11 | 1.00 | 2 | cop[tikv] | | tikv_task:{proc max:116ms, min:8ms, avg: 62ms, p80:116ms, p95:116ms, iters:139, tasks:2}, scan_detail: {total_process_keys: 131360, total_process_keys_size: 23603556, total_keys: 131564, get_snapshot_time: 1ms, rocksdb: {delete_skipped_count: 320, key_skipped_count: 131883, block: {cache_hit_count: 307, read_count: 1, read_byte: 63.9 KB, read_time: 60.2Β΅s}}} | funcs:count(gharchive_dev.github_events.number)->Column#43 | N/A | N/A |
| └─IndexRangeScan_15 | 7.00 | 141179 | cop[tikv] | table:github_events, index:index_ge_on_repo_id_type_action_created_at_number(repo_id, type, action, created_at, number) | tikv_task:{proc max:116ms, min:8ms, avg: 62ms, p80:116ms, p95:116ms, iters:139, tasks:2} | range:[41881900 "IssuesEvent" "opened",41881900 "IssuesEvent" "opened"], keep order:false | N/A | N/A |
+-------------------------+---------+---------+-----------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------+------+

Applying what we learned to other queries​

Through our analysis and optimizations, the query latency was significantly reduced:

1.11 s β†’ 417.7 ms β†’ 123.6 ms

We applied what we learned to other queries and created the following composite indexes in the github_events table:

index_ge_on_repo_id_type_action_pr_merged_created_at_add_del

index_ge_on_repo_id_type_action_created_at_number_pdsize_psize

index_ge_on_repo_id_type_action_created_at_actor_login

index_ge_on_creator_id_type_action_merged_created_at_add_del

index_ge_on_actor_id_type_action_created_at_repo_id_commits

These composite indexes covered more than 20 analytical queries in repository analysis and personal analysis pages on the OSS Insight website. This improved our website's overall loading speed.

Some lessons we learned on MySQL can be applied throughout the optimization process. But we need to consider more when we optimize query performance in a distributed database. We also recommend you read Performance Tuning in the TiDB documentation. This will give you a more professional and comprehensive guide to performance optimization.

References​

- - + + \ No newline at end of file diff --git a/blog/saas-insight-for-building-a-real-time-crm-application/index.html b/blog/saas-insight-for-building-a-real-time-crm-application/index.html index 8887e9d65d6..fa681891ab0 100644 --- a/blog/saas-insight-for-building-a-real-time-crm-application/index.html +++ b/blog/saas-insight-for-building-a-real-time-crm-application/index.html @@ -21,13 +21,13 @@ - - + +

SaaS Insight for Building a Real-time CRM Application

Β· 3 min read
ilovesoup

Providing insights on large volume of email data might not be as easy as we thought. While data coming in real-time, indices and metadata are to be built consistently. To make things worse, the data volume is beyond traditional single node databases' reach.

Background​

To store large volumes of real-time user data like email and provide insights is not easy. If your application is layered on top of Gmail to automatically extract and organize the useful information buried inside of our inboxes.

It became clear that they were going to need a better system for organizing terabytes of email metadata to power collaboration as their customer base rapidly increased, it is not easy to provide insights. You need to organize email data by first applying a unique identifier to the emails and then proactively indexing the email metadata. The unique identifier is what connects the same email headers across. For each email inserted in real-time, the system extracts meta information from it and builds indices for high concurrent access. When data volume is small, it's all good: traditional databases provide all you need. However, when data size grows beyond a single node's capacity, everything becomes very hard.

Potential Database Solutions​

Regarding databases, there are some options you might consider:

  1. NoSQL database. While fairly scalable, it does not provide you indexing and comprehensive query abilities. You might end up implementing them in your application code.
  2. Sharing cluster of databases. Designing sharding key and paying attention to the limitations between shards are painful. It might be fine for applications with simple schema designs, but it will be too complicated for CRM. Moreover, it's very hard to maintain.
  3. Analytical databases. They are fine for dashboard and reporting. But not fine for high concurrent updates and index based serving.

How to get real-time insights​

TiDB is a distributed database with user experience of traditional databases. It looks like a super large MySQL without the limitations of NoSQL and sharding cluster solutions. With TiDB, you can simply have the base information, indices and metadata being updated in a concurrent manner with the help of cross-node transaction ability.

To build such a system, you just need following steps:

  1. Create schemas according to your access pattern with indices on user name, organization, job title etc.
  2. Use streaming system to gather and extract meta information from your base data
  3. Insert into TiDB via ordinary MySQL client driver like JDBC. You might want to gather data in small batches of hundreds of rows to speed up ingestion. In a single transaction, updates on base data, indices and meta information are guaranteed to be consistent.
  4. Optionally, deploy a couple of TiFlash nodes to speed up large scale reporting queries.
  5. Access the data just like in MySQL and you are all done. SQL features for analytics like aggregations, multi-joins or window functions are all supported with great performance.

For more cases, please see here.

info

🌟 Details in how OSS Insight works​

Go to read Use TiDB Cloud to Analyze GitHub Events in 10 Minutes and use the Serverless Tier TiDB Cloud Cluster.

You can find how we deal with massive github data in Data Preparation for Analytics as well!

- - + + \ No newline at end of file diff --git a/blog/say-thanks-to-github-robots/index.html b/blog/say-thanks-to-github-robots/index.html index 89a162f20e8..0cbe4f2aa6e 100644 --- a/blog/say-thanks-to-github-robots/index.html +++ b/blog/say-thanks-to-github-robots/index.html @@ -21,14 +21,14 @@ - - + +

Love, Code, and Robot β€” Explore robots in the world of code

Β· 7 min read
Mini256

When it comes to GitHub, we often see fake GitHub users who are always enthusiastic and active, giving timely feedback to project maintainers and contributors, and helping developers with tasks that can be automated. Yes, the next thing I want to discuss is something about GitHub bots.

Overview​

In the OSSInsight project, we have developed a number of metrics to provide insight into open source projects. When developing some open source project metrics, we always consider excluding bot-generated actions or events from the metric calculation.

However, We can't ignore the contribution of robots in the domain of open source, and it's important to shift our thinking to look at what bots are doing on GitHub.

GitHub's bots help developers do a lot of work:

  • Issue triage and management. (For example: stale[bot]、todo[bot])
  • Code review, security audit and quality inspection (For example, snyk-bot).
  • Format checking like ensuring license agreement signing, or make sure commit messages semantic. (For example: CLAassistant)
  • Integration with third-party systems, including Jira, Slack, Jenkins and so on.
  • As an agent to help contributor perform some operations needed permission on the repository. (For example: k8s-ci-bot、ti-chi-bot)

Looking at the historical data, we see that the number of GitHub bots grows significantly faster after 2019 (on average, 20,000 new bots are created each year)

I looked into what happened during the year and found that GitHub invested a lot in its software development infrastructure (including bots) during the year.

At this year, we, human beings, were amazed to discover that bots could find problems, submit PRs, wait CI test code, complete merges and comment on PRs on their own without any human involvement.

Bot automatically completes a pull request

For now, rough statistics found that there are more than 95,620 bots on GitHub, the number doesn't seem like so much, but wait...

Click here to show computational process

Before that, we had collected 4.7 billion github events stored in our database. Now we can count the number of bots on GitHub by executing a simple SQL statement:

SELECT COUNT(DISTINCT actor_login) AS 'Bots'
FROM github_events ge
WHERE actor_login REGEXP '^(bot-.+|.+bot|.+\\[bot\\]|.+-bot-.+|robot-.+|.+-ci-.+|.+-ci|.+-testing|.+clabot.+|.+-gerrit|k8s-.+|.+-machine|.+-automation|github-.+|.+-github|.+-service|.+-builds|codecov-.+|.+teamcity.+|jenkins-.+|.+-jira-.+)$';

In this SQL statement, we use a regular expression to determine which actor_login is the robot login. For example, the well known star robot dependabot[bot], whose github login ends with [bot], we can find more bots among a large number of events based on this method.

+-------+
| Bots |
+-------+
| 95620 |
+-------+
1 row in set
Time: 16.921s

πŸ‘€ These 95 thousand bot accounts generated 603 million events, these events account for 12.82% of all public events on GitHub.

Click here to show computational process
  1. Count the total number of public events triggered by GitHub bot
SELECT COUNT(*) AS 'Bot''s events'
FROM github_events ge
WHERE actor_login REGEXP '^(bot-.+|.+bot|.+\\[bot\\]|.+-bot-.+|robot-.+|.+-ci-.+|.+-ci|.+-testing|.+clabot.+|.+-gerrit|k8s-.+|.+-machine|.+-automation|github-.+|.+-github|.+-service|.+-builds|codecov-.+|.+teamcity.+|jenkins-.+|.+-jira-.+)$';
+--------------+
| Bot's events |
+--------------+
| 603554237 |
+--------------+
1 row in set
Time: 13.087s
  1. Count the total number of all public events on GitHub
SELECT COUNT(*) AS 'All public events' FROM github_events ge;
+-------------------+
| All public events |
+-------------------+
| 4705191048 |
+-------------------+
1 row in set
Time: 4.322s
  1. Calculate the proportion of the former in the latter
SELECT CONCAT(TRUNCATE(603554237 / 4705191048 * 100, 2), '%') AS 'Proportion of Events';
+----------------------+
| Proportion of Events |
+----------------------+
| 12.82% |
+----------------------+
1 row in set
Time: 0.047s

And these GitHub robots have served over 18 million open source repositories.

Click here to show computational process
SELECT COUNT(DISTINCT repo_id) AS 'Repositories'
FROM github_events ge
WHERE actor_login REGEXP '^(bot-.+|.+bot|.+\\[bot\\]|.+-bot-.+|robot-.+|.+-ci-.+|.+-ci|.+-testing|.+clabot.+|.+-gerrit|k8s-.+|.+-machine|.+-automation|github-.+|.+-github|.+-service|.+-builds|codecov-.+|.+teamcity.+|jenkins-.+|.+-jira-.+)$';
+--------------+
| Repositories |
+--------------+
| 18415262 |
+--------------+
1 row in set
Time: 27.060s

Cases study​

Dependabot[bot]​

dependabot[bot] is a hard-working bot responsible for helping open source projects keep their dependencies up to date.

By analyzing depentenbot's Push commit time, we found that he likes to start his busy week at 8:00 on Mondays (at GMT timezone).

It is commendable that, after a series of log4j security vulnerabilities came to light, it helped many Java-language repositories to update the dependency to a secure version timely.

Stale Bots​

Stale Bot is a controversial class of robots, they are responsible for reminding maintainers to continue promoting long-term stale issue.

Bad practiceBest practices

The user from Gatsby:

I used to open GitHub issues to Gatsby to report bugs. Almost nothing was ever fixed and every few weeks I had to manually clickety-click to keep the issues alive because of the stale bot. Guess what I do now? I don't report bugs to Gatsby, and I recommend against using Gatsby in newer projects.

The user from NixOS:

IMO NixOS has the right stalebot settings 0. It was discussed thoroughly in the RFC, as to choose the right information text and other actions by the bot. For example, the bot will only mark the issue/PR as stale and will never close the issue or lock it. Issues are only ever closed by humans. The information text they came up with is quite a bit longer than the ansible one 1. I think this is a very important point when adding such a bot, otherwise the user will be left helpless.

To verify the above statement, we run the following query through the SQL statement:

SELECT actor_login, COUNT(DISTINCT pr_or_issue_id) AS cnt
FROM github_events ge
WHERE
repo_name = 'gatsbyjs/gatsby'
AND type = 'IssuesEvent'
AND action = 'closed'
AND (actor_login LIKE '%[bot]' OR actor_login LIKE '%bot')
GROUP BY actor_login
ORDER BY cnt DESC;

We know from the following query that many Issues in the gatsbyjs/gatsby repository have been closed by the stale bots.

+---------------------+------+
| actor_login | cnt |
+---------------------+------+
| gatsbot[bot] | 1389 |
| github-actions[bot] | 777 |
| gatsbybot | 265 |
| stale[bot] | 50 |
| renovate[bot] | 1 |
+---------------------+------+
5 rows in set
Time: 0.100s

I think it is necessary to distinguish between what should be done by robots and what must be done with human involvement.

Weird bots​

There are some weird bots on GitHub that don't help people work and learn on GitHub, but rather act as data movers.

  • Some of them will use GitHub as a free place to archive their data, for example, speedtracker-bot, newstools.

  • Some of them will periodically upload a timestamp to the code repository as a commit, for example, keihin00174.

  • Some are even crazier, and you can't even access their profile pages because the number of events generated is so large that GitHub's database can't process them quickly, for example, mhutchinson-witness, direwolf-github.

    Too long time to load bot profile

Ranks​

We ranked the robots according to their contribution.

- - + + \ No newline at end of file diff --git a/blog/tags/apche-log-4-j/index.html b/blog/tags/apche-log-4-j/index.html index e6fbc0ab45a..089f5087a46 100644 --- a/blog/tags/apche-log-4-j/index.html +++ b/blog/tags/apche-log-4-j/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "Apche Log4j"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/c-url/index.html b/blog/tags/c-url/index.html index cb99c456496..53730d36d8a 100644 --- a/blog/tags/c-url/index.html +++ b/blog/tags/c-url/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "cURL"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/chatgpt/index.html b/blog/tags/chatgpt/index.html index 2e3f766c9d8..a33e2d5d1a1 100644 --- a/blog/tags/chatgpt/index.html +++ b/blog/tags/chatgpt/index.html @@ -21,14 +21,14 @@ - - + +

3 posts tagged with "chatgpt"

View All Tags

Β· 18 min read
sykp241095
ChatGPT

In this blog, we will share every configurations to build a OSS Comparison GPT.

GPTs Configurations​

Name​

Open Source Benchmark

Description​

Compare open-source softwares

Instructions​

You are a data analysis expert. 
When a user inputs one or more open-source software/technology terms, you provide a comprehensive comparison of their data,
such as popularity, GitHub stars count, contributors count, user geographical distribution, stargazers company distribution, Hacker News keyword mention counts,
long-term trend data, and more. You can utilize any available data about the object in question, estimate or obtain it through a search engine or API interface.
Currently, you have the following APIs at your disposal:

1. GitHub API for getting repo basic info
2. OSS Insight API for star history and stargazer's distribution
3. Hackernews mentions per_year API
4. OSS Insight star history chart API (show me with a <img> label)
5. OSS Insight API for stargazers company distribution

Here's a step-by-step process:

Identify which API to use based on the data you need.
- you goal is to think more metrics according exist API.
- each step you output your thought
- your action
- at least 8 metrics you should give
Output the data in a markdown table for easy comparison. add your known metrics for more insight. at least 8 metrics.

| Dimension | A | B |
|----------------|-------------|-------------|
| Dimension 1 | Detail A1 | Detail B1 |
| Dimension 2 | Detail A2 | Detail B2 |
| Dimension 3 | Detail A3 | Detail B3 |
| ... | ... | ... |
| Dimension N | Detail AN | Detail BN |

- For star history data, you should generate a line chart using oss insight star history api, at least one chart.
- For stargazers company data, you use markdown table:
| Company | Stargazers Count |
|-----------------|------------------|
| Company A | 100 |
| Company B | 75 |
| Company C | 50 |
| Company D | 30 |
| Other/Unknown | 45 |

Provide insights and analysis based on the collected data. and trending insight.
Be sure to think big! Always give plan and explain what you do.

Let's begin

Plan:
Tools:
Action:
Output:
Deep Insight:

At the end, you should give use some surprise, you can search stackshare.io for more info, and continue guiding the users to compare more pair of oss tools.

Conversation starters​

PyTorch vs TensorFlow
TiDB vs Vitess
React vs Vue
Golang vs Rust-lang

Capabilities​

tip

Make all these three capabilities checked

  • Web Browsing
  • DALL-E Image Generation
  • Code Interpreter

Actions​

Action 1: Config API of next.ossinsight.io for drawing star historical chart​

Schema​
openapi: 3.0.0
info:
title: OSS Insight star history chart API
version: 1.0.0
description: OSS Insight star history chart API.
servers:
- url: https://next.ossinsight.io
paths:
/widgets/official/analyze-repo-stars-history/manifest.json:
get:
operationId: Star History
summary: Retrieve repository star history analysis
description: Fetches the star history and analysis for specified repositories.
parameters:
- name: repo_id
in: query
required: true
description: The ID of the primary repository.
schema:
type: integer
- name: vs_repo_id
in: query
required: true
description: The ID of the repository to compare with.
schema:
type: integer
responses:
'200':
description: Successful response with star history data.
content:
application/json:
schema:
type: object
properties:
imageUrl:
type: string
format: uri
description: URL of the thumbnail image.
title:
type: string
description: Title of the analysis.
description:
type: string
description: Description of the analysis.
'400':
description: Bad request - parameters missing or invalid.
'404':
description: Resource not found.
'500':
description: Internal server error.
Privacy policy​
https://www.pingcap.com/privacy-policy/

Action 2: Config api.github.com for fetching basic info of a repository​

As GitHub API use Personal Access Token and Bearer type of authentication for authentication, you should create one in: https://github.com/settings/tokens, it will be used later.

Schema:​
openapi: 3.0.0
info:
title: GitHub Repository Info API
description: An API for retrieving information about GitHub repositories.
version: 1.0.0
servers:
- url: https://api.github.com
description: GitHub API Server
paths:
/repos/{owner}/{repo}:
get:
summary: Get Repository Info
description: Retrieve information about a GitHub repository.
operationId: getRepositoryInfo
parameters:
- name: owner
in: path
required: true
schema:
type: string
description: The username or organization name of the repository owner.
- name: repo
in: path
required: true
schema:
type: string
description: The name of the repository.
responses:
'200':
description: Successful response with repository information.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
name:
type: string
full_name:
type: string
owner:
type: object
properties:
login:
type: string
id:
type: integer
avatar_url:
type: string
html_url:
type: string
private:
type: boolean
description:
type: string
fork:
type: boolean
url:
type: string
html_url:
type: string
language:
type: string
forks_count:
type: integer
stargazers_count:
type: integer
watchers_count:
type: integer
size:
type: integer
default_branch:
type: string
open_issues_count:
type: integer
topics:
type: array
items:
type: string
has_issues:
type: boolean
has_projects:
type: boolean
has_wiki:
type: boolean
has_pages:
type: boolean
has_downloads:
type: boolean
has_discussions:
type: boolean
archived:
type: boolean
disabled:
type: boolean
visibility:
type: string
pushed_at:
type: string
format: date-time
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
license:
type: object
properties:
key:
type: string
name:
type: string
spdx_id:
type: string
url:
type: string
Privacy policy​
https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement

Action 3: Stargazer's geo & company distribution provided by TiDB Serverless Data Service​

Schema URL to import​
https://us-west-2.prod.aws.tidbcloud.com/api/v1/dataservices/external/appexport/openapi?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBpZCI6ImRhdGFhcHAtUmZGS2NaRnUiLCJjcmVhdGVyIjoiaHVvaGFvQHBpbmdjYXAuY29tIiwic2VuY2UiOiJvcGVuYXBpIn0.xqu-ZCPHozisIHWTD5XM_5t2JWOGVpAejcQeWiTH_Mw

or you can use the following details schema.

Show detailed API schema

components:
schemas:
getGithubRepoStar_historyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
date:
type: string
stargazers:
type: string
required:
- date
- stargazers
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_companyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
company_name:
type: string
proportion:
type: string
stargazers:
type: string
required:
- company_name
- stargazers
- proportion
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_countryResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
country_code:
type: string
percentage:
type: string
stargazers:
type: string
required:
- country_code
- stargazers
- percentage
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_countResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
required:
- count
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_per_yearResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
date:
type: string
required:
- count
- date
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
securitySchemes:
basicAuth:
description: Enter your public key for the username field and private key for
the password field
scheme: basic
type: http
info:
description: API Interface for GPT PK Action, response GitHub repo metrics and hackernews
mentions count data
title: GPT-PK
version: 1.0.0
openapi: 3.0.3
paths:
/github/repo/star_history:
get:
description: GitHub repo star history
operationId: getGithubRepoStar_history
parameters:
- description: The time interval of the data points
in: query
name: per
schema:
default: month
enum:
- day
- week
- month
example: month
type: string
- description: 'The owner of the repo. For example: `pingcap`'
in: query
name: owner
required: true
schema:
default: ""
example: ""
type: string
- description: 'The name of the repo. For example: `tidb`'
in: query
name: repo
required: true
schema:
default: ""
example: ""
type: string
- description: The start date of the range
in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- description: The end date of the range
in: query
name: to
schema:
default: "2099-12-31"
example: "2099-12-31"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Internal server error
summary: /github/repo/star_history
tags:
- Default
/github/repo/stargazers_company:
get:
operationId: getGithubRepoStargazers_company
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Internal server error
summary: /github/repo/stargazers_company
tags:
- Default
/github/repo/stargazers_country:
get:
description: github repo stargazers country
operationId: getGithubRepoStargazers_country
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
- in: query
name: exclude_unknown
schema:
default: "true"
example: "true"
type: boolean
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Internal server error
summary: /github/repo/stargazers_country
tags:
- Default
/hackernews/mentions_count:
get:
description: Total counts for keyword in hackernews
operationId: getHackernewsMentions_count
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Internal server error
summary: /hackernews/mentions_count
tags:
- Default
/hackernews/mentions_per_year:
get:
description: keyword mentions per year in hackernews
operationId: getHackernewsMentions_per_year
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Internal server error
summary: /hackernews/mentions_per_year
tags:
- Default
security:
- basicAuth: []
servers:
- url: https://us-west-2.data.tidbcloud.com/api/v1beta/app/dataapp-RfFKcZFu/endpoint

API Key​

When config this action, you should input the following encoded api key in Authentication -> API Key -> Auth Type(Basic)

QzBTQ0VRNzA6MmJjNjAwYzUtODA0Mi00Yzg4LTkxNTgtMTNiNzdkMDY0OGM5
Note!
  • Make sure using this key for GPT's learning, thanks~
  • We will revoke this key after a period of time
Privacy policy​
https://www.pingcap.com/privacy-policy/

Β· 2 min read
PingCAP
ChatGPT

SQL is a powerful language for managing and analyzing data, but it can be difficult to learn for beginners. That's where ChatGPT comes in.

ChatGPT is a large language model trained by OpenAI that can help you learn SQL easily by visualizing the key information in a SQL query. In this blog post, we'll show you how to use ChatGPT to visualize SQL queries using pretty ASCII art diagrams. Let's start with an example. Suppose we want to find the top 10 most popular AI projects on GitHub in the last month. Here's the SQL query that does that:

SELECT
repo_name,
COUNT(*) AS stars
FROM
github_events
WHERE
type = 'WatchEvent'
AND created_at > DATE_SUB(NOW(), INTERVAL 1 MONTH)
AND repo_name LIKE '%AI%'
GROUP BY
repo_name
ORDER BY
stars DESC
LIMIT
10

Now, let's use ChatGPT to visualize this SQL query using pretty ASCII art diagrams. Here's the diagram:

          +-------------------+            
| What to Retrieve? | top 10
+-------------------+
| SELECT
| repo_name,
| COUNT(*) AS stars
v
+-------------------+
| From Where? | GitHub
+-------------------+
| FROM
| github_events
v
+-------------------+
| Filter By: | last month, AI projects, most popular
+-------------------+
| WHERE
| type = 'WatchEvent'
| AND created_at > DATE_SUB(NOW(), INTERVAL 1 MONTH)
| AND repo_name LIKE '%AI%'
v
+-------------------+
| Group By |
+-------------------+
| GROUP BY
| repo_name
v
+-------------------+
| Order By | most popular
+-------------------+
| ORDER BY
| stars DESC
v
+-------------------+
| Limit To 10 | top 10
+-------------------+
| LIMIT
| 10
v

This diagram visually shows the flow of the SQL query, from selecting what to retrieve, to filtering, grouping, ordering, and limiting the results. The arrows make it easy to see the relationship between the key information in the question and the corresponding SQL statements.

By using ChatGPT to visualize SQL queries with pretty ASCII art diagrams, you can learn SQL easily and quickly. The diagrams help you understand the structure of the SQL query, and make it easy to see how the various statements are related. With practice, you'll be able to write your own SQL queries in no time.

In conclusion, if you want to learn SQL easily, try using ChatGPT to visualize SQL queries with pretty ASCII art diagrams. It's a fun and effective way to learn SQL and improve your data management skills.

Β· One min read
PingCAP
ChatGPT

This blog is written with help of ChatGPT.


To get insight of your own dataset without writing sql is easy, follow these steps:

  1. Sign up for a TiDB Cloud account at https://tidbcloud.com/ using your email, Google account, or GitHub account.

  2. Create a free Serverless Tier cluster in the TiDB Cloud web console.

  3. In the TiDB Cloud web console, click the "Import" button and follow the prompts to load a CSV file into your cluster from a local file or from Amazon S3.

    Import Data

  4. Use the web console's SQL editor(Chat2Query) to get insights from your data. But no worry, you don't need to write SQL, you could ask questions about your data in natural language.

    The magic is typing -- your question and press Enter, here is an example:

- - + + \ No newline at end of file diff --git a/blog/tags/core-js/index.html b/blog/tags/core-js/index.html index 931ba06b793..9a5ce43e90d 100644 --- a/blog/tags/core-js/index.html +++ b/blog/tags/core-js/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "Core-js"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/git-hub/index.html b/blog/tags/git-hub/index.html index 8979b96c0f8..115d82bf7d6 100644 --- a/blog/tags/git-hub/index.html +++ b/blog/tags/git-hub/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "GitHub"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/gpts/index.html b/blog/tags/gpts/index.html index 47bd4be9c51..2e672c10972 100644 --- a/blog/tags/gpts/index.html +++ b/blog/tags/gpts/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "gpts"

View All Tags

Β· 18 min read
sykp241095
ChatGPT

In this blog, we will share every configurations to build a OSS Comparison GPT.

GPTs Configurations​

Name​

Open Source Benchmark

Description​

Compare open-source softwares

Instructions​

You are a data analysis expert. 
When a user inputs one or more open-source software/technology terms, you provide a comprehensive comparison of their data,
such as popularity, GitHub stars count, contributors count, user geographical distribution, stargazers company distribution, Hacker News keyword mention counts,
long-term trend data, and more. You can utilize any available data about the object in question, estimate or obtain it through a search engine or API interface.
Currently, you have the following APIs at your disposal:

1. GitHub API for getting repo basic info
2. OSS Insight API for star history and stargazer's distribution
3. Hackernews mentions per_year API
4. OSS Insight star history chart API (show me with a <img> label)
5. OSS Insight API for stargazers company distribution

Here's a step-by-step process:

Identify which API to use based on the data you need.
- you goal is to think more metrics according exist API.
- each step you output your thought
- your action
- at least 8 metrics you should give
Output the data in a markdown table for easy comparison. add your known metrics for more insight. at least 8 metrics.

| Dimension | A | B |
|----------------|-------------|-------------|
| Dimension 1 | Detail A1 | Detail B1 |
| Dimension 2 | Detail A2 | Detail B2 |
| Dimension 3 | Detail A3 | Detail B3 |
| ... | ... | ... |
| Dimension N | Detail AN | Detail BN |

- For star history data, you should generate a line chart using oss insight star history api, at least one chart.
- For stargazers company data, you use markdown table:
| Company | Stargazers Count |
|-----------------|------------------|
| Company A | 100 |
| Company B | 75 |
| Company C | 50 |
| Company D | 30 |
| Other/Unknown | 45 |

Provide insights and analysis based on the collected data. and trending insight.
Be sure to think big! Always give plan and explain what you do.

Let's begin

Plan:
Tools:
Action:
Output:
Deep Insight:

At the end, you should give use some surprise, you can search stackshare.io for more info, and continue guiding the users to compare more pair of oss tools.

Conversation starters​

PyTorch vs TensorFlow
TiDB vs Vitess
React vs Vue
Golang vs Rust-lang

Capabilities​

tip

Make all these three capabilities checked

  • Web Browsing
  • DALL-E Image Generation
  • Code Interpreter

Actions​

Action 1: Config API of next.ossinsight.io for drawing star historical chart​

Schema​
openapi: 3.0.0
info:
title: OSS Insight star history chart API
version: 1.0.0
description: OSS Insight star history chart API.
servers:
- url: https://next.ossinsight.io
paths:
/widgets/official/analyze-repo-stars-history/manifest.json:
get:
operationId: Star History
summary: Retrieve repository star history analysis
description: Fetches the star history and analysis for specified repositories.
parameters:
- name: repo_id
in: query
required: true
description: The ID of the primary repository.
schema:
type: integer
- name: vs_repo_id
in: query
required: true
description: The ID of the repository to compare with.
schema:
type: integer
responses:
'200':
description: Successful response with star history data.
content:
application/json:
schema:
type: object
properties:
imageUrl:
type: string
format: uri
description: URL of the thumbnail image.
title:
type: string
description: Title of the analysis.
description:
type: string
description: Description of the analysis.
'400':
description: Bad request - parameters missing or invalid.
'404':
description: Resource not found.
'500':
description: Internal server error.
Privacy policy​
https://www.pingcap.com/privacy-policy/

Action 2: Config api.github.com for fetching basic info of a repository​

As GitHub API use Personal Access Token and Bearer type of authentication for authentication, you should create one in: https://github.com/settings/tokens, it will be used later.

Schema:​
openapi: 3.0.0
info:
title: GitHub Repository Info API
description: An API for retrieving information about GitHub repositories.
version: 1.0.0
servers:
- url: https://api.github.com
description: GitHub API Server
paths:
/repos/{owner}/{repo}:
get:
summary: Get Repository Info
description: Retrieve information about a GitHub repository.
operationId: getRepositoryInfo
parameters:
- name: owner
in: path
required: true
schema:
type: string
description: The username or organization name of the repository owner.
- name: repo
in: path
required: true
schema:
type: string
description: The name of the repository.
responses:
'200':
description: Successful response with repository information.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
name:
type: string
full_name:
type: string
owner:
type: object
properties:
login:
type: string
id:
type: integer
avatar_url:
type: string
html_url:
type: string
private:
type: boolean
description:
type: string
fork:
type: boolean
url:
type: string
html_url:
type: string
language:
type: string
forks_count:
type: integer
stargazers_count:
type: integer
watchers_count:
type: integer
size:
type: integer
default_branch:
type: string
open_issues_count:
type: integer
topics:
type: array
items:
type: string
has_issues:
type: boolean
has_projects:
type: boolean
has_wiki:
type: boolean
has_pages:
type: boolean
has_downloads:
type: boolean
has_discussions:
type: boolean
archived:
type: boolean
disabled:
type: boolean
visibility:
type: string
pushed_at:
type: string
format: date-time
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
license:
type: object
properties:
key:
type: string
name:
type: string
spdx_id:
type: string
url:
type: string
Privacy policy​
https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement

Action 3: Stargazer's geo & company distribution provided by TiDB Serverless Data Service​

Schema URL to import​
https://us-west-2.prod.aws.tidbcloud.com/api/v1/dataservices/external/appexport/openapi?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBpZCI6ImRhdGFhcHAtUmZGS2NaRnUiLCJjcmVhdGVyIjoiaHVvaGFvQHBpbmdjYXAuY29tIiwic2VuY2UiOiJvcGVuYXBpIn0.xqu-ZCPHozisIHWTD5XM_5t2JWOGVpAejcQeWiTH_Mw

or you can use the following details schema.

Show detailed API schema

components:
schemas:
getGithubRepoStar_historyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
date:
type: string
stargazers:
type: string
required:
- date
- stargazers
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_companyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
company_name:
type: string
proportion:
type: string
stargazers:
type: string
required:
- company_name
- stargazers
- proportion
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_countryResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
country_code:
type: string
percentage:
type: string
stargazers:
type: string
required:
- country_code
- stargazers
- percentage
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_countResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
required:
- count
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_per_yearResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
date:
type: string
required:
- count
- date
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
securitySchemes:
basicAuth:
description: Enter your public key for the username field and private key for
the password field
scheme: basic
type: http
info:
description: API Interface for GPT PK Action, response GitHub repo metrics and hackernews
mentions count data
title: GPT-PK
version: 1.0.0
openapi: 3.0.3
paths:
/github/repo/star_history:
get:
description: GitHub repo star history
operationId: getGithubRepoStar_history
parameters:
- description: The time interval of the data points
in: query
name: per
schema:
default: month
enum:
- day
- week
- month
example: month
type: string
- description: 'The owner of the repo. For example: `pingcap`'
in: query
name: owner
required: true
schema:
default: ""
example: ""
type: string
- description: 'The name of the repo. For example: `tidb`'
in: query
name: repo
required: true
schema:
default: ""
example: ""
type: string
- description: The start date of the range
in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- description: The end date of the range
in: query
name: to
schema:
default: "2099-12-31"
example: "2099-12-31"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Internal server error
summary: /github/repo/star_history
tags:
- Default
/github/repo/stargazers_company:
get:
operationId: getGithubRepoStargazers_company
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Internal server error
summary: /github/repo/stargazers_company
tags:
- Default
/github/repo/stargazers_country:
get:
description: github repo stargazers country
operationId: getGithubRepoStargazers_country
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
- in: query
name: exclude_unknown
schema:
default: "true"
example: "true"
type: boolean
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Internal server error
summary: /github/repo/stargazers_country
tags:
- Default
/hackernews/mentions_count:
get:
description: Total counts for keyword in hackernews
operationId: getHackernewsMentions_count
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Internal server error
summary: /hackernews/mentions_count
tags:
- Default
/hackernews/mentions_per_year:
get:
description: keyword mentions per year in hackernews
operationId: getHackernewsMentions_per_year
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Internal server error
summary: /hackernews/mentions_per_year
tags:
- Default
security:
- basicAuth: []
servers:
- url: https://us-west-2.data.tidbcloud.com/api/v1beta/app/dataapp-RfFKcZFu/endpoint

API Key​

When config this action, you should input the following encoded api key in Authentication -> API Key -> Auth Type(Basic)

QzBTQ0VRNzA6MmJjNjAwYzUtODA0Mi00Yzg4LTkxNTgtMTNiNzdkMDY0OGM5
Note!
  • Make sure using this key for GPT's learning, thanks~
  • We will revoke this key after a period of time
Privacy policy​
https://www.pingcap.com/privacy-policy/
- - + + \ No newline at end of file diff --git a/blog/tags/homebrew/index.html b/blog/tags/homebrew/index.html index 013844b682e..f545a06053a 100644 --- a/blog/tags/homebrew/index.html +++ b/blog/tags/homebrew/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "Homebrew"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/image-magick/index.html b/blog/tags/image-magick/index.html index 2ed59f9ead9..23aa9853d6e 100644 --- a/blog/tags/image-magick/index.html +++ b/blog/tags/image-magick/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "ImageMagick"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/index.html b/blog/tags/index.html index 401c6f8594a..7bc6b06ca77 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -21,13 +21,13 @@ - - + +
- - + + \ No newline at end of file diff --git a/blog/tags/insight/index.html b/blog/tags/insight/index.html index f1a4c36d9b3..a6b903f5d11 100644 --- a/blog/tags/insight/index.html +++ b/blog/tags/insight/index.html @@ -21,13 +21,13 @@ - - + +

7 posts tagged with "insight"

View All Tags

Β· 10 min read
Cheese Wong
Jagger
hooopo
Vita Lu
Mia Zhou
Caitin Chen

We analyzed more than 5,000,000,000 rows of GitHub event data and got the results here. In this report, you'll get interesting findings about open source software on GitHub in 2022, including:

Top languages in the open source world over the past four years​

This chart ranks programming languages yearly from 2019 to 2022 based on the ratio of new repositories using these languages to all new repositories.


top-programming-languages
Top programming languages

Insights:

  • Python surpassed Java and moved to #3 in 2021.
  • TypeScript rose from #10 to #6, and SCSS rose from #39 to #19. The rise of SCSS shows that open source projects that value front-end expressiveness are gradually gaining popularity.
  • The two languages Ruby and R dropped a lot in ranking over the years.

Rankings of back-end programming languages​

The programming languages used in a pull request reflect which languages developers used. To find out the most popular back-end programming languages, we queried the distribution of programming languages by new pull requests from 2019 to 2022 and took the top 10 for each year.


top-back-end-programming-languages
Top back-end programming languages

The chart data indicates:

  • Python and Java rank #1 and #2 respectively. In 2021, Go overtook Ruby to rank #3 in 2021.
  • Rust has been trending upward for several years, ranking #9 in 2022.

Geographic distribution of developer behavior​

We queried the number of various events that occurred throughout the world from January 1 to September 30, 2022 and identified the top 10 countries by the number of events triggered by developers in these countries. The chart displays the proportion of each event type by country or region.


geographic-distribution-of-developer-behavior
Geographic distribution of developer behavior

The chart shows that:

  • The events triggered in the top 10 countries account for about 23.27% of all GitHub events. However, the number of developers from these countries is only 10%.
  • US developers are most likely to review code, with a PullRequestReviewEvent share of 6.15%.
  • Korean developers prefer pushing directly to repositories (PushEvent).
  • Japanese developers are most likely to submit code via pull requests, with a PullRequestEvent share of 10%.
  • German developers like to open issues and comments, with IssueEvent and CommentEvent accounting for 4.18% and 12.66% respectively.
  • Chinese developers like to star repositories, with 17.23% for WatchEvent and 2.7% for ForkEvent.

Notes:

  • In 2022, 17,062,081 developers had behavioral events, and 2,923,523 of them have the Location field, so the sampling rate is 17.13%
  • GitHub identifies 15 types of events. We only show commonly used types. Comment Event includes CommitCommentEvent, IssueCommentEvent, and PullRequestReviewCommentEvent. Others includes MemberEvent, CreateEvent, ReleaseEvent, GollumEvent, and PublicEvent.

Developer behavior distribution on weekdays and weekends​

We queried the distribution of each event type over the seven days of the week.


developer-behavior-distribution-on-weekdays-and-weekends
Developer behavior distribution on weekdays and weekends

Insights:

  • Developers are most active on weekdays, with 77.73% of events occurring on weekdays.

The distribution of specific events​

developer-behavior-distribution-from-monday-to-sunday
Developer behavior distribution from Monday to Sunday

Insights:

  • Pull Request Event, Pull Request Review Event, and Issues Event all have the highest percentage on Tuesdays, while the lowest percentage is on the weekends.
  • The amount of Push Event, Watch Event, and Fork Event activities are similar on weekdays and weekends, while the Pull Request Review Event is the most different. Watch Event and Fork Event are more personal behaviors, Pull Request Review Events are more work behaviors, and Push Events are used more in personal projects.

Each year, technology introduces new buzz words. Can we gain insight into technical trends through the open source repositories behind the hot words? We investigated five technical areas: Low Code, Web3, GitHub Actions, Database, and AI.

We queried the number of open source repositories associated with each technical area, as well as the percentage of active repositories in 2022.


activity-levels-of-popular-topics
Activity levels of popular topics

This figure shows that open source repositories in the Low Code topic are the most active, with 76.3% being active in 2022, followed by Web3 with 63.85%.

We queried the following items for each technical area from 2015 to 2022:

  • The annual increment of repositories
  • The annual increment of collaborative events
  • The number of developers participating in collaborative events
  • The annual increment of stars

Then, we calculated the growth rate for each year which can reflect new entrants, developer engagement in this technical field, and the industry's interest in this area. For 2022, we compare its first nine months with the first nine months of 2021.


low-code-repositories
Low code repositories

We can see that 2020 is the peak period of project development, with a 313.43% increase in new repositories and a 157.06% increase in developer collaborative events. The industry's interest increased most significantly in 2021, reaching 184.82%. In 2022, the year-on-year growth data shows that the number of new repositories decreased (-26.21%), but developer engagement and industry interest are still rising.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


web3-repositories
Web3 repositories

Whether it is the creation of new repositories, developers, or the interest of the industry, the Web3 ecosystem has grown rapidly in recent years, and the growth rate of new repositories peaked at 322.65% in 2021.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


github-actions-repositories
GitHub Actions repositories

The annual increase of GitHub Actions repositories has been declining, but developer engagement and the industry's interest are still increasing slightly.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


database-repositories
Database repositories

As an infrastructure project, the Database project's threshold is high. Compared with projects in other fields, a database project has a stable growth rate.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


ai-repositories
AI repositories

After two years of high growth in 2016 and 2017, open source projects in AI have been growing gradually slowly.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories

The number of stars is the most visible indication of the popularity of open source projects. We looked at the 50 projects that received the most stars from January 1 to September 30, 2022. We found that:


most-popular-repositories-2022
The most popular repositories in 2022

* Time range: 2022.01.01-2022.09.30, excluding bot events

The most active repositories over the past four years​

Here we looked up the top 20 active repositories per year from 2019 to 2022 and counted the total number of listings per repository. The activity of the repository is ranked according to the number of developers participating in collaborative events.

Repository NameCount
microsoft/vscode4
flutter/flutter4
MicrosoftDocs/azure-docs4
firstcontributions/first-contributions4
Facebook/react-native4
pytorch/pytorch4
microsoft/TypeScript4
tensorflow/tensorflow3
kubernetes/kubernetes3
DefinitelyTyped/DefinitelyTyped3
golang/go3
google/it-cert-automation-practice3
home-assistant/core3
microsoft/PowerToys3
microsoft/WSL3

Insights:

  • Microsoft has the most repositories on the list, with five.

  • tensorflow/tensorflow and kubernetes/kubernetes both dropped out of the top 20 after three consecutive years on the list (2019 to 2021).

  • New to the 2022 list are archway-network/testnets, element-fi/elf-council-frontend, solana-labs/token-list, education/GitHubGraduation-2022, taozhiyu/TyProAction, NixOS/nixpkgs, rust-lang/rust.

  • Time range: 2022.01.01-2022.09.30, excluding bot events

Who gave the most stars in 2022​

We queried the developers who gave the most stars in 2022, took the top 20, and filtered out accounts of suspected bots. If a developer's number of star events divided by the number of starred repositories is equal to or greater than 2, we suspect this user to be a bot.


developers-most-stars
Developers who gave the most stars

We found that until September 30, 2022, the developer who starred the most repositories had starred a total of 37,228 repositories, an average of 136 repositories per day.

* Time range: 2022.01.01-2022.09.30, excluding bot events

The most active developers since 2011​

We queried the top 20 most active developers per year since 2011. This time we didn't filter out bot events.


most-active-developers
The most active developers

We found that the percentage of bots is becoming larger and larger. Bots started to overtake humans in 2013 and have reached over 95% in 2022.

Appendix​

Term description​

  • GitHub events: GitHub events are triggered by user actions, like starring a repository or pushing code.
  • Time range: In this report, the data collection range of 2022 is from January 1, 2022 to September 30, 2022. When comparing data of 2022 with another year, we use year-on-year analysis.
  • Bot events: Bot-triggered events account for a growing percentage of GitHub events. However, these events are not the focus of this report. We filtered out most of the bot-initiated events by matching regular expressions.

How we classify technical fields by topics​

We do exact matching and fuzzy matching based on the repository topic. Exact matching means that the repository topics have a topic that exactly matches the word, and fuzzy matching means that the repository topics have a topic that contains the word.

TopicExact matchingFuzzy matching
GitHub Actionsactionsgithub-action, gh-action
Low Codelow-code, lowcode, nocode, no-code
Web3web3
Databasedbdatabase, databases
nosql, newsql, sql
mongodb,neo4j
AIai, aiops, aiotartificial-intelligence, machine-intelligence
computer-vision, image-processing, opencv, computervision, imageprocessing
voice-recognition, speech-recognition, voicerecognition, speechrecognition, speech-processing
machinelearning, machine-learning
deeplearning, deep-learning
transferlearning, transfer-learning
mlops
text-to-speech, tts, speech-synthesis, voice-synthesis
robot, robotics
sentiment-analysis
natural-language-processing, nlp
language-model, text-classification, question-answering, knowledge-graph, knowledge-base
gan, gans, generative-adversarial-network, generative-adversarial-networks
neural-network, neuralnetwork, neuralnetworks, neural-network, dnn
tensorflow
PyTorch
huggingface
transformers
seq2seq, sequence-to-sequence
data-analysis, data-science
object-detection, objectdetection
data-augmentation
classification
action-recognition

Β· 5 min read
Mia Zhou
Wink Yao
Caitin Chen

The OSS Insight website displays the data changes of GitHub events in real time. GitHub events are activities triggered by user actions on GitHub, for example, commenting and forking a repository. In nearly seven weeks, GitHub events increased by about 150 million, from 4.7 billion to 4.85 billion. GitHub events are booming!

This post dives deeply into GitHub event trending, why GitHub events are surging, and whether GitHub's architecture can handle the increasing load.

Historical data analysis​

The OSS Insight database includes all the GitHub events since 2011. When we plot the number of events by year, we can see that since 2018 they have been increasing rapidly.


GitHub event trending

GitHub event trending

The figure below shows how long it takes to grow each billion events in GitHub.


The time to reach a billion GitHub events

The time to reach a billion GitHub events

It's taking less and less for GitHub to generate 1 billion events. It took more than 6 years for the first billion events and only 13 months for the last billion!

The secret behind the exponential growth of GitHub events​

GitHub Actions was released in October 2018. Since August 2019, it has supported continuous integration and continuous delivery (CI/CD), and it has been free for open source projects. Therefore, projects hosted on GitHub can automate their own development workflows, and a large number of automation-related bot applications have appeared on GitHub Marketplace. Could GitHub events' data growth be related to these?

To find the answer, we divided the events into data from humans and data from bots and plotted them with the following histogram. The blue columns represent the human data, and the yellow columns represent the bot data.


Bot events vs. human events

Bot events vs. human events

As you can see, the proportion of GitHub bot events has increased each year. In 2015, they were only 1.23% of all events. In early July of this year, they reached 13.2%. To show the data changes of bot events more clearly, we made the following line chart.


Bot event trending

Bot event trending

This figure shows that since 2019, bot events have been grown faster than before. As Mini256, a TiDB community contributor said in Love, Code, and Robot β€” Explore robots in the world of code:

For now, rough statistics find that there are more than 95,620 bots on GitHub. The number doesn't seem like so much, but wait...

These 95 thousand bot accounts generated 603 million events. These events account for 12.82% of all public events on GitHub, and these GitHub robots have served over 18 million open source repositories.

Bots are playing an increasingly important role on GitHub. Many projects are handing over automated work to bots. We expect that GitHub events will grow faster in the future.

When will GitHub reach 10 billion events?​

How many GitHub events will there be by the end of 2022? We fit predictions to GitHub historical data.


Human event fit (left) vs. bot event fit (right)

Human event fit (left) vs. bot event fit (right)

It's estimated that by the end of 2022, GitHub events will reach 5.36 billion.


github-event-prediction
GitHub event prediction

According to this prediction, GitHub events will exceed 10 billion in February 2025.


gitub-events-exceed-10-billion
GitHub events will exceed 10 billion in 2025

Can MySQL sharding support such a huge amount of data?​

GitHub uses MySQL as the main storage for all non-git warehouse data. The rapid growth of data volume poses a great challenge to GitHub's high availability. In March 2022, GitHub had 3 service disruptions, each lasting 2-5 hours. The official investigation report shows the MySQL database caused the outages. During peak load periods, the GitHub mysql1 database (the main database cluster in GitHub) load increased. Therefore, database access reached the maximum number of connections. This affected the performance of many GitHub services and features.

In fact, over the past few years GitHub has optimized its databases. For example, it added clusters to support platform growth and partitioned the main database. But these improvements did not fundamentally solve the problem. In the near future, GitHub events will exceed 5 billion, or even 10 billion. Can MySQL sharding support such data surge?

Data sources​

All the analysis data in this article comes from OSS Insight, a tool based on TiDB to analyze and gain insights into GitHub events data.

You can use it to easily get insights about developers and repositories based on billions of GitHub events. You can also get the latest and historical rankings and trends in technical fields.


The OSS Insight website

The OSS Insight website

Β· 3 min read
Jagger

In this chapter, we will share with you some of the top JavaScript Framework repos(JSF repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Note:

  1. You can move your cursor onto any of the repository bars/lines on the chart and get the exact number.
  2. The SQL commands above each chart are what we use on our TiDB Cloud to get the analytical results. Try those SQL commands by yourselves on TiDB Cloud with this 10-minute tutorial.

Star history of top JavaScript Framework repos since 2011​

The number of stars is often thought of as a measure of whether a GitHub repository is popular or not. We sort all JavaScript framework repositories from GitHub by the total number of historical stars since 2011. For visualizing the results more intuitively, we show the top 10 open source databases by using an interactive line chart.

Β· 2 min read
Jagger

In this chapter, we will share with you some of the top low-code development tools repos (LCDT repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Β· 6 min read
Jagger

On this page, we will share with you many deep insights into open source databases, such as the database popularity, database contributors, coding vitality, community feedback and so on.

We’ll also share the SQL commands that generate all these analytical results above each chart, so you can use them on your own on TiDB Cloud following this 10-minute tutorial.

Β· 2 min read
Jagger

In this chapter, we will share with you some of the top programming language repos (PL repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

Β· 3 min read
Jagger

In this chapter, we will share with you some of the top Web Framework repos (WF repos) on GitHub in 2021 measured by different metrics including the number of stars, PRs, contributors, countries, regions and so on.

- - + + \ No newline at end of file diff --git a/blog/tags/maintainer/index.html b/blog/tags/maintainer/index.html index 55f9e0382c5..ad135952e41 100644 --- a/blog/tags/maintainer/index.html +++ b/blog/tags/maintainer/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "Maintainer"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/my-cli/index.html b/blog/tags/my-cli/index.html index 18331ae6934..7d616574243 100644 --- a/blog/tags/my-cli/index.html +++ b/blog/tags/my-cli/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "MyCLI"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/open-source/index.html b/blog/tags/open-source/index.html index e9ce8d80793..f7911201911 100644 --- a/blog/tags/open-source/index.html +++ b/blog/tags/open-source/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "Open Source"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/open-ssl/index.html b/blog/tags/open-ssl/index.html index 6349e937295..342075b283d 100644 --- a/blog/tags/open-ssl/index.html +++ b/blog/tags/open-ssl/index.html @@ -21,13 +21,13 @@ - - + +

One post tagged with "OpenSSL"

View All Tags

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/tags/openai/index.html b/blog/tags/openai/index.html index e0d5ab87b7c..aa9352b14e1 100644 --- a/blog/tags/openai/index.html +++ b/blog/tags/openai/index.html @@ -21,14 +21,14 @@ - - + +

3 posts tagged with "openai"

View All Tags

Β· 18 min read
sykp241095
ChatGPT

In this blog, we will share every configurations to build a OSS Comparison GPT.

GPTs Configurations​

Name​

Open Source Benchmark

Description​

Compare open-source softwares

Instructions​

You are a data analysis expert. 
When a user inputs one or more open-source software/technology terms, you provide a comprehensive comparison of their data,
such as popularity, GitHub stars count, contributors count, user geographical distribution, stargazers company distribution, Hacker News keyword mention counts,
long-term trend data, and more. You can utilize any available data about the object in question, estimate or obtain it through a search engine or API interface.
Currently, you have the following APIs at your disposal:

1. GitHub API for getting repo basic info
2. OSS Insight API for star history and stargazer's distribution
3. Hackernews mentions per_year API
4. OSS Insight star history chart API (show me with a <img> label)
5. OSS Insight API for stargazers company distribution

Here's a step-by-step process:

Identify which API to use based on the data you need.
- you goal is to think more metrics according exist API.
- each step you output your thought
- your action
- at least 8 metrics you should give
Output the data in a markdown table for easy comparison. add your known metrics for more insight. at least 8 metrics.

| Dimension | A | B |
|----------------|-------------|-------------|
| Dimension 1 | Detail A1 | Detail B1 |
| Dimension 2 | Detail A2 | Detail B2 |
| Dimension 3 | Detail A3 | Detail B3 |
| ... | ... | ... |
| Dimension N | Detail AN | Detail BN |

- For star history data, you should generate a line chart using oss insight star history api, at least one chart.
- For stargazers company data, you use markdown table:
| Company | Stargazers Count |
|-----------------|------------------|
| Company A | 100 |
| Company B | 75 |
| Company C | 50 |
| Company D | 30 |
| Other/Unknown | 45 |

Provide insights and analysis based on the collected data. and trending insight.
Be sure to think big! Always give plan and explain what you do.

Let's begin

Plan:
Tools:
Action:
Output:
Deep Insight:

At the end, you should give use some surprise, you can search stackshare.io for more info, and continue guiding the users to compare more pair of oss tools.

Conversation starters​

PyTorch vs TensorFlow
TiDB vs Vitess
React vs Vue
Golang vs Rust-lang

Capabilities​

tip

Make all these three capabilities checked

  • Web Browsing
  • DALL-E Image Generation
  • Code Interpreter

Actions​

Action 1: Config API of next.ossinsight.io for drawing star historical chart​

Schema​
openapi: 3.0.0
info:
title: OSS Insight star history chart API
version: 1.0.0
description: OSS Insight star history chart API.
servers:
- url: https://next.ossinsight.io
paths:
/widgets/official/analyze-repo-stars-history/manifest.json:
get:
operationId: Star History
summary: Retrieve repository star history analysis
description: Fetches the star history and analysis for specified repositories.
parameters:
- name: repo_id
in: query
required: true
description: The ID of the primary repository.
schema:
type: integer
- name: vs_repo_id
in: query
required: true
description: The ID of the repository to compare with.
schema:
type: integer
responses:
'200':
description: Successful response with star history data.
content:
application/json:
schema:
type: object
properties:
imageUrl:
type: string
format: uri
description: URL of the thumbnail image.
title:
type: string
description: Title of the analysis.
description:
type: string
description: Description of the analysis.
'400':
description: Bad request - parameters missing or invalid.
'404':
description: Resource not found.
'500':
description: Internal server error.
Privacy policy​
https://www.pingcap.com/privacy-policy/

Action 2: Config api.github.com for fetching basic info of a repository​

As GitHub API use Personal Access Token and Bearer type of authentication for authentication, you should create one in: https://github.com/settings/tokens, it will be used later.

Schema:​
openapi: 3.0.0
info:
title: GitHub Repository Info API
description: An API for retrieving information about GitHub repositories.
version: 1.0.0
servers:
- url: https://api.github.com
description: GitHub API Server
paths:
/repos/{owner}/{repo}:
get:
summary: Get Repository Info
description: Retrieve information about a GitHub repository.
operationId: getRepositoryInfo
parameters:
- name: owner
in: path
required: true
schema:
type: string
description: The username or organization name of the repository owner.
- name: repo
in: path
required: true
schema:
type: string
description: The name of the repository.
responses:
'200':
description: Successful response with repository information.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
name:
type: string
full_name:
type: string
owner:
type: object
properties:
login:
type: string
id:
type: integer
avatar_url:
type: string
html_url:
type: string
private:
type: boolean
description:
type: string
fork:
type: boolean
url:
type: string
html_url:
type: string
language:
type: string
forks_count:
type: integer
stargazers_count:
type: integer
watchers_count:
type: integer
size:
type: integer
default_branch:
type: string
open_issues_count:
type: integer
topics:
type: array
items:
type: string
has_issues:
type: boolean
has_projects:
type: boolean
has_wiki:
type: boolean
has_pages:
type: boolean
has_downloads:
type: boolean
has_discussions:
type: boolean
archived:
type: boolean
disabled:
type: boolean
visibility:
type: string
pushed_at:
type: string
format: date-time
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
license:
type: object
properties:
key:
type: string
name:
type: string
spdx_id:
type: string
url:
type: string
Privacy policy​
https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement

Action 3: Stargazer's geo & company distribution provided by TiDB Serverless Data Service​

Schema URL to import​
https://us-west-2.prod.aws.tidbcloud.com/api/v1/dataservices/external/appexport/openapi?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBpZCI6ImRhdGFhcHAtUmZGS2NaRnUiLCJjcmVhdGVyIjoiaHVvaGFvQHBpbmdjYXAuY29tIiwic2VuY2UiOiJvcGVuYXBpIn0.xqu-ZCPHozisIHWTD5XM_5t2JWOGVpAejcQeWiTH_Mw

or you can use the following details schema.

Show detailed API schema

components:
schemas:
getGithubRepoStar_historyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
date:
type: string
stargazers:
type: string
required:
- date
- stargazers
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_companyResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
company_name:
type: string
proportion:
type: string
stargazers:
type: string
required:
- company_name
- stargazers
- proportion
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getGithubRepoStargazers_countryResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
country_code:
type: string
percentage:
type: string
stargazers:
type: string
required:
- country_code
- stargazers
- percentage
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_countResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
required:
- count
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
getHackernewsMentions_per_yearResponse:
properties:
data:
properties:
columns:
items:
properties:
col:
type: string
data_type:
type: string
nullable:
type: boolean
type: object
type: array
result:
properties:
code:
format: int64
type: integer
end_ms:
format: int64
type: integer
latency:
type: string
limit:
maximum: 1.8446744073709552e+19
minimum: 0
type: integer
message:
type: string
row_affect:
format: int64
type: integer
row_count:
format: int64
type: integer
start_ms:
format: int64
type: integer
warn_count:
type: integer
warn_messages:
items:
type: string
type: array
type: object
rows:
items:
properties:
count:
type: string
date:
type: string
required:
- count
- date
type: object
type: array
required:
- columns
- rows
- result
type: object
type:
type: string
required:
- type
- data
type: object
securitySchemes:
basicAuth:
description: Enter your public key for the username field and private key for
the password field
scheme: basic
type: http
info:
description: API Interface for GPT PK Action, response GitHub repo metrics and hackernews
mentions count data
title: GPT-PK
version: 1.0.0
openapi: 3.0.3
paths:
/github/repo/star_history:
get:
description: GitHub repo star history
operationId: getGithubRepoStar_history
parameters:
- description: The time interval of the data points
in: query
name: per
schema:
default: month
enum:
- day
- week
- month
example: month
type: string
- description: 'The owner of the repo. For example: `pingcap`'
in: query
name: owner
required: true
schema:
default: ""
example: ""
type: string
- description: 'The name of the repo. For example: `tidb`'
in: query
name: repo
required: true
schema:
default: ""
example: ""
type: string
- description: The start date of the range
in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- description: The end date of the range
in: query
name: to
schema:
default: "2099-12-31"
example: "2099-12-31"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStar_historyResponse'
description: Internal server error
summary: /github/repo/star_history
tags:
- Default
/github/repo/stargazers_company:
get:
operationId: getGithubRepoStargazers_company
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_companyResponse'
description: Internal server error
summary: /github/repo/stargazers_company
tags:
- Default
/github/repo/stargazers_country:
get:
description: github repo stargazers country
operationId: getGithubRepoStargazers_country
parameters:
- in: query
name: owner
schema:
default: ""
example: ""
type: string
- in: query
name: repo
schema:
default: ""
example: ""
type: string
- in: query
name: from
schema:
default: "2000-01-01"
example: "2000-01-01"
type: string
- in: query
name: to
schema:
default: "2099-01-01"
example: "2099-01-01"
type: string
- in: query
name: exclude_unknown
schema:
default: "true"
example: "true"
type: boolean
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getGithubRepoStargazers_countryResponse'
description: Internal server error
summary: /github/repo/stargazers_country
tags:
- Default
/hackernews/mentions_count:
get:
description: Total counts for keyword in hackernews
operationId: getHackernewsMentions_count
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_countResponse'
description: Internal server error
summary: /hackernews/mentions_count
tags:
- Default
/hackernews/mentions_per_year:
get:
description: keyword mentions per year in hackernews
operationId: getHackernewsMentions_per_year
parameters:
- in: query
name: keyword
schema:
default: ""
example: ""
type: string
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: OK
"400":
content:
application/json:
example:
data:
columns: []
result:
code: 400
end_ms: 0
latency: ""
limit: 0
message: param check failed! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Bad request
"401":
content:
application/json:
example:
data:
columns: []
result:
code: 401
end_ms: 0
latency: ""
limit: 0
message: auth failed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Unauthorized request
"404":
content:
application/json:
example:
data:
columns: []
result:
code: 404
end_ms: 0
latency: ""
limit: 0
message: endpoint not found
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested resource was not found
"405":
content:
application/json:
example:
data:
columns: []
result:
code: 405
end_ms: 0
latency: ""
limit: 0
message: method not allowed
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The requested method is not supported for the specified resource
"408":
content:
application/json:
example:
data:
columns: []
result:
code: 408
end_ms: 0
latency: ""
limit: 0
message: request timeout
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The server timed out waiting for the request
"429":
content:
application/json:
example:
data:
columns: []
result:
code: 429
end_ms: 0
latency: ""
limit: 0
message: 'The request exceeded the limit of 100 times per apikey
per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519'
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: The user has sent too many requests in a given amount of time
"500":
content:
application/json:
example:
data:
columns: []
result:
code: 500
end_ms: 0
latency: ""
limit: 0
message: internal error! {detailed error}
row_affect: 0
row_count: 0
start_ms: 0
rows: []
type: sql_endpoint
schema:
$ref: '#/components/schemas/getHackernewsMentions_per_yearResponse'
description: Internal server error
summary: /hackernews/mentions_per_year
tags:
- Default
security:
- basicAuth: []
servers:
- url: https://us-west-2.data.tidbcloud.com/api/v1beta/app/dataapp-RfFKcZFu/endpoint

API Key​

When config this action, you should input the following encoded api key in Authentication -> API Key -> Auth Type(Basic)

QzBTQ0VRNzA6MmJjNjAwYzUtODA0Mi00Yzg4LTkxNTgtMTNiNzdkMDY0OGM5
Note!
  • Make sure using this key for GPT's learning, thanks~
  • We will revoke this key after a period of time
Privacy policy​
https://www.pingcap.com/privacy-policy/

Β· 2 min read
PingCAP
ChatGPT

SQL is a powerful language for managing and analyzing data, but it can be difficult to learn for beginners. That's where ChatGPT comes in.

ChatGPT is a large language model trained by OpenAI that can help you learn SQL easily by visualizing the key information in a SQL query. In this blog post, we'll show you how to use ChatGPT to visualize SQL queries using pretty ASCII art diagrams. Let's start with an example. Suppose we want to find the top 10 most popular AI projects on GitHub in the last month. Here's the SQL query that does that:

SELECT
repo_name,
COUNT(*) AS stars
FROM
github_events
WHERE
type = 'WatchEvent'
AND created_at > DATE_SUB(NOW(), INTERVAL 1 MONTH)
AND repo_name LIKE '%AI%'
GROUP BY
repo_name
ORDER BY
stars DESC
LIMIT
10

Now, let's use ChatGPT to visualize this SQL query using pretty ASCII art diagrams. Here's the diagram:

          +-------------------+            
| What to Retrieve? | top 10
+-------------------+
| SELECT
| repo_name,
| COUNT(*) AS stars
v
+-------------------+
| From Where? | GitHub
+-------------------+
| FROM
| github_events
v
+-------------------+
| Filter By: | last month, AI projects, most popular
+-------------------+
| WHERE
| type = 'WatchEvent'
| AND created_at > DATE_SUB(NOW(), INTERVAL 1 MONTH)
| AND repo_name LIKE '%AI%'
v
+-------------------+
| Group By |
+-------------------+
| GROUP BY
| repo_name
v
+-------------------+
| Order By | most popular
+-------------------+
| ORDER BY
| stars DESC
v
+-------------------+
| Limit To 10 | top 10
+-------------------+
| LIMIT
| 10
v

This diagram visually shows the flow of the SQL query, from selecting what to retrieve, to filtering, grouping, ordering, and limiting the results. The arrows make it easy to see the relationship between the key information in the question and the corresponding SQL statements.

By using ChatGPT to visualize SQL queries with pretty ASCII art diagrams, you can learn SQL easily and quickly. The diagrams help you understand the structure of the SQL query, and make it easy to see how the various statements are related. With practice, you'll be able to write your own SQL queries in no time.

In conclusion, if you want to learn SQL easily, try using ChatGPT to visualize SQL queries with pretty ASCII art diagrams. It's a fun and effective way to learn SQL and improve your data management skills.

Β· One min read
PingCAP
ChatGPT

This blog is written with help of ChatGPT.


To get insight of your own dataset without writing sql is easy, follow these steps:

  1. Sign up for a TiDB Cloud account at https://tidbcloud.com/ using your email, Google account, or GitHub account.

  2. Create a free Serverless Tier cluster in the TiDB Cloud web console.

  3. In the TiDB Cloud web console, click the "Import" button and follow the prompts to load a CSV file into your cluster from a local file or from Amazon S3.

    Import Data

  4. Use the web console's SQL editor(Chat2Query) to get insights from your data. But no worry, you don't need to write SQL, you could ask questions about your data in natural language.

    The magic is typing -- your question and press Enter, here is an example:

- - + + \ No newline at end of file diff --git a/blog/tags/tidb/index.html b/blog/tags/tidb/index.html index d3d251876d9..2920f8d6a0a 100644 --- a/blog/tags/tidb/index.html +++ b/blog/tags/tidb/index.html @@ -21,14 +21,14 @@ - - + +

2 posts tagged with "tidb"

View All Tags

Β· 10 min read
Wink Yao
Fendy Feng

In early January 2022, Max, our CEO, a big fan of open-source, asked if my team could build a small tool to help us understand all the open-source projects on GitHub; and, that if everything worked well, we should open the API to help open source developers to build better insights. In fact, GitHub continuously publishes the public events in its open-source world through the open API. (Thank you and well done! Github). We can certainly learn a lot from the data!

I was excited about this project until Max said: β€œYou’ve only got one week.” Well, the boss is the boss! Although time was tight and we were faced with multiple head-aching problems, I decided to take up this challenge.

Headache 1: we need both historical and real-time data.​

After some quick research, we found GHArchive, an open-source project that collects and archives all GitHub data from 2011 and updates it hourly. By the way, a lot of open-source analytical tools such as CNCF's Devstats rely on GH Archive, too.

Thanks to GH Archive, we found the data source.

But there's another problem: hourly data is good, but not good enough. We wanted our data to be updated in real timeβ€”or at least near real time. We decided to directly use the GitHub event API, which collects all events that have occurred within the past hour.

By combining the data from the GH Archive and the GitHub event API, we can gain streaming, real-time event updates.


GitHub event updates

GitHub event updates

Headache 2: the data is huge!​

After we decompressed all the data from GH Archive, we found there were more than 4.6 billion rows of GitHub events. That’s a lot of data! We also noticed that about 300,000 rows were generated and updated each hour.


The data volume of GitHub events occurred after 2011

The data volume of GitHub events occurred after 2011

The database solution would be tricky here. Our goal is to build an application that provides real-time data insights based on a continuously growing dataset. So, scalability is a must. NoSQL databases can provide good scalability, but what follows is how to handle complex analytical queries. Unfortunately, NoSQL databases are not good at that.


Scalability vs SQL

Another option is to use an OLAP database such as ClickHouse. ClickHouse can handle the analytical workload very well, but it is not designed for serving online traffic. If we chose it, we would need another database for the online traffic.


OLAP vs Online Serving

What about sharding the database and then building an extract, transform, load (ETL) pipeline to synchronize the new events to a data warehouse? This sounds workable.


How a RDBMS handles the GitHub data

How a RDBMS handles the GitHub data

According to our product manager's (PM’s) plan, we needed to do some repo-specific or user-specific analysis. Although the total data volume was huge, the number of events was not too large for a single project or user. This meant using the secondary indexes in RDBMS would be a good idea. But, if we decided to use the above architecture, we had to be careful in selecting the database sharding key. For example, if we use user_id as the sharding key, then queries based on repo_id will be very tricky.

Another requirement from the PM was that our insight tool should provide OpenAPI, which meant we would have unpredictable concurrent traffic from the outside world.

Since we're not experts on Kafka and data warehouses, mastering and building such an infrastructure in just one week was a very difficult task for us.

The choice is obvious now, and don't forget PingCAP is a database company! TiDB seems a perfect fit for this, and it's a good chance to eat our own dog food. So, why not using TiDB! :)

If we use TiDB, can we get:

  • SQL support, including complex & flexible queries? β˜‘οΈ
  • Scalability? β˜‘οΈ
  • Secondary index support for fast lookup? β˜‘οΈ
  • Capability for online serving? β˜‘οΈ

Wow! It seems we got a winner!


By using the secondary index, TiDB scanned 29,639 rows (instead of 4.6 billion rows) GitHub events in 4.9 ms

By using the secondary index, TiDB scanned 29,639 rows (instead of 4.6 billion rows) GitHub events in 4.9 ms

To choose a database to support an application like OSS Insight, we think TiDB is a great choice. Plus, its simplified technology stack means a faster go-to-market and faster delivery of my boss' assignment.

After we used TiDB, we got a simplified architecture as shown below.


Simplified architecture after we use TiDB

Simplified architecture after we use TiDB

Headache 3: We have a "pushy" PM!​

Just as the subtitle indicates, we have a very β€œpushy” PM, which is not always a bad thing. :) His demands kept extending, from the single project analysis at the very beginning to the comparison and ranking of multiple repositories, and to other multidimensional analysis such as the geographical distribution of stargazers and contributors. What’s more pressing was that the deadlines stayed unchanged!!!

We had to keep a balance between the growing demands and the tight deadlines.

To save time, we built our website using Docusaurus, an open source static site generator in React with scalability, rather than building a site from scratch. We also used Apache Echarts, a powerful charting library, to turn analytical results into good-looking and easy-to-understand charts.

We chose TiDB as the database to support our website, and it perfectly supports SQL. This way, our back-end engineers could write SQL commands to handle complex and flexible analytical queries with ease and efficiency. Then, our front-end engineers would just need to display those SQL execution results in the form of good-looking charts.

Finally, we made it. We prototyped our tool in just one week, and named it OSS Insight, short for open source software insights. We continued to fine-tune it, and it was officially released on May 3.

How we deal with analytical queries with SQL​

Let's use one example to show you how we deal with complex analytical queries.

Analyze a GitHub collection: JavaScript frameworks​

OSS Insight can analyze popular GitHub collections by many metrics including the number of stars, issues, and contributors. Let’s identify which JavaScript framework has the most issue creators. This is an analytical query that includes aggregation and ranking. To get the result, we only need to execute one SQL statement:

SELECT
ci.repo_name AS repo_name,
COUNT(distinct actor_login) AS num
FROM
github_events ge
JOIN collection_items ci ON ge.repo_id = ci.repo_id
JOIN collections c ON ci.collection_id = c.id
WHERE
type = 'IssuesEvent'
AND action = 'opened'
AND c.id = 10005
-- Exclude Bots
and actor_login not like '%bot%'
and actor_login not in (select login from blacklist_users)
GROUP BY 1
ORDER BY 2 DESC
;

In the statement above, the collections and collection_items tables store the data of all GitHub repository collections in various areas. Each table has 30 rows. To get the order of issue creators, we need to associate the repository ID in the collection_items table with the real, 4.6-billion-row github_events table as shown below.


mysql> select * from collection_items where collection_id = 10005;
+-----+---------------+-----------------------+-----------+
| id | collection_id | repo_name | repo_id |
+-----+---------------+-----------------------+-----------+
| 127 | 10005 | marko-js/marko | 15720445 |
| 129 | 10005 | angular/angular | 24195339 |
| 131 | 10005 | emberjs/ember.js | 1801829 |
| 135 | 10005 | vuejs/vue | 11730342 |
| 136 | 10005 | vuejs/core | 137078487 |
| 138 | 10005 | facebook/react | 10270250 |
| 142 | 10005 | jashkenas/backbone | 952189 |
| 143 | 10005 | dojo/dojo | 10160528 |
...
30 rows in set (0.05 sec)

Next, let's look at the execution plan. TiDB is compatible with MySQL syntax, so its execution plan looks very similar to that of MySQL.

In the figure below, notice the parts in red boxes. The data in the table collection_items is read through distributed[row], which means this data is processed by TiDB’s row storage engine, TiKV. The data in the table github_events is read through distributed[column], which means this data is processed by TiDB’s columnar storage engine, TiFlash. TiDB uses both row and columnar storage engines to execute the same SQL statement. This is so convenient for OSS Insight because it doesn’t have to split the query into two statements.


TiDB execution plan

TiDB execution plan

TiDB returns the following result:

+-----------------------+-------+
| repo_name | num |
+-----------------------+-------+
| angular/angular | 11597 |
| facebook/react | 7653 |
| vuejs/vue | 6033 |
| angular/angular.js | 5624 |
| emberjs/ember.js | 2489 |
| sveltejs/svelte | 1978 |
| vuejs/core | 1792 |
| Polymer/polymer | 1785 |
| jquery/jquery | 1587 |
| jashkenas/backbone | 1463 |
| ionic-team/stencil | 1101 |
...
30 rows in set
Time: 7.809s

Then, we just need to draw the result with Apache Echarts into a more visualized chart as shown below.


JavaScript frameworks with the most issue creators

JavaScript frameworks with the most issue creators

Note: You can click the REQUEST INFO on the upper right side of each chart to get the SQL command for each result.

Feedback: People love it!​

After we released OSS Insight on May 3, we have received loud applause on social media, via emails and private messages, from many developers, engineers, researchers, and people who are passionate about the open source community in various companies and industries.

I am more than excited and grateful that so many people find OSS Insight interesting, helpful, and valuable. I am also proud that my team made such a wonderful product in such a short time.


Applause given by developers and organizations on Twitter-1

Applause given by developers and organizations on Twitter-1

Applause given by developers and organizations on Twitter

Lessons learned​

Looking back at the process we used to build this website, we have learned many mind-refreshing lessons.

First, quick doesn’t mean dirty, as long as we make the right choices. Building an insight tool in just one week is tricky, but thanks to those wonderful, ready-made, and open source projects such as TiDB, Docusaurus, and Echarts, we made it happen with efficiency and without compromising the quality.

Second, it’s crucial to select the right databaseβ€”especially one that supports SQL. TiDB is a distributed SQL database with great scalability that can handle both transactional and real-time analytical workloads. With its help, we can process billions of rows of data with ease, and use SQL commands to execute complicated real-time queries. Further, using TiDB means we can leverage its resources to go to market faster and get feedback promptly.

If you like our project or are interested in joining us, you’re welcome to submit your PRs to our GitHub repository. You can also follow us on Twitter for the latest information.

note

πŸ“Œ Join our workshop​

If you want to get your own insights, you can join our workshop and try using TiDB to support your own datasets.

Β· 3 min read
ilovesoup

Providing insights on large volume of email data might not be as easy as we thought. While data coming in real-time, indices and metadata are to be built consistently. To make things worse, the data volume is beyond traditional single node databases' reach.

Background​

To store large volumes of real-time user data like email and provide insights is not easy. If your application is layered on top of Gmail to automatically extract and organize the useful information buried inside of our inboxes.

It became clear that they were going to need a better system for organizing terabytes of email metadata to power collaboration as their customer base rapidly increased, it is not easy to provide insights. You need to organize email data by first applying a unique identifier to the emails and then proactively indexing the email metadata. The unique identifier is what connects the same email headers across. For each email inserted in real-time, the system extracts meta information from it and builds indices for high concurrent access. When data volume is small, it's all good: traditional databases provide all you need. However, when data size grows beyond a single node's capacity, everything becomes very hard.

Potential Database Solutions​

Regarding databases, there are some options you might consider:

  1. NoSQL database. While fairly scalable, it does not provide you indexing and comprehensive query abilities. You might end up implementing them in your application code.
  2. Sharing cluster of databases. Designing sharding key and paying attention to the limitations between shards are painful. It might be fine for applications with simple schema designs, but it will be too complicated for CRM. Moreover, it's very hard to maintain.
  3. Analytical databases. They are fine for dashboard and reporting. But not fine for high concurrent updates and index based serving.

How to get real-time insights​

TiDB is a distributed database with user experience of traditional databases. It looks like a super large MySQL without the limitations of NoSQL and sharding cluster solutions. With TiDB, you can simply have the base information, indices and metadata being updated in a concurrent manner with the help of cross-node transaction ability.

To build such a system, you just need following steps:

  1. Create schemas according to your access pattern with indices on user name, organization, job title etc.
  2. Use streaming system to gather and extract meta information from your base data
  3. Insert into TiDB via ordinary MySQL client driver like JDBC. You might want to gather data in small batches of hundreds of rows to speed up ingestion. In a single transaction, updates on base data, indices and meta information are guaranteed to be consistent.
  4. Optionally, deploy a couple of TiFlash nodes to speed up large scale reporting queries.
  5. Access the data just like in MySQL and you are all done. SQL features for analytics like aggregations, multi-joins or window functions are all supported with great performance.

For more cases, please see here.

info

🌟 Details in how OSS Insight works​

Go to read Use TiDB Cloud to Analyze GitHub Events in 10 Minutes and use the Serverless Tier TiDB Cloud Cluster.

You can find how we deal with massive github data in Data Preparation for Analytics as well!

- - + + \ No newline at end of file diff --git a/blog/tags/tidbcloud/index.html b/blog/tags/tidbcloud/index.html index edfa6cc00c6..a4503474481 100644 --- a/blog/tags/tidbcloud/index.html +++ b/blog/tags/tidbcloud/index.html @@ -21,13 +21,13 @@ - - + +

4 posts tagged with "tidbcloud"

View All Tags

Β· 11 min read
Mini256
Caitin Chen

TL;DR:

This post tells how a website on a distributed database reduced online serving latency from 1.11 s to 417.7 ms, and then to 123.6 ms. We found that some lessons learned on MySQL could be applied throughout the optimization process. But when we optimize a distributed database, we need to consider more.

The OSS Insight website displays the data changes of GitHub events in real time. It's powered by TiDB Cloud, a MySQL-compatible distributed SQL database for elastic scale and real-time analytics.

Recently, to save costs, we tried to use lower-specification machines without affecting query efficiency and user experience. But our website and query response slowed down.


The repository analysis page was loading

The repository analysis page was loading, loading, and loading

How could we solve these problems on a distributed database? Could we use the methodology we learned on MySQL?

Analyzing the SQL execution plan​

To identify slow SQL statements, we used TiDB Cloud's Diagnosis page to sort SQL queries by their average latency.

For example, after the API server received a request, it executed the following SQL statement to obtain the number of issues in the vscode repository:

SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

However, if the open source repository is large, this query may take several seconds or more to execute.

Using EXPLAIN ANALYZE to troubleshoot query performance problems​

In MySQL, when we troubleshoot query performance problems, we usually use the EXPLAIN ANALYZE <sql> statement to view the SQL statement's execution plan. We can use the execution plan to locate the problem. The same works for TiDB.

We executed the EXPLAIN statement:

EXPLAIN ANALYZE SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

The result showed that the query took 1.11 seconds to execute.


The query result

The query result

You can see that TiDB's EXPLAIN ANALYZE statement execution result was completely different from MySQL's. TiDB's execution plan gave us a clearer understanding of how this SQL statement was executed.

The execution plan shows:

  • This SQL statement was split into several subtasks. Some were on the root node, and others were on the tikv node.
  • The query fetched data from the partition:issue_event partition table.
  • This query did a range scan through the index index_github_events_on_repo_id(repo_id). This let the query narrow down the data scan quickly. This process only took 59 ms. It was the sum of the execution times of multiple concurrent tasks.
  • Besides IndexRangeScan, the query also used TableRowIDScan. This scan took 4.69 s, the sum of execution times for multiple concurrent subtasks.

From the execution times above, we determined that the query performance bottleneck was in the TableRowIDScan step.

We reran the EXPLAIN ANALYZE statement and found that the query was faster the second time. Why?

Why did TableRowIDScan take so long?​

To find the reason why TableRowIDScan took so long, we need basic knowledge of TiDB's underlying storage.

In TiDB, a table's data entries and indexes are stored on TiKV nodes in key-value pairs.

  • For an index, the key is the combination of the index value and the row_id (for a non-clustered index) or the primary key (for a clustered index). The row_id or primary key indicates where the data is stored.
  • For a data entry, the key is the combination of the table ID and the row_id or primary key. The value part is the combination of this row of data.

This graph shows how IndexLookup is executed in the execution plan:


The logical structure

This is the logical structure, not the physical storage structure.

In the query above, TiDB uses the query condition repo_id=41881900 to filter out all row numbers row_id related to the repository in the secondary index index_github_events_on_repo_id. The query needs the number column data, but the secondary index doesn't provide it. Therefore, TiDB must execute IndexLookup to find the corresponding row in the table based on the obtained row_id (the TableRowIDScan step).

The rows are probably scattered in different data blocks and stored on the hard disk. This causes TiDB to perform a large number of I/O operations to read data from different data blocks or even different machine nodes.

Why was EXPLAIN ANALYZE faster the second time?​

In EXPLAIN ANALYZE's execution result, we saw that the "execution info" column corresponding to the TableRowIDScan step contained this information:

block: {cache_hit_count: 2755559, read_count: 179510, read_byte: 4.07 GB}

We thought this had something to do with TiKV. TiKV read a very large number of data blocks from the disk. Because the data blocks read from the disk were cached in memory in the first execution, 2.75 million data blocks could be read directly from memory instead of being retrieved from the hard disk. This made the TableRowIDScan step much faster, and the query was faster overall.

However, we believed that user queries were random. For example, a user might look up data from a vscode repository and then go to a kubernetes repository. TiKV's memory couldn't cache all the data blocks in all the drives. Therefore, this did not solve our problem, but it reminded us that when we analyze SQL execution efficiency, we need to exclude cache effects.

Using a covering index to avoid executing TableRowIDScan​

Could we avoid executing TableRowIDScan in IndexLookup?

In MySQL, a covering index prevents the database from index lookup after index filtering. We wanted to apply this to OSS Insight. In our TiDB database, we tried to create a composite index to achieve index coverage.

When we created a composite index with multiple columns, we needed to pay attention to the column order. Our goals were to allow a composite index to be used by as many queries as possible, to help these queries narrow the scope of data scans as quickly as possible, and to provide as many fields as possible in the query. When we created a composite index we followed this order:

  1. Columns that had high differentiation and could be used as equivalence conditions for the WHERE statement, like repo_id
  2. Columns that didn't have high differentiation but could be used as equivalence conditions for the WHERE statement, like type and action
  3. Columns that could be used as range query conditions for the WHERE statement, like created_at
  4. Redundant columns that were not used as filter conditions but were used in the query, such as number and push_size

We used the CREATE INDEX statement to create a composite index in the database:

CREATE INDEX index_github_events_on_repo_id_type_number ON github_events(repo_id, type, number);

When we created the index and ran the SQL statement again, the query speed was significantly faster. We viewed the execution plan through EXPLAIN ANALYZE and found that the execution plan became simpler. The IndexLookup and TableRowIDScan steps were gone. The query took only 417.7 ms.


The result of the EXPLAIN query

The result of the EXPLAIN query. This query cost 417.7 ms

So we knew that our query could get all the data it needed by doing an IndexRangeScan on the new index. This composite index included the number field, so TiDB did not need to perform IndexLookup to get data from the table. This reduced a lot of I/O operations.


`IndexRangeScan` in the non-clustered table

IndexRangeScan in the non-clustered table

Pushing down computing to further reduce query latency​

For a query that needed to obtain 270,000 rows of data, 417.7 ms was quite a short execution time. But could we improve the time even more?

We thought this relied on TiDB's architecture that separates computing and storage layers. This is different from MySQL.

In TiDB:

  • The tidb-server node computes data. It corresponds to root in the execution plan.
  • The tikv-server node stores the data. It corresponds to cop[tikv] in the execution plan.

Generally, an SQL statement is split into multiple steps to execute with the cooperation of computing and storage nodes.

When we executed the SQL statement in this article, TiDB obtained the data of the github_events table from tikv-server and performed the aggregate calculation of the COUNT function on tidb-server.

SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

The execution plan indicated that when TiDB was performing IndexReader, tidb-server needed to read 270,000 rows of data from tikv-server through the network. This was time-consuming.


`tidb-server` read 270,000 rows of data from `tikv-server`

tidb-server read 270,000 rows of data from tikv-server

How could we avoid such a large network transmission? Although the query needed to obtain a large amount of data, the final calculation result was only a number. Could we complete the COUNT aggregation calculation on tikv-server and return the result only to tidb-server?

TiDB had implemented this idea through the coprocessor on tikv-server. This optimization process is called computing pushdown.

The execution plan indicated that our SQL query did not do this. Why? We checked the TiDB documentation and learned that:

Usually, aggregate functions with the DISTINCT option are executed in the TiDB layer in a single-threaded execution model.

This meant that our SQL statement couldn't use computing pushdown.

SELECT
COUNT(DISTINCT number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent';

Therefore, we removed the DISTINCT keyword.

For the github_events table, an issue only generated an event with the IssuesEvent type and opened action. We could get the total number of unique issues by adding the condition of action = 'opened'. This way, we didn't need to use the DISTINCT keyword for deduplication.

SELECT
COUNT(number)
FROM github_events
WHERE
repo_id = 41881900 -- vscode
AND type = 'IssuesEvent'
AND action = 'opened';

The composite index we created lacked the action column. This caused the query index coverage to fail. So we created a new composite index:

CREATE INDEX index_github_events_on_repo_id_type_action_number ON github_events(repo_id, type, action, number);

After we created the index, we checked the execution plan of the modified SQL statement through the EXPLAIN ANALYZE statement. We found that:

  • Because we added a new filter action='opened', the number of rows to scan had decreased from 270,000 to 140,000.
  • tikv-server executed the StreamAgg operator, which was the aggregate calculation of the COUNT function. This indicated that the calculation had been pushed down to the TiKV coprocessor for execution.
  • tidb-server only needed to obtain two rows of data from tikv-server through the network. This greatly reduced the amount of data transmitted.
  • The query only took 123.6 ms.
+-------------------------+---------+---------+-----------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------+------+
| id | estRows | actRows | task | access object | execution info | operator info | memory | disk |
+-------------------------+---------+---------+-----------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------+------+
| StreamAgg_28 | 1.00 | 1 | root | | time:123.6ms, loops:2 | funcs:count(Column#43)->Column#34 | 388 Bytes | N/A |
| └─IndexReader_29 | 1.00 | 2 | root | partition:issues_event | time:123.6ms, loops:2, cop_task: {num: 2, max: 123.5ms, min: 1.5ms, avg: 62.5ms, p95: 123.5ms, max_proc_keys: 131360, p95_proc_keys: 131360, tot_proc: 115ms, tot_wait: 1ms, rpc_num: 2, rpc_time: 125ms, copr_cache_hit_ratio: 0.50, distsql_concurrency: 15} | index:StreamAgg_11 | 590 Bytes | N/A |
| └─StreamAgg_11 | 1.00 | 2 | cop[tikv] | | tikv_task:{proc max:116ms, min:8ms, avg: 62ms, p80:116ms, p95:116ms, iters:139, tasks:2}, scan_detail: {total_process_keys: 131360, total_process_keys_size: 23603556, total_keys: 131564, get_snapshot_time: 1ms, rocksdb: {delete_skipped_count: 320, key_skipped_count: 131883, block: {cache_hit_count: 307, read_count: 1, read_byte: 63.9 KB, read_time: 60.2Β΅s}}} | funcs:count(gharchive_dev.github_events.number)->Column#43 | N/A | N/A |
| └─IndexRangeScan_15 | 7.00 | 141179 | cop[tikv] | table:github_events, index:index_ge_on_repo_id_type_action_created_at_number(repo_id, type, action, created_at, number) | tikv_task:{proc max:116ms, min:8ms, avg: 62ms, p80:116ms, p95:116ms, iters:139, tasks:2} | range:[41881900 "IssuesEvent" "opened",41881900 "IssuesEvent" "opened"], keep order:false | N/A | N/A |
+-------------------------+---------+---------+-----------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------+------+

Applying what we learned to other queries​

Through our analysis and optimizations, the query latency was significantly reduced:

1.11 s β†’ 417.7 ms β†’ 123.6 ms

We applied what we learned to other queries and created the following composite indexes in the github_events table:

index_ge_on_repo_id_type_action_pr_merged_created_at_add_del

index_ge_on_repo_id_type_action_created_at_number_pdsize_psize

index_ge_on_repo_id_type_action_created_at_actor_login

index_ge_on_creator_id_type_action_merged_created_at_add_del

index_ge_on_actor_id_type_action_created_at_repo_id_commits

These composite indexes covered more than 20 analytical queries in repository analysis and personal analysis pages on the OSS Insight website. This improved our website's overall loading speed.

Some lessons we learned on MySQL can be applied throughout the optimization process. But we need to consider more when we optimize query performance in a distributed database. We also recommend you read Performance Tuning in the TiDB documentation. This will give you a more professional and comprehensive guide to performance optimization.

References​

Β· 10 min read
Fendy Feng

4.6 billion is literally an astronomical figure. The richest star map of our galaxy, brought by Gaia space observatory, includes just under 2 billion stars. What does a view of 4.6 billion GitHub events really look like? What secrets and values can be discovered in such an enormous amount of data?

Here you go: OSSInsight.io can help you find the answer. It’s a useful insight tool that can give you the most updated open source intelligence, and help you deeply understand any single GitHub project or quickly compare any two projects by digging deep into 4.6 billion GitHub events in real time. Here are some ways you can play with it.

Compare any two GitHub projects​

Do you wonder how different projects have performed and developed over time? Which project is worthy of more attention? OSSInsight.io can answer your questions via the Compare Projects page.

Let’s take the Kubernetes repository (K8s) and Docker’s Moby repository as examples and compare them in terms of popularity and coding vitality.

Popularity​

To compare the popularity of two repositories, we use multiple metrics including the number of stars, the growth trend of stars over time, and stargazers’ geographic and employment distribution.

Number of stars​

The line chart below shows the accumulated number of stars of K8s and Moby each year. According to the chart, Moby was ahead of K8s until late 2019. The star growth of Moby slowed after 2017 while K8s has kept a steady growth pace.

The star history of K8s and Moby

Geographical distribution of stargazers​

The map below shows the stargazers’ geographical distribution of Moby and K8s. As you can see, their stargazers are scattered around the world with the majority coming from the US, Europe, and China.

The geographical distribution of K8s and Moby stargazers

Employment distribution of stargazers​

The chart below shows the stargazers’ employment of K8s (red) and Moby (dark blue). Both of their stargazers work in a wide range of industries, and most come from leading dotcom companies such as Google, Tencent, and Microsoft. The difference is that the top two companies of K8s’ stargazers are Google and Microsoft from the US, while Moby’s top two followers are Tencent and Alibaba from China.

The employment distribution of K8s and Moby stargazers

Β· 5 min read
Fendy Feng
hooopo

TiDB is an open source distributed NewSQL database with horizontal scalability, high availability, and strong consistency. It can also deal with mixed OLTP and OLAP workloads at the same time by leveraging its hybrid transactional and analytical (HTAP) capability.

TiDB Cloud is a fully-managed Database-as-a-Service (DBaaS) that brings everything great about TiDB to your cloud and lets you focus on your applications, not the complexities of your database.

In this tutorial, we will provide you with a piece of sample data of all GitHub events occurring on January 1, 2022, and walk you through on how to use TiDB Cloud to analyze this data in 10 minutes.

Sign up for a TiDB Cloud account (Free)​

  1. Click here to sign up for a TiDB Cloud account free of charge.
  2. Log in to your account.

Β· 5 min read
hooopo

Data​

All the data we use here on this website sources from GH Archive, a non-profit project that records and archives all GitHub events data since 2011. The total data volume archived by GH Archive can be up to 4 billion rows. We download the json file on GH Archive and convert it into csv format via Script, and finally load it into the TiDB cluster in parallel through TiDB-Lightning.

In this section, we will explain step by step how we conduct this process.

  1. Prepare the data in csv format for TiDB Lighting.
- - + + \ No newline at end of file diff --git a/blog/trends-and-insights-from-github-2022/index.html b/blog/trends-and-insights-from-github-2022/index.html index ba18497f2a1..bf6adf538dd 100644 --- a/blog/trends-and-insights-from-github-2022/index.html +++ b/blog/trends-and-insights-from-github-2022/index.html @@ -21,13 +21,13 @@ - - + +

Open Source Highlights: Trends and Insights from GitHub 2022

Β· 10 min read
Cheese Wong
Jagger
hooopo
Vita Lu
Mia Zhou
Caitin Chen

We analyzed more than 5,000,000,000 rows of GitHub event data and got the results here. In this report, you'll get interesting findings about open source software on GitHub in 2022, including:

Top languages in the open source world over the past four years​

This chart ranks programming languages yearly from 2019 to 2022 based on the ratio of new repositories using these languages to all new repositories.


top-programming-languages
Top programming languages

Insights:

  • Python surpassed Java and moved to #3 in 2021.
  • TypeScript rose from #10 to #6, and SCSS rose from #39 to #19. The rise of SCSS shows that open source projects that value front-end expressiveness are gradually gaining popularity.
  • The two languages Ruby and R dropped a lot in ranking over the years.

Rankings of back-end programming languages​

The programming languages used in a pull request reflect which languages developers used. To find out the most popular back-end programming languages, we queried the distribution of programming languages by new pull requests from 2019 to 2022 and took the top 10 for each year.


top-back-end-programming-languages
Top back-end programming languages

The chart data indicates:

  • Python and Java rank #1 and #2 respectively. In 2021, Go overtook Ruby to rank #3 in 2021.
  • Rust has been trending upward for several years, ranking #9 in 2022.

Geographic distribution of developer behavior​

We queried the number of various events that occurred throughout the world from January 1 to September 30, 2022 and identified the top 10 countries by the number of events triggered by developers in these countries. The chart displays the proportion of each event type by country or region.


geographic-distribution-of-developer-behavior
Geographic distribution of developer behavior

The chart shows that:

  • The events triggered in the top 10 countries account for about 23.27% of all GitHub events. However, the number of developers from these countries is only 10%.
  • US developers are most likely to review code, with a PullRequestReviewEvent share of 6.15%.
  • Korean developers prefer pushing directly to repositories (PushEvent).
  • Japanese developers are most likely to submit code via pull requests, with a PullRequestEvent share of 10%.
  • German developers like to open issues and comments, with IssueEvent and CommentEvent accounting for 4.18% and 12.66% respectively.
  • Chinese developers like to star repositories, with 17.23% for WatchEvent and 2.7% for ForkEvent.

Notes:

  • In 2022, 17,062,081 developers had behavioral events, and 2,923,523 of them have the Location field, so the sampling rate is 17.13%
  • GitHub identifies 15 types of events. We only show commonly used types. Comment Event includes CommitCommentEvent, IssueCommentEvent, and PullRequestReviewCommentEvent. Others includes MemberEvent, CreateEvent, ReleaseEvent, GollumEvent, and PublicEvent.

Developer behavior distribution on weekdays and weekends​

We queried the distribution of each event type over the seven days of the week.


developer-behavior-distribution-on-weekdays-and-weekends
Developer behavior distribution on weekdays and weekends

Insights:

  • Developers are most active on weekdays, with 77.73% of events occurring on weekdays.

The distribution of specific events​

developer-behavior-distribution-from-monday-to-sunday
Developer behavior distribution from Monday to Sunday

Insights:

  • Pull Request Event, Pull Request Review Event, and Issues Event all have the highest percentage on Tuesdays, while the lowest percentage is on the weekends.
  • The amount of Push Event, Watch Event, and Fork Event activities are similar on weekdays and weekends, while the Pull Request Review Event is the most different. Watch Event and Fork Event are more personal behaviors, Pull Request Review Events are more work behaviors, and Push Events are used more in personal projects.

Each year, technology introduces new buzz words. Can we gain insight into technical trends through the open source repositories behind the hot words? We investigated five technical areas: Low Code, Web3, GitHub Actions, Database, and AI.

We queried the number of open source repositories associated with each technical area, as well as the percentage of active repositories in 2022.


activity-levels-of-popular-topics
Activity levels of popular topics

This figure shows that open source repositories in the Low Code topic are the most active, with 76.3% being active in 2022, followed by Web3 with 63.85%.

We queried the following items for each technical area from 2015 to 2022:

  • The annual increment of repositories
  • The annual increment of collaborative events
  • The number of developers participating in collaborative events
  • The annual increment of stars

Then, we calculated the growth rate for each year which can reflect new entrants, developer engagement in this technical field, and the industry's interest in this area. For 2022, we compare its first nine months with the first nine months of 2021.


low-code-repositories
Low code repositories

We can see that 2020 is the peak period of project development, with a 313.43% increase in new repositories and a 157.06% increase in developer collaborative events. The industry's interest increased most significantly in 2021, reaching 184.82%. In 2022, the year-on-year growth data shows that the number of new repositories decreased (-26.21%), but developer engagement and industry interest are still rising.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


web3-repositories
Web3 repositories

Whether it is the creation of new repositories, developers, or the interest of the industry, the Web3 ecosystem has grown rapidly in recent years, and the growth rate of new repositories peaked at 322.65% in 2021.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


github-actions-repositories
GitHub Actions repositories

The annual increase of GitHub Actions repositories has been declining, but developer engagement and the industry's interest are still increasing slightly.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


database-repositories
Database repositories

As an infrastructure project, the Database project's threshold is high. Compared with projects in other fields, a database project has a stable growth rate.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories


ai-repositories
AI repositories

After two years of high growth in 2016 and 2017, open source projects in AI have been growing gradually slowly.

* Time range of 2022: 01.01-09.30, excluding bot events and forking repositories

The number of stars is the most visible indication of the popularity of open source projects. We looked at the 50 projects that received the most stars from January 1 to September 30, 2022. We found that:


most-popular-repositories-2022
The most popular repositories in 2022

* Time range: 2022.01.01-2022.09.30, excluding bot events

The most active repositories over the past four years​

Here we looked up the top 20 active repositories per year from 2019 to 2022 and counted the total number of listings per repository. The activity of the repository is ranked according to the number of developers participating in collaborative events.

Repository NameCount
microsoft/vscode4
flutter/flutter4
MicrosoftDocs/azure-docs4
firstcontributions/first-contributions4
Facebook/react-native4
pytorch/pytorch4
microsoft/TypeScript4
tensorflow/tensorflow3
kubernetes/kubernetes3
DefinitelyTyped/DefinitelyTyped3
golang/go3
google/it-cert-automation-practice3
home-assistant/core3
microsoft/PowerToys3
microsoft/WSL3

Insights:

  • Microsoft has the most repositories on the list, with five.

  • tensorflow/tensorflow and kubernetes/kubernetes both dropped out of the top 20 after three consecutive years on the list (2019 to 2021).

  • New to the 2022 list are archway-network/testnets, element-fi/elf-council-frontend, solana-labs/token-list, education/GitHubGraduation-2022, taozhiyu/TyProAction, NixOS/nixpkgs, rust-lang/rust.

  • Time range: 2022.01.01-2022.09.30, excluding bot events

Who gave the most stars in 2022​

We queried the developers who gave the most stars in 2022, took the top 20, and filtered out accounts of suspected bots. If a developer's number of star events divided by the number of starred repositories is equal to or greater than 2, we suspect this user to be a bot.


developers-most-stars
Developers who gave the most stars

We found that until September 30, 2022, the developer who starred the most repositories had starred a total of 37,228 repositories, an average of 136 repositories per day.

* Time range: 2022.01.01-2022.09.30, excluding bot events

The most active developers since 2011​

We queried the top 20 most active developers per year since 2011. This time we didn't filter out bot events.


most-active-developers
The most active developers

We found that the percentage of bots is becoming larger and larger. Bots started to overtake humans in 2013 and have reached over 95% in 2022.

Appendix​

Term description​

  • GitHub events: GitHub events are triggered by user actions, like starring a repository or pushing code.
  • Time range: In this report, the data collection range of 2022 is from January 1, 2022 to September 30, 2022. When comparing data of 2022 with another year, we use year-on-year analysis.
  • Bot events: Bot-triggered events account for a growing percentage of GitHub events. However, these events are not the focus of this report. We filtered out most of the bot-initiated events by matching regular expressions.

How we classify technical fields by topics​

We do exact matching and fuzzy matching based on the repository topic. Exact matching means that the repository topics have a topic that exactly matches the word, and fuzzy matching means that the repository topics have a topic that contains the word.

TopicExact matchingFuzzy matching
GitHub Actionsactionsgithub-action, gh-action
Low Codelow-code, lowcode, nocode, no-code
Web3web3
Databasedbdatabase, databases
nosql, newsql, sql
mongodb,neo4j
AIai, aiops, aiotartificial-intelligence, machine-intelligence
computer-vision, image-processing, opencv, computervision, imageprocessing
voice-recognition, speech-recognition, voicerecognition, speechrecognition, speech-processing
machinelearning, machine-learning
deeplearning, deep-learning
transferlearning, transfer-learning
mlops
text-to-speech, tts, speech-synthesis, voice-synthesis
robot, robotics
sentiment-analysis
natural-language-processing, nlp
language-model, text-classification, question-answering, knowledge-graph, knowledge-base
gan, gans, generative-adversarial-network, generative-adversarial-networks
neural-network, neuralnetwork, neuralnetworks, neural-network, dnn
tensorflow
PyTorch
huggingface
transformers
seq2seq, sequence-to-sequence
data-analysis, data-science
object-detection, objectdetection
data-augmentation
classification
action-recognition
- - + + \ No newline at end of file diff --git a/blog/try-it-yourself/index.html b/blog/try-it-yourself/index.html index 90ad7bfd9b1..ce4a481c14d 100644 --- a/blog/try-it-yourself/index.html +++ b/blog/try-it-yourself/index.html @@ -21,14 +21,14 @@ - - + +

[Outdated] Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Β· 5 min read
Fendy Feng
hooopo

TiDB is an open source distributed NewSQL database with horizontal scalability, high availability, and strong consistency. It can also deal with mixed OLTP and OLAP workloads at the same time by leveraging its hybrid transactional and analytical (HTAP) capability.

TiDB Cloud is a fully-managed Database-as-a-Service (DBaaS) that brings everything great about TiDB to your cloud and lets you focus on your applications, not the complexities of your database.

In this tutorial, we will provide you with a piece of sample data of all GitHub events occurring on January 1, 2022, and walk you through on how to use TiDB Cloud to analyze this data in 10 minutes.

Sign up for a TiDB Cloud account (Free)​

  1. Click here to sign up for a TiDB Cloud account free of charge.
  2. Log in to your account.

Create a TiDB Cloud Serverless Tier cluster​

Once you register an account, you can create a cluster with TiDB Cloud Serverless Tier.

info

A cluster is a database to store data.

  1. Click Get Started for Free and start to create a cluster.

  1. On the Create a Cluster page, set up your cluster name and root password.
  2. Note that the cloud provider is AWS by default, and then MUST select the US-West-2 (Oregon) region to create the cluster.
  3. The cluster tier is S1.dev by default.
  4. Click Submit. Your TiDB Cloud cluster will be created in approximately 1 to 3 minutes.

Import data to your TiDB Cloud cluster​

Import the data​

Once your cluster is ready, you can start to import the sample data to your cluster.

info

We have merged the create database/table in the SQL files, so you don't need to create database/tables by yourself.

If you want to know the table schema, you can check desc gharchive_dev later in the following step.

  1. Click your cluster name in Active Cluster page to get into the detail page of your cluster.
  2. Click the Import button on the Active Clusters page and then go to the Data Import Task page.

  1. Copy the values below and paste to the blanks of Bucket URL and Role-ARN respectively on the Data Import Task page.

Bucket URL:

s3://tidbcloud-samples/gharchive/

Role-ARN:

arn:aws:iam::385595570414:role/import-sample-access
  1. Choose US West (Oregon) for your Bucket region;
  2. Tick TiDB Dumpling for the Data Format.
  3. Input your cluster password in the blank of Password on the Target Database section.

  1. After you fill in all the blanks on the Data Import Task page, click the Import button at the bottom of this page and wait for a few moments for the system to complete data importing.

Use the web shell to check if data is ready​

TiDB Cloud provides a web shell to connect the database online.

  1. Click the Exit button after you successfully import the data into your cluster.
  2. Click your cluster name in Active Cluster page to get into the detail page of your cluster.
  3. Then, click the Connect button and the Connect to TiDB panel pops out.
  4. Choose Web SQL Shell --> Open SQL Shell.
  5. Then input your cluster password as shown in the image below.

Set column storage replica: TiFlash (Optional but could make SQL faster!)​

TiFlash is the key component that makes TiDB / TiDB Cloud an HTAP database and capable of dealing with OLTP and OLAP workloads at the same time.

Here, you can try the following SQL commands on TiDB Cloud to experience its real-time analytics with ease.

  1. Execute the SQL statements specified below
use gharchive_dev;
ALTER TABLE github_events SET TIFLASH REPLICA 1;
  1. Setting a TiFlash replica will take you some time, so you can use the following SQL statements to check if the procedure is done or not.
SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = 'gharchive_dev' and TABLE_NAME = 'github_events';

If the results you get are the same as follows, then it means the procedure is done.

mysql> SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = 'gharchive_dev' and TABLE_NAME = 'github_events';
+---------------+---------------+----------+---------------+-----------------+-----------+----------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_ID | REPLICA_COUNT | LOCATION_LABELS | AVAILABLE | PROGRESS |
+---------------+---------------+----------+---------------+-----------------+-----------+----------+
| gharchive_dev | github_events | 68 | 1 | | 1 | 1 |
+---------------+---------------+----------+---------------+-----------------+-----------+----------+
1 row in set (0.27 sec)

mysql>

Analysis!​

After you finish all the steps above, you can start the analytical process.

tip

If you want to know the table schema, you can use show create table tbl_name to get that information.

Because you have imported the sample data of all GitHub events occurred on the first hour of 2022 (from 2022-01-01 00:00:00 to 2022-01-01 00:59:59), you can start to make any queries based on that data by using SQL commands.

How many events occurred in total?​

Execute the following SQL statement to query the total number of events.

SELECT count(*) FROM github_events;

Which repository gets the most stars?​

Execute the following statements to query the most starred repository.

  SELECT repo_name, count(*) AS events_count
FROM github_events
WHERE type = 'WatchEvent' /* Yes, `WatchEvent` means star */
GROUP BY 1
ORDER BY 2 DESC
LIMIT 20;

Mini Test​

Here is a small test for you to practice how to use TiDB Cloud to conduct analytics.

Q: Who is the most active contributor except the robot accounts on the first hour of 2022?​

Click for the answer. ⬇️​

Click me to show answer
  SELECT actor_login, 
count(*) AS events_count
FROM github_events
WHERE actor_login NOT LIKE '%bot%'
GROUP BY 1
ORDER BY 2 DESC
LIMIT 20;
info

🌟 Details in how OSS Insight works​

Find the reason How we implement OSS Insight ?.

You can find how we deal with massive github data in Data Preparation for Analytics as well!

- - + + \ No newline at end of file diff --git a/blog/unsung-heroes-of-open-source/index.html b/blog/unsung-heroes-of-open-source/index.html index 262d6439167..d5062c5e274 100644 --- a/blog/unsung-heroes-of-open-source/index.html +++ b/blog/unsung-heroes-of-open-source/index.html @@ -21,13 +21,13 @@ - - + +

The Unsung Heroes of Open Source: The Dedicated Maintainers Behind Lesser-Known Projects

Β· 8 min read
Mia Zhou
Notion AI

A few days ago, I read a blog post by the author of Core-js. To be honest, it was my first time hearing about Core-js. As someone who has written some front-end code and has been keeping up with open source projects, I feel a bit ashamed.

However, there are many open source projects that are widely used but not well-known. In this blog post, I will take a closer look at a few of these unsung heroes of the open source world. I do not want to give them a business model or financial advice in this article. This largely depends on the author's personal experience and values. I just want to raise more awareness about these open source projects.

Core-js​

Core-js is a modular standard library for JavaScript. It provides polyfills for many ECMAScript features, as well as some additional features that are not included in the standard library. It's used by many popular JavaScript libraries and frameworks, including React, Vue.js, and Angular.

Core-js has been downloaded more than 2.5 billion times from the npm package registry, making it one of the most widely used JavaScript libraries in the world. Despite its widespread use, the project does not receive much attention, and its star growth is very slow.

Core-js is maintained by Denis Pushkarev, who started the project as a hobby in 2012 and open-sourced it in 2014.


core-js-contributors
Core-js' top contributors

Based on the distribution of contributions to the project, it seems that Denis has provided more than 95% of the project's code. And as he said in the blog post I read, the project occupies almost all of his timeβ€”more than a full working day.


core-js-maintainer
Denis' contribution time distribution


core-js-star
Core-js' star history

On February 14th, Denis’s blog brought significant attention to the Core-js project. Now he has opened multiple donation channels, including through Open Collective, Patreon, and boosty. He is actively exploring ways to ensure that Core-js can be maintained in the long term.

cURL​

cURL is a command-line tool and library for transferring data over a wide range of network protocols, including HTTP, FTP, SMTP, and many others. It is used by millions of developers to download and upload files, test APIs, and automate tasks.


curl-contributor
cURL's top contributors

cURL is primarily maintained by Daniel Stenberg alone, who started working on the project in 1998. Fortunately, there are occasionally new contributors joining in as mentioned in this tweet. This allows Daniel to maintain a more normal schedule and a full time job, and even leave work early on Wednesdays to play floorball.


curl-maintainer
Daniel's contribution time distribution

cURL has received sponsorship from various organizations and individuals, including wolfSSL. WolfSSL employs Daniel and allows him to spend paid work hours on cURL.

ImageMagick​

ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files. ImageMagick is used by millions of websites and applications to manipulate and display images, including popular content management systems like WordPress and Drupal.


imagemagick-contributor
ImageMagick's top contributors

ImageMagick is maintained by a small group of developers, including its founder, John Cristy. Cristy started the project at DuPont in 1987 and released it in 1990. It is said that John Cristy has a full-time job and only maintains the project in his spare time.


imagemagick-lastmonth
ImageMagick's top contributors last month

Dirk Lemstra is another primary maintainer of ImageMagick, currently working as a consultant for a company and maintaining the project in his spare time.

Currently, the project is sustained by the support of various organizations and individuals.

MyCLI​

MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.


mycli-contributor
MyCLI's top contributors

The project is maintained by its creator, Amjith Ramanujam, and contributions from the open source community. Based on the distribution of contributions, a relatively stable community of contributors has formed around MyCLI. Moreover, there are some organizations and individuals sponsoring this project.


mycli-commit
MyCLI's commit history

However, with the popularity of cloud databases, such projects have fallen behind the times, so the updates for the project have been very slow.

Homebrew​

Homebrew is a popular package manager for macOS that allows users to easily install and manage a wide variety of software packages. Homebrew is a nonprofit project run entirely by unpaid volunteer developers, with the lead maintainer being Mike McQuaid.


homebrew-contributor
Homebrew's top contributors

McQuaid has been involved with the Homebrew project since its inception and has been the lead maintainer since 2012β€”and he has full-time work on GitHub as a principal engineer.

Homebrew’s financial operations are managed by the Open Source Collective, and accepts donations through GitHub Sponsors, Open Collective or Patreon. Homebrew is also sponsoring some projects, including cURL mentioned earlier.

Apache Log4j​

Apache Log4j is a powerful logging framework for Java that allows developers to log messages from their applications with fine-grained control over where and how those messages are recorded. This library has been widely adopted by Java developers and is used by many popular Java-based applications, including Apache Kafka and Apache Spark.


log4j2-stars
Apache Log4j's star history

Interestingly, the project did not receive much attention until November 2021, when a security vulnerability was reported. This incident doubled its star count and gained attention from the industry.


log4j2-contributor
Apache Log4j's top contributors

Ralph Goers is the original author of Log4j 2. He worked on the initial design and development of Log4j 2, which was released in 2014. Now he is working on Nextiva as a Fellow Architect.Now the core maintainer of logging-log4j2 is Gary Gregory, who is a member of the Apache Software Foundation and has been working on the project for over a decade.

Because the Log4j 2 project is under the Apache Foundation, the maintainers can focus more on project maintenance without worrying about financial issues.

OpenSSL​

OpenSSL is an open source library that provides cryptographic functions for many different applications, including web servers, email clients, and virtual private networks. OpenSSL is used by millions of websites and applications to secure communications over the internet, including popular web servers like Apache and Nginx, as well as popular programming languages like Python and Ruby.


openssl-contributor
OpenSSL's top contributors

The project is developed by a distributed team, mostly consisting of volunteers with some project funded resources. The team is led by Matt Caswell, who has been working on OpenSSL since 2010 and became one of the maintainers in 2013.

Apart from volunteer developers, OpenSSL also depends on financial support from the community, which can be given in various forms. These include a support contract, a sponsorship donation, or a smaller donation via GitHub Sponsors.

Maintaining an open source project is no easy feat. It's a labor of love, built by passionate developers who sacrifice their time to create something that makes a difference. As users, we owe them our gratitude for the tools and technologies they provide. As Mike McQuaid suggested on the blog Open Source Maintainers Owe You Nothing, "Remember when filing an issue, opening a pull request, or making a comment on a project, to be grateful that people spend their free time to build software you get to use for free."

- - + + \ No newline at end of file diff --git a/blog/why-we-choose-tidb-to-support-ossinsight/index.html b/blog/why-we-choose-tidb-to-support-ossinsight/index.html index 9be4427b980..0fb4d31bb4a 100644 --- a/blog/why-we-choose-tidb-to-support-ossinsight/index.html +++ b/blog/why-we-choose-tidb-to-support-ossinsight/index.html @@ -21,14 +21,14 @@ - - + +

Build a Better GitHub Insight Tool in a Week? A True Story

Β· 10 min read
Wink Yao
Fendy Feng

In early January 2022, Max, our CEO, a big fan of open-source, asked if my team could build a small tool to help us understand all the open-source projects on GitHub; and, that if everything worked well, we should open the API to help open source developers to build better insights. In fact, GitHub continuously publishes the public events in its open-source world through the open API. (Thank you and well done! Github). We can certainly learn a lot from the data!

I was excited about this project until Max said: β€œYou’ve only got one week.” Well, the boss is the boss! Although time was tight and we were faced with multiple head-aching problems, I decided to take up this challenge.

Headache 1: we need both historical and real-time data.​

After some quick research, we found GHArchive, an open-source project that collects and archives all GitHub data from 2011 and updates it hourly. By the way, a lot of open-source analytical tools such as CNCF's Devstats rely on GH Archive, too.

Thanks to GH Archive, we found the data source.

But there's another problem: hourly data is good, but not good enough. We wanted our data to be updated in real timeβ€”or at least near real time. We decided to directly use the GitHub event API, which collects all events that have occurred within the past hour.

By combining the data from the GH Archive and the GitHub event API, we can gain streaming, real-time event updates.


GitHub event updates

GitHub event updates

Headache 2: the data is huge!​

After we decompressed all the data from GH Archive, we found there were more than 4.6 billion rows of GitHub events. That’s a lot of data! We also noticed that about 300,000 rows were generated and updated each hour.


The data volume of GitHub events occurred after 2011

The data volume of GitHub events occurred after 2011

The database solution would be tricky here. Our goal is to build an application that provides real-time data insights based on a continuously growing dataset. So, scalability is a must. NoSQL databases can provide good scalability, but what follows is how to handle complex analytical queries. Unfortunately, NoSQL databases are not good at that.


Scalability vs SQL

Another option is to use an OLAP database such as ClickHouse. ClickHouse can handle the analytical workload very well, but it is not designed for serving online traffic. If we chose it, we would need another database for the online traffic.


OLAP vs Online Serving

What about sharding the database and then building an extract, transform, load (ETL) pipeline to synchronize the new events to a data warehouse? This sounds workable.


How a RDBMS handles the GitHub data

How a RDBMS handles the GitHub data

According to our product manager's (PM’s) plan, we needed to do some repo-specific or user-specific analysis. Although the total data volume was huge, the number of events was not too large for a single project or user. This meant using the secondary indexes in RDBMS would be a good idea. But, if we decided to use the above architecture, we had to be careful in selecting the database sharding key. For example, if we use user_id as the sharding key, then queries based on repo_id will be very tricky.

Another requirement from the PM was that our insight tool should provide OpenAPI, which meant we would have unpredictable concurrent traffic from the outside world.

Since we're not experts on Kafka and data warehouses, mastering and building such an infrastructure in just one week was a very difficult task for us.

The choice is obvious now, and don't forget PingCAP is a database company! TiDB seems a perfect fit for this, and it's a good chance to eat our own dog food. So, why not using TiDB! :)

If we use TiDB, can we get:

  • SQL support, including complex & flexible queries? β˜‘οΈ
  • Scalability? β˜‘οΈ
  • Secondary index support for fast lookup? β˜‘οΈ
  • Capability for online serving? β˜‘οΈ

Wow! It seems we got a winner!


By using the secondary index, TiDB scanned 29,639 rows (instead of 4.6 billion rows) GitHub events in 4.9 ms

By using the secondary index, TiDB scanned 29,639 rows (instead of 4.6 billion rows) GitHub events in 4.9 ms

To choose a database to support an application like OSS Insight, we think TiDB is a great choice. Plus, its simplified technology stack means a faster go-to-market and faster delivery of my boss' assignment.

After we used TiDB, we got a simplified architecture as shown below.


Simplified architecture after we use TiDB

Simplified architecture after we use TiDB

Headache 3: We have a "pushy" PM!​

Just as the subtitle indicates, we have a very β€œpushy” PM, which is not always a bad thing. :) His demands kept extending, from the single project analysis at the very beginning to the comparison and ranking of multiple repositories, and to other multidimensional analysis such as the geographical distribution of stargazers and contributors. What’s more pressing was that the deadlines stayed unchanged!!!

We had to keep a balance between the growing demands and the tight deadlines.

To save time, we built our website using Docusaurus, an open source static site generator in React with scalability, rather than building a site from scratch. We also used Apache Echarts, a powerful charting library, to turn analytical results into good-looking and easy-to-understand charts.

We chose TiDB as the database to support our website, and it perfectly supports SQL. This way, our back-end engineers could write SQL commands to handle complex and flexible analytical queries with ease and efficiency. Then, our front-end engineers would just need to display those SQL execution results in the form of good-looking charts.

Finally, we made it. We prototyped our tool in just one week, and named it OSS Insight, short for open source software insights. We continued to fine-tune it, and it was officially released on May 3.

How we deal with analytical queries with SQL​

Let's use one example to show you how we deal with complex analytical queries.

Analyze a GitHub collection: JavaScript frameworks​

OSS Insight can analyze popular GitHub collections by many metrics including the number of stars, issues, and contributors. Let’s identify which JavaScript framework has the most issue creators. This is an analytical query that includes aggregation and ranking. To get the result, we only need to execute one SQL statement:

SELECT
ci.repo_name AS repo_name,
COUNT(distinct actor_login) AS num
FROM
github_events ge
JOIN collection_items ci ON ge.repo_id = ci.repo_id
JOIN collections c ON ci.collection_id = c.id
WHERE
type = 'IssuesEvent'
AND action = 'opened'
AND c.id = 10005
-- Exclude Bots
and actor_login not like '%bot%'
and actor_login not in (select login from blacklist_users)
GROUP BY 1
ORDER BY 2 DESC
;

In the statement above, the collections and collection_items tables store the data of all GitHub repository collections in various areas. Each table has 30 rows. To get the order of issue creators, we need to associate the repository ID in the collection_items table with the real, 4.6-billion-row github_events table as shown below.


mysql> select * from collection_items where collection_id = 10005;
+-----+---------------+-----------------------+-----------+
| id | collection_id | repo_name | repo_id |
+-----+---------------+-----------------------+-----------+
| 127 | 10005 | marko-js/marko | 15720445 |
| 129 | 10005 | angular/angular | 24195339 |
| 131 | 10005 | emberjs/ember.js | 1801829 |
| 135 | 10005 | vuejs/vue | 11730342 |
| 136 | 10005 | vuejs/core | 137078487 |
| 138 | 10005 | facebook/react | 10270250 |
| 142 | 10005 | jashkenas/backbone | 952189 |
| 143 | 10005 | dojo/dojo | 10160528 |
...
30 rows in set (0.05 sec)

Next, let's look at the execution plan. TiDB is compatible with MySQL syntax, so its execution plan looks very similar to that of MySQL.

In the figure below, notice the parts in red boxes. The data in the table collection_items is read through distributed[row], which means this data is processed by TiDB’s row storage engine, TiKV. The data in the table github_events is read through distributed[column], which means this data is processed by TiDB’s columnar storage engine, TiFlash. TiDB uses both row and columnar storage engines to execute the same SQL statement. This is so convenient for OSS Insight because it doesn’t have to split the query into two statements.


TiDB execution plan

TiDB execution plan

TiDB returns the following result:

+-----------------------+-------+
| repo_name | num |
+-----------------------+-------+
| angular/angular | 11597 |
| facebook/react | 7653 |
| vuejs/vue | 6033 |
| angular/angular.js | 5624 |
| emberjs/ember.js | 2489 |
| sveltejs/svelte | 1978 |
| vuejs/core | 1792 |
| Polymer/polymer | 1785 |
| jquery/jquery | 1587 |
| jashkenas/backbone | 1463 |
| ionic-team/stencil | 1101 |
...
30 rows in set
Time: 7.809s

Then, we just need to draw the result with Apache Echarts into a more visualized chart as shown below.


JavaScript frameworks with the most issue creators

JavaScript frameworks with the most issue creators

Note: You can click the REQUEST INFO on the upper right side of each chart to get the SQL command for each result.

Feedback: People love it!​

After we released OSS Insight on May 3, we have received loud applause on social media, via emails and private messages, from many developers, engineers, researchers, and people who are passionate about the open source community in various companies and industries.

I am more than excited and grateful that so many people find OSS Insight interesting, helpful, and valuable. I am also proud that my team made such a wonderful product in such a short time.


Applause given by developers and organizations on Twitter-1

Applause given by developers and organizations on Twitter-1

Applause given by developers and organizations on Twitter

Lessons learned​

Looking back at the process we used to build this website, we have learned many mind-refreshing lessons.

First, quick doesn’t mean dirty, as long as we make the right choices. Building an insight tool in just one week is tricky, but thanks to those wonderful, ready-made, and open source projects such as TiDB, Docusaurus, and Echarts, we made it happen with efficiency and without compromising the quality.

Second, it’s crucial to select the right databaseβ€”especially one that supports SQL. TiDB is a distributed SQL database with great scalability that can handle both transactional and real-time analytical workloads. With its help, we can process billions of rows of data with ease, and use SQL commands to execute complicated real-time queries. Further, using TiDB means we can leverage its resources to go to market faster and get feedback promptly.

If you like our project or are interested in joining us, you’re welcome to submit your PRs to our GitHub repository. You can also follow us on Twitter for the latest information.

note

πŸ“Œ Join our workshop​

If you want to get your own insights, you can join our workshop and try using TiDB to support your own datasets.

- - + + \ No newline at end of file diff --git a/collections/3-d-physics-engines/index.html b/collections/3-d-physics-engines/index.html index bb1cb2c24f6..29f0dee4465 100644 --- a/collections/3-d-physics-engines/index.html +++ b/collections/3-d-physics-engines/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

3D Physics Engines - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/3-d-physics-engines/trends/index.html b/collections/3-d-physics-engines/trends/index.html index 19e5aa3dc2b..fd59ed771d6 100644 --- a/collections/3-d-physics-engines/trends/index.html +++ b/collections/3-d-physics-engines/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

3D Physics Engines - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/:slug/index.html b/collections/:slug/index.html index 77e114ab60a..807438c092c 100644 --- a/collections/:slug/index.html +++ b/collections/:slug/index.html @@ -21,13 +21,13 @@ - - + +

Loading - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/:slug/trends/index.html b/collections/:slug/trends/index.html index f973f0d1fa2..c5d3b930c58 100644 --- a/collections/:slug/trends/index.html +++ b/collections/:slug/trends/index.html @@ -21,13 +21,13 @@ - - + +

Loading - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/ansible-dev-tools/index.html b/collections/ansible-dev-tools/index.html index 9289c31111d..f496260f353 100644 --- a/collections/ansible-dev-tools/index.html +++ b/collections/ansible-dev-tools/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Ansible DevTools - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/ansible-dev-tools/trends/index.html b/collections/ansible-dev-tools/trends/index.html index 00f69479118..e959a6a5648 100644 --- a/collections/ansible-dev-tools/trends/index.html +++ b/collections/ansible-dev-tools/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Ansible DevTools - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/api-gateway/index.html b/collections/api-gateway/index.html index e16b342fa9d..684049c4c20 100644 --- a/collections/api-gateway/index.html +++ b/collections/api-gateway/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

API Gateway - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/api-gateway/trends/index.html b/collections/api-gateway/trends/index.html index c14f41f7ab6..0c39b7aa079 100644 --- a/collections/api-gateway/trends/index.html +++ b/collections/api-gateway/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

API Gateway - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/api-tool-for-developer/index.html b/collections/api-tool-for-developer/index.html index 7511cc7f0d1..8d44e1936a8 100644 --- a/collections/api-tool-for-developer/index.html +++ b/collections/api-tool-for-developer/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

API tool for developer - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/api-tool-for-developer/trends/index.html b/collections/api-tool-for-developer/trends/index.html index 0d55e1e14cf..d7e18481b24 100644 --- a/collections/api-tool-for-developer/trends/index.html +++ b/collections/api-tool-for-developer/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

API tool for developer - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/apm-tool/index.html b/collections/apm-tool/index.html index d79b04a2b24..aebf61e4269 100644 --- a/collections/apm-tool/index.html +++ b/collections/apm-tool/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

APM Tool - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/apm-tool/trends/index.html b/collections/apm-tool/trends/index.html index d6dcf54aeb6..b27d32ba93e 100644 --- a/collections/apm-tool/trends/index.html +++ b/collections/apm-tool/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

APM Tool - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/approximate-nearest-neighbor-library/index.html b/collections/approximate-nearest-neighbor-library/index.html index 85ab617ae77..d2cef433d85 100644 --- a/collections/approximate-nearest-neighbor-library/index.html +++ b/collections/approximate-nearest-neighbor-library/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Approximate Nearest Neighbor Library - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/approximate-nearest-neighbor-library/trends/index.html b/collections/approximate-nearest-neighbor-library/trends/index.html index 060ec7ba0af..50f08e2b72a 100644 --- a/collections/approximate-nearest-neighbor-library/trends/index.html +++ b/collections/approximate-nearest-neighbor-library/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Approximate Nearest Neighbor Library - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/artificial-intelligence-of-china/index.html b/collections/artificial-intelligence-of-china/index.html index 7825b04982c..9101a97ae3e 100644 --- a/collections/artificial-intelligence-of-china/index.html +++ b/collections/artificial-intelligence-of-china/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Artificial Intelligence of China - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/artificial-intelligence-of-china/trends/index.html b/collections/artificial-intelligence-of-china/trends/index.html index 033d0101faa..97730eaa6ca 100644 --- a/collections/artificial-intelligence-of-china/trends/index.html +++ b/collections/artificial-intelligence-of-china/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Artificial Intelligence of China - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/artificial-intelligence/index.html b/collections/artificial-intelligence/index.html index 7f382fd6b24..90fda2d87ac 100644 --- a/collections/artificial-intelligence/index.html +++ b/collections/artificial-intelligence/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Artificial Intelligence - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/artificial-intelligence/trends/index.html b/collections/artificial-intelligence/trends/index.html index 792102e68a8..b534c332ce4 100644 --- a/collections/artificial-intelligence/trends/index.html +++ b/collections/artificial-intelligence/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Artificial Intelligence - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/browser-extension-frameworks/index.html b/collections/browser-extension-frameworks/index.html index dddbe92f601..ee08b3d7b84 100644 --- a/collections/browser-extension-frameworks/index.html +++ b/collections/browser-extension-frameworks/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Browser Extension Frameworks - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/browser-extension-frameworks/trends/index.html b/collections/browser-extension-frameworks/trends/index.html index 40d89f2149a..f322fa1d118 100644 --- a/collections/browser-extension-frameworks/trends/index.html +++ b/collections/browser-extension-frameworks/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Browser Extension Frameworks - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/business-intelligence/index.html b/collections/business-intelligence/index.html index 4cf67aee1c7..dd4292345ca 100644 --- a/collections/business-intelligence/index.html +++ b/collections/business-intelligence/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Business Intelligence - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/business-intelligence/trends/index.html b/collections/business-intelligence/trends/index.html index 40be2bd58e5..35fbb546b0d 100644 --- a/collections/business-intelligence/trends/index.html +++ b/collections/business-intelligence/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Business Intelligence - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/business-management/index.html b/collections/business-management/index.html index 0bfc234291e..267634834e3 100644 --- a/collections/business-management/index.html +++ b/collections/business-management/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Business Management - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/business-management/trends/index.html b/collections/business-management/trends/index.html index 7032a86e867..1f0b1079ad1 100644 --- a/collections/business-management/trends/index.html +++ b/collections/business-management/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Business Management - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/chaos-engineering/index.html b/collections/chaos-engineering/index.html index 78546ff7546..75de6742516 100644 --- a/collections/chaos-engineering/index.html +++ b/collections/chaos-engineering/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Chaos Engineering - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/chaos-engineering/trends/index.html b/collections/chaos-engineering/trends/index.html index ae32ee0c2c5..70f4db8453a 100644 --- a/collections/chaos-engineering/trends/index.html +++ b/collections/chaos-engineering/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Chaos Engineering - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/chat-gpt-alternatives/index.html b/collections/chat-gpt-alternatives/index.html index bb4205faf7d..5518862b96f 100644 --- a/collections/chat-gpt-alternatives/index.html +++ b/collections/chat-gpt-alternatives/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

ChatGPT Alternatives - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/chat-gpt-alternatives/trends/index.html b/collections/chat-gpt-alternatives/trends/index.html index dcb36a93203..eb2d3e13ca4 100644 --- a/collections/chat-gpt-alternatives/trends/index.html +++ b/collections/chat-gpt-alternatives/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

ChatGPT Alternatives - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/chat-gpt-apps/index.html b/collections/chat-gpt-apps/index.html index 23967492311..172e8966ab2 100644 --- a/collections/chat-gpt-apps/index.html +++ b/collections/chat-gpt-apps/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

ChatGPT Apps - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/chat-gpt-apps/trends/index.html b/collections/chat-gpt-apps/trends/index.html index 734124d2fb6..c52705d3627 100644 --- a/collections/chat-gpt-apps/trends/index.html +++ b/collections/chat-gpt-apps/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

ChatGPT Apps - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/cicd/index.html b/collections/cicd/index.html index b2c75128e3e..da30e2b541f 100644 --- a/collections/cicd/index.html +++ b/collections/cicd/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

CICD - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/cicd/trends/index.html b/collections/cicd/trends/index.html index 8ef69b371d8..df67ad66163 100644 --- a/collections/cicd/trends/index.html +++ b/collections/cicd/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

CICD - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/cloud-financial-management-and-resource-optimization/index.html b/collections/cloud-financial-management-and-resource-optimization/index.html index 2a7255def9f..ea7f6989e7b 100644 --- a/collections/cloud-financial-management-and-resource-optimization/index.html +++ b/collections/cloud-financial-management-and-resource-optimization/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Cloud Financial Management and Resource Optimization - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/cloud-financial-management-and-resource-optimization/trends/index.html b/collections/cloud-financial-management-and-resource-optimization/trends/index.html index 06f3555d976..7a672c1d803 100644 --- a/collections/cloud-financial-management-and-resource-optimization/trends/index.html +++ b/collections/cloud-financial-management-and-resource-optimization/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Cloud Financial Management and Resource Optimization - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/computer-science-courses/index.html b/collections/computer-science-courses/index.html index 88e327e0263..235d858aa04 100644 --- a/collections/computer-science-courses/index.html +++ b/collections/computer-science-courses/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Computer Science Courses - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/computer-science-courses/trends/index.html b/collections/computer-science-courses/trends/index.html index 0ed375527b7..56d296c94d3 100644 --- a/collections/computer-science-courses/trends/index.html +++ b/collections/computer-science-courses/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Computer Science Courses - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/configuration-management-tools/index.html b/collections/configuration-management-tools/index.html index 40f9391406b..746bc1665c8 100644 --- a/collections/configuration-management-tools/index.html +++ b/collections/configuration-management-tools/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Configuration Management Tools - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/configuration-management-tools/trends/index.html b/collections/configuration-management-tools/trends/index.html index 7421c245592..fc2f621e980 100644 --- a/collections/configuration-management-tools/trends/index.html +++ b/collections/configuration-management-tools/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Configuration Management Tools - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/cpp-cli-parsing/index.html b/collections/cpp-cli-parsing/index.html index 5f705ab5642..2b6705dcce5 100644 --- a/collections/cpp-cli-parsing/index.html +++ b/collections/cpp-cli-parsing/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Cpp CLI Parsing - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/cpp-cli-parsing/trends/index.html b/collections/cpp-cli-parsing/trends/index.html index 755bfc9109d..9a18c4bba1e 100644 --- a/collections/cpp-cli-parsing/trends/index.html +++ b/collections/cpp-cli-parsing/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Cpp CLI Parsing - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/cross-platform-gui-tool/index.html b/collections/cross-platform-gui-tool/index.html index 99db3c5b753..63d8c7db1a5 100644 --- a/collections/cross-platform-gui-tool/index.html +++ b/collections/cross-platform-gui-tool/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Cross Platform GUI Tool - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/cross-platform-gui-tool/trends/index.html b/collections/cross-platform-gui-tool/trends/index.html index fcab2e47869..67dc91841c7 100644 --- a/collections/cross-platform-gui-tool/trends/index.html +++ b/collections/cross-platform-gui-tool/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Cross Platform GUI Tool - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/css-framework/index.html b/collections/css-framework/index.html index 3c2ff1cdc5c..35ca202c0bd 100644 --- a/collections/css-framework/index.html +++ b/collections/css-framework/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

CSS Framework - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/css-framework/trends/index.html b/collections/css-framework/trends/index.html index 0f795ff40e6..cb00c148bd7 100644 --- a/collections/css-framework/trends/index.html +++ b/collections/css-framework/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

CSS Framework - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/data-integration/index.html b/collections/data-integration/index.html index 119f9a27ac6..c29d5d67b71 100644 --- a/collections/data-integration/index.html +++ b/collections/data-integration/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Data Integration - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/data-integration/trends/index.html b/collections/data-integration/trends/index.html index 161a246fc1d..8e798773aa4 100644 --- a/collections/data-integration/trends/index.html +++ b/collections/data-integration/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Data Integration - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/diagram-as-code/index.html b/collections/diagram-as-code/index.html index 6918c4ef1e3..31fb3e77608 100644 --- a/collections/diagram-as-code/index.html +++ b/collections/diagram-as-code/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Diagram as Code - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/diagram-as-code/trends/index.html b/collections/diagram-as-code/trends/index.html index b4367d0a8f2..f2f3300b6cd 100644 --- a/collections/diagram-as-code/trends/index.html +++ b/collections/diagram-as-code/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Diagram as Code - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/distributed-file-storage/index.html b/collections/distributed-file-storage/index.html index e92f5ed1dd9..3c8a2c48ac4 100644 --- a/collections/distributed-file-storage/index.html +++ b/collections/distributed-file-storage/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Distributed File Storage - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/distributed-file-storage/trends/index.html b/collections/distributed-file-storage/trends/index.html index b66ddc9c408..2e57dd20363 100644 --- a/collections/distributed-file-storage/trends/index.html +++ b/collections/distributed-file-storage/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Distributed File Storage - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/finance/index.html b/collections/finance/index.html index a5df5539b6d..6f7015895eb 100644 --- a/collections/finance/index.html +++ b/collections/finance/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Finance - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/finance/trends/index.html b/collections/finance/trends/index.html index 66cc4f5c6a3..e267958bbfe 100644 --- a/collections/finance/trends/index.html +++ b/collections/finance/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Finance - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/game-engine/index.html b/collections/game-engine/index.html index b758e12d6f6..2635a9c9c2d 100644 --- a/collections/game-engine/index.html +++ b/collections/game-engine/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Game Engine - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/game-engine/trends/index.html b/collections/game-engine/trends/index.html index 8b117ebd145..c19c14dc1ab 100644 --- a/collections/game-engine/trends/index.html +++ b/collections/game-engine/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Game Engine - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/github-alternative/index.html b/collections/github-alternative/index.html index 557f9cdc8fe..0a1681b2bc9 100644 --- a/collections/github-alternative/index.html +++ b/collections/github-alternative/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Github Alternative - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/github-alternative/trends/index.html b/collections/github-alternative/trends/index.html index 1e0a4bb6cfb..3342834dc98 100644 --- a/collections/github-alternative/trends/index.html +++ b/collections/github-alternative/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Github Alternative - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/go-database/index.html b/collections/go-database/index.html index 465128a4122..909ef84c31b 100644 --- a/collections/go-database/index.html +++ b/collections/go-database/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Go Database - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/go-database/trends/index.html b/collections/go-database/trends/index.html index c4027703213..6836e5569e7 100644 --- a/collections/go-database/trends/index.html +++ b/collections/go-database/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Go Database - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/go-logging-libraries/index.html b/collections/go-logging-libraries/index.html index 9401976645b..472975f21dc 100644 --- a/collections/go-logging-libraries/index.html +++ b/collections/go-logging-libraries/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Go Logging Libraries - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/go-logging-libraries/trends/index.html b/collections/go-logging-libraries/trends/index.html index e1478a99c61..c19d286e921 100644 --- a/collections/go-logging-libraries/trends/index.html +++ b/collections/go-logging-libraries/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Go Logging Libraries - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/go-web-frameworks/index.html b/collections/go-web-frameworks/index.html index afac8a76208..530c932070c 100644 --- a/collections/go-web-frameworks/index.html +++ b/collections/go-web-frameworks/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Go Web Frameworks - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/go-web-frameworks/trends/index.html b/collections/go-web-frameworks/trends/index.html index 032a5c17b45..be5214d7158 100644 --- a/collections/go-web-frameworks/trends/index.html +++ b/collections/go-web-frameworks/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Go Web Frameworks - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/golang-orm/index.html b/collections/golang-orm/index.html index 9e1a5c5cbbb..f1f16c8b2ea 100644 --- a/collections/golang-orm/index.html +++ b/collections/golang-orm/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Golang ORM - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/golang-orm/trends/index.html b/collections/golang-orm/trends/index.html index 5a342a89bd5..f84fcf6e6c7 100644 --- a/collections/golang-orm/trends/index.html +++ b/collections/golang-orm/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Golang ORM - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/google-analytics-alternative/index.html b/collections/google-analytics-alternative/index.html index 7339a6cff5b..fafcaa569cd 100644 --- a/collections/google-analytics-alternative/index.html +++ b/collections/google-analytics-alternative/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Google Analytics Alternative - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/google-analytics-alternative/trends/index.html b/collections/google-analytics-alternative/trends/index.html index c40fc385dc9..4a981322d77 100644 --- a/collections/google-analytics-alternative/trends/index.html +++ b/collections/google-analytics-alternative/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Google Analytics Alternative - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/graph-database/index.html b/collections/graph-database/index.html index b8673a74488..c761520c08c 100644 --- a/collections/graph-database/index.html +++ b/collections/graph-database/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Graph Database - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/graph-database/trends/index.html b/collections/graph-database/trends/index.html index 8a744f99df4..1a6c72b876e 100644 --- a/collections/graph-database/trends/index.html +++ b/collections/graph-database/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Graph Database - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/graph-rag-knowledge-graph-based-rag/index.html b/collections/graph-rag-knowledge-graph-based-rag/index.html index 79eec86d88a..2a2022330a4 100644 --- a/collections/graph-rag-knowledge-graph-based-rag/index.html +++ b/collections/graph-rag-knowledge-graph-based-rag/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

GraphRAG - Knowledge Graph based RAG - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/graph-rag-knowledge-graph-based-rag/trends/index.html b/collections/graph-rag-knowledge-graph-based-rag/trends/index.html index 2700d66cbbd..03d6fd7b70c 100644 --- a/collections/graph-rag-knowledge-graph-based-rag/trends/index.html +++ b/collections/graph-rag-knowledge-graph-based-rag/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

GraphRAG - Knowledge Graph based RAG - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/headless-cms/index.html b/collections/headless-cms/index.html index e668abec6c0..826d9f3bdd3 100644 --- a/collections/headless-cms/index.html +++ b/collections/headless-cms/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Headless CMS - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/headless-cms/trends/index.html b/collections/headless-cms/trends/index.html index ea32440d479..ebb08f1014b 100644 --- a/collections/headless-cms/trends/index.html +++ b/collections/headless-cms/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Headless CMS - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/hyperledger-besu/index.html b/collections/hyperledger-besu/index.html index c93452538fe..1ce624694e6 100644 --- a/collections/hyperledger-besu/index.html +++ b/collections/hyperledger-besu/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Hyperledger Besu - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/hyperledger-besu/trends/index.html b/collections/hyperledger-besu/trends/index.html index ccc1725a7e0..52565e03813 100644 --- a/collections/hyperledger-besu/trends/index.html +++ b/collections/hyperledger-besu/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Hyperledger Besu - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/hyperledger-fabric/index.html b/collections/hyperledger-fabric/index.html index d3d85451b69..b730ee2f38b 100644 --- a/collections/hyperledger-fabric/index.html +++ b/collections/hyperledger-fabric/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Hyperledger Fabric - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/hyperledger-fabric/trends/index.html b/collections/hyperledger-fabric/trends/index.html index 327973e727c..8bc0c3f501a 100644 --- a/collections/hyperledger-fabric/trends/index.html +++ b/collections/hyperledger-fabric/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Hyperledger Fabric - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/hyperledger-foundation/index.html b/collections/hyperledger-foundation/index.html index 67ad80c6ce3..a6f4546f8bd 100644 --- a/collections/hyperledger-foundation/index.html +++ b/collections/hyperledger-foundation/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Hyperledger Foundation - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/hyperledger-foundation/trends/index.html b/collections/hyperledger-foundation/trends/index.html index 566c52eb8bd..60cef2a9d4f 100644 --- a/collections/hyperledger-foundation/trends/index.html +++ b/collections/hyperledger-foundation/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Hyperledger Foundation - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/i-os-framework/index.html b/collections/i-os-framework/index.html index d1b2d7f7076..4313ceac3e9 100644 --- a/collections/i-os-framework/index.html +++ b/collections/i-os-framework/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

iOS Framework - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/i-os-framework/trends/index.html b/collections/i-os-framework/trends/index.html index 86a5ec939c0..a9299bae0de 100644 --- a/collections/i-os-framework/trends/index.html +++ b/collections/i-os-framework/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

iOS Framework - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/identity-server/index.html b/collections/identity-server/index.html index f93335ea3d8..f3285fe4c30 100644 --- a/collections/identity-server/index.html +++ b/collections/identity-server/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Identity Server - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/identity-server/trends/index.html b/collections/identity-server/trends/index.html index 39faca13fee..34191dff080 100644 --- a/collections/identity-server/trends/index.html +++ b/collections/identity-server/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Identity Server - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/index.html b/collections/index.html index 07d23e68e83..b66d2339b29 100644 --- a/collections/index.html +++ b/collections/index.html @@ -21,13 +21,13 @@ - - + +

Explore Collections

Find insights about the monthly or historical rankings and trends in technical fields with curated repository lists.


​
+ NEW COLLECTION

Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-build-tool/index.html b/collections/javascript-build-tool/index.html index 0e7d6d82035..c7b0efc36ad 100644 --- a/collections/javascript-build-tool/index.html +++ b/collections/javascript-build-tool/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Javascript Build Tool - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-build-tool/trends/index.html b/collections/javascript-build-tool/trends/index.html index b69f61f3fca..e93fd43752c 100644 --- a/collections/javascript-build-tool/trends/index.html +++ b/collections/javascript-build-tool/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Javascript Build Tool - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-charting/index.html b/collections/javascript-charting/index.html index 0914cf032f8..ce1da9d28f4 100644 --- a/collections/javascript-charting/index.html +++ b/collections/javascript-charting/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Javascript Charting - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-charting/trends/index.html b/collections/javascript-charting/trends/index.html index 54173b93c4a..0cad7026346 100644 --- a/collections/javascript-charting/trends/index.html +++ b/collections/javascript-charting/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Javascript Charting - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-framework/index.html b/collections/javascript-framework/index.html index 1516aedcfa0..427f0d8438d 100644 --- a/collections/javascript-framework/index.html +++ b/collections/javascript-framework/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Javascript Framework - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-framework/trends/index.html b/collections/javascript-framework/trends/index.html index f8aab8536c2..153d7b030ef 100644 --- a/collections/javascript-framework/trends/index.html +++ b/collections/javascript-framework/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Javascript Framework - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-game-engine/index.html b/collections/javascript-game-engine/index.html index 52a30058a86..2105901dbb0 100644 --- a/collections/javascript-game-engine/index.html +++ b/collections/javascript-game-engine/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Javascript Game Engine - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-game-engine/trends/index.html b/collections/javascript-game-engine/trends/index.html index 32f9d47035e..d40753b69f8 100644 --- a/collections/javascript-game-engine/trends/index.html +++ b/collections/javascript-game-engine/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Javascript Game Engine - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-orm/index.html b/collections/javascript-orm/index.html index f3b23b4ec08..c98e1dc3ff6 100644 --- a/collections/javascript-orm/index.html +++ b/collections/javascript-orm/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

javascript ORM - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/javascript-orm/trends/index.html b/collections/javascript-orm/trends/index.html index 0c4c8d10af0..5836c3e4e91 100644 --- a/collections/javascript-orm/trends/index.html +++ b/collections/javascript-orm/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

javascript ORM - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/key-value-database/index.html b/collections/key-value-database/index.html index 1f1cf6da580..a15b16e706c 100644 --- a/collections/key-value-database/index.html +++ b/collections/key-value-database/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Key Value Database - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/key-value-database/trends/index.html b/collections/key-value-database/trends/index.html index 30490037cb9..8bbf52d5d9c 100644 --- a/collections/key-value-database/trends/index.html +++ b/collections/key-value-database/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Key Value Database - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/kubernetes-tooling/index.html b/collections/kubernetes-tooling/index.html index 5c5674dfe19..591a188e009 100644 --- a/collections/kubernetes-tooling/index.html +++ b/collections/kubernetes-tooling/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Kubernetes Tooling - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/kubernetes-tooling/trends/index.html b/collections/kubernetes-tooling/trends/index.html index e64a111cc8d..4a2bf49ca35 100644 --- a/collections/kubernetes-tooling/trends/index.html +++ b/collections/kubernetes-tooling/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Kubernetes Tooling - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/llm-dev-tools/index.html b/collections/llm-dev-tools/index.html index fcfdc5ed20d..12faac4cc86 100644 --- a/collections/llm-dev-tools/index.html +++ b/collections/llm-dev-tools/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

LLM DevTools - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/llm-dev-tools/trends/index.html b/collections/llm-dev-tools/trends/index.html index 0693387c0ab..4b2cdf05bb1 100644 --- a/collections/llm-dev-tools/trends/index.html +++ b/collections/llm-dev-tools/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

LLM DevTools - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/llm-tools/index.html b/collections/llm-tools/index.html index 325e7556694..288fa4a4897 100644 --- a/collections/llm-tools/index.html +++ b/collections/llm-tools/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

LLM Tools - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/llm-tools/trends/index.html b/collections/llm-tools/trends/index.html index b24e4923bad..dca1e842f23 100644 --- a/collections/llm-tools/trends/index.html +++ b/collections/llm-tools/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

LLM Tools - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/low-code-development-tool/index.html b/collections/low-code-development-tool/index.html index 5943ac0bd71..5e1aefa623e 100644 --- a/collections/low-code-development-tool/index.html +++ b/collections/low-code-development-tool/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Low Code Development Tool - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/low-code-development-tool/trends/index.html b/collections/low-code-development-tool/trends/index.html index c61f172a2fe..ff93ec056e5 100644 --- a/collections/low-code-development-tool/trends/index.html +++ b/collections/low-code-development-tool/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Low Code Development Tool - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/message-and-streaming/index.html b/collections/message-and-streaming/index.html index 96c5f8f663b..0405158c986 100644 --- a/collections/message-and-streaming/index.html +++ b/collections/message-and-streaming/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Message and Streaming - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/message-and-streaming/trends/index.html b/collections/message-and-streaming/trends/index.html index c12c65b6081..e23bef1d88d 100644 --- a/collections/message-and-streaming/trends/index.html +++ b/collections/message-and-streaming/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Message and Streaming - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/ml-in-rust/index.html b/collections/ml-in-rust/index.html index 24d7708ede8..f3f0e30290a 100644 --- a/collections/ml-in-rust/index.html +++ b/collections/ml-in-rust/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

ML in Rust - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/ml-in-rust/trends/index.html b/collections/ml-in-rust/trends/index.html index 0282e8a61be..6821ac0c258 100644 --- a/collections/ml-in-rust/trends/index.html +++ b/collections/ml-in-rust/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

ML in Rust - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/ml-ops-tools/index.html b/collections/ml-ops-tools/index.html index e4de5165716..fa082d1975d 100644 --- a/collections/ml-ops-tools/index.html +++ b/collections/ml-ops-tools/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

MLOps Tools - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/ml-ops-tools/trends/index.html b/collections/ml-ops-tools/trends/index.html index 53fdbb83292..83922b09671 100644 --- a/collections/ml-ops-tools/trends/index.html +++ b/collections/ml-ops-tools/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

MLOps Tools - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/modern-data-stack/index.html b/collections/modern-data-stack/index.html index 4f2b9c15e6c..f48b79ebafe 100644 --- a/collections/modern-data-stack/index.html +++ b/collections/modern-data-stack/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Modern Data Stack - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/modern-data-stack/trends/index.html b/collections/modern-data-stack/trends/index.html index ad7e74a7e90..72b2c9f94f2 100644 --- a/collections/modern-data-stack/trends/index.html +++ b/collections/modern-data-stack/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Modern Data Stack - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/monitoring-tool/index.html b/collections/monitoring-tool/index.html index 6ef5ca1728a..f280d68cd54 100644 --- a/collections/monitoring-tool/index.html +++ b/collections/monitoring-tool/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Monitoring Tool - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/monitoring-tool/trends/index.html b/collections/monitoring-tool/trends/index.html index a907991e3f0..9d2726a0781 100644 --- a/collections/monitoring-tool/trends/index.html +++ b/collections/monitoring-tool/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Monitoring Tool - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/networking-for-games/index.html b/collections/networking-for-games/index.html index 463cf0e7195..843fd1afa19 100644 --- a/collections/networking-for-games/index.html +++ b/collections/networking-for-games/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Networking for Games - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/networking-for-games/trends/index.html b/collections/networking-for-games/trends/index.html index c1952e329bd..6604e959728 100644 --- a/collections/networking-for-games/trends/index.html +++ b/collections/networking-for-games/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Networking for Games - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/open-source-data-catalogs/index.html b/collections/open-source-data-catalogs/index.html index 7fd7fabe2a6..c1a4a7b15df 100644 --- a/collections/open-source-data-catalogs/index.html +++ b/collections/open-source-data-catalogs/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Open Source Data Catalogs - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/open-source-data-catalogs/trends/index.html b/collections/open-source-data-catalogs/trends/index.html index f7935fcde66..6bb92a7b6df 100644 --- a/collections/open-source-data-catalogs/trends/index.html +++ b/collections/open-source-data-catalogs/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Open Source Data Catalogs - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/open-source-database/index.html b/collections/open-source-database/index.html index 02408e35f4a..37ccd825399 100644 --- a/collections/open-source-database/index.html +++ b/collections/open-source-database/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Open Source Database - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/open-source-database/trends/index.html b/collections/open-source-database/trends/index.html index 25ba672d2a1..924025c0878 100644 --- a/collections/open-source-database/trends/index.html +++ b/collections/open-source-database/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Open Source Database - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/open-source-forum-software/index.html b/collections/open-source-forum-software/index.html index a5aae05d01a..711bdf03dc8 100644 --- a/collections/open-source-forum-software/index.html +++ b/collections/open-source-forum-software/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Open Source Forum Software - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/open-source-forum-software/trends/index.html b/collections/open-source-forum-software/trends/index.html index ce0d0ffb16d..74729162838 100644 --- a/collections/open-source-forum-software/trends/index.html +++ b/collections/open-source-forum-software/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Open Source Forum Software - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/optimization-solvers/index.html b/collections/optimization-solvers/index.html index a16e50135ef..3174f071c3b 100644 --- a/collections/optimization-solvers/index.html +++ b/collections/optimization-solvers/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Optimization Solvers - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/optimization-solvers/trends/index.html b/collections/optimization-solvers/trends/index.html index c9dbb3b652f..6ac7197b5d8 100644 --- a/collections/optimization-solvers/trends/index.html +++ b/collections/optimization-solvers/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Optimization Solvers - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/paa-s/index.html b/collections/paa-s/index.html index 6a62d63e799..4ddb04be8ef 100644 --- a/collections/paa-s/index.html +++ b/collections/paa-s/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

PaaS - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/paa-s/trends/index.html b/collections/paa-s/trends/index.html index dd50b59c1e1..e1f130dc4dc 100644 --- a/collections/paa-s/trends/index.html +++ b/collections/paa-s/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

PaaS - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/password-manager/index.html b/collections/password-manager/index.html index c01f96810f4..b0255d90acc 100644 --- a/collections/password-manager/index.html +++ b/collections/password-manager/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Password Manager - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/password-manager/trends/index.html b/collections/password-manager/trends/index.html index 6dfb69bcf80..18b5fbd6644 100644 --- a/collections/password-manager/trends/index.html +++ b/collections/password-manager/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Password Manager - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/programming-language-of-china/index.html b/collections/programming-language-of-china/index.html index e3d0f1f3962..d4a76f88b8b 100644 --- a/collections/programming-language-of-china/index.html +++ b/collections/programming-language-of-china/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Programming Language of China - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/programming-language-of-china/trends/index.html b/collections/programming-language-of-china/trends/index.html index acf0fbb84ff..99d54a058f8 100644 --- a/collections/programming-language-of-china/trends/index.html +++ b/collections/programming-language-of-china/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Programming Language of China - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/programming-language/index.html b/collections/programming-language/index.html index 9d1643e5d43..035f467a3f5 100644 --- a/collections/programming-language/index.html +++ b/collections/programming-language/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Programming Language - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/programming-language/trends/index.html b/collections/programming-language/trends/index.html index fdbb2b786f7..140cf106f03 100644 --- a/collections/programming-language/trends/index.html +++ b/collections/programming-language/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Programming Language - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/react-framework/index.html b/collections/react-framework/index.html index 400893afde5..1d33b74df0c 100644 --- a/collections/react-framework/index.html +++ b/collections/react-framework/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

React Framework - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/react-framework/trends/index.html b/collections/react-framework/trends/index.html index e0ee815fc21..baf71e13ee7 100644 --- a/collections/react-framework/trends/index.html +++ b/collections/react-framework/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

React Framework - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/reactive-monolith-frameworks/index.html b/collections/reactive-monolith-frameworks/index.html index a0016c1091f..bc4d4502cb5 100644 --- a/collections/reactive-monolith-frameworks/index.html +++ b/collections/reactive-monolith-frameworks/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Reactive Monolith Frameworks - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/reactive-monolith-frameworks/trends/index.html b/collections/reactive-monolith-frameworks/trends/index.html index 45dc5987ae3..dcdb45e1752 100644 --- a/collections/reactive-monolith-frameworks/trends/index.html +++ b/collections/reactive-monolith-frameworks/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Reactive Monolith Frameworks - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/relational-database/index.html b/collections/relational-database/index.html index a1dd7cfa539..49e3f225f05 100644 --- a/collections/relational-database/index.html +++ b/collections/relational-database/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Relational Database - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/relational-database/trends/index.html b/collections/relational-database/trends/index.html index 436f0e78656..c1b5fb9b58d 100644 --- a/collections/relational-database/trends/index.html +++ b/collections/relational-database/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Relational Database - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/remote-desktop-tool/index.html b/collections/remote-desktop-tool/index.html index 03f83ffda3f..a2ea1b46bbd 100644 --- a/collections/remote-desktop-tool/index.html +++ b/collections/remote-desktop-tool/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Remote Desktop Tool - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/remote-desktop-tool/trends/index.html b/collections/remote-desktop-tool/trends/index.html index e1b4b079838..179ae38eb52 100644 --- a/collections/remote-desktop-tool/trends/index.html +++ b/collections/remote-desktop-tool/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Remote Desktop Tool - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/robotics/index.html b/collections/robotics/index.html index dd3a790ce7e..f004c0c4440 100644 --- a/collections/robotics/index.html +++ b/collections/robotics/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Robotics - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/robotics/trends/index.html b/collections/robotics/trends/index.html index 8fb1cd31407..0381b756355 100644 --- a/collections/robotics/trends/index.html +++ b/collections/robotics/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Robotics - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/rust-database/index.html b/collections/rust-database/index.html index c1f8d5f11e0..06b969d32a0 100644 --- a/collections/rust-database/index.html +++ b/collections/rust-database/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Rust Database - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/rust-database/trends/index.html b/collections/rust-database/trends/index.html index 5f84c47765b..745868693c3 100644 --- a/collections/rust-database/trends/index.html +++ b/collections/rust-database/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Rust Database - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/search-engine/index.html b/collections/search-engine/index.html index a669f3d4d41..44e73d0f3ab 100644 --- a/collections/search-engine/index.html +++ b/collections/search-engine/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Search Engine - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/search-engine/trends/index.html b/collections/search-engine/trends/index.html index c41f90af0e2..3092dcc9fed 100644 --- a/collections/search-engine/trends/index.html +++ b/collections/search-engine/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Search Engine - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/security-tool/index.html b/collections/security-tool/index.html index fa5643f3796..4155473f23d 100644 --- a/collections/security-tool/index.html +++ b/collections/security-tool/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Security Tool - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/security-tool/trends/index.html b/collections/security-tool/trends/index.html index 2dfbbe2219e..cfecdf95e5a 100644 --- a/collections/security-tool/trends/index.html +++ b/collections/security-tool/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Security Tool - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/segment-alternative/index.html b/collections/segment-alternative/index.html index 6f01eb3c60e..ac2b4fc38cd 100644 --- a/collections/segment-alternative/index.html +++ b/collections/segment-alternative/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Segment Alternative - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/segment-alternative/trends/index.html b/collections/segment-alternative/trends/index.html index 595433b4f4c..265f273e87c 100644 --- a/collections/segment-alternative/trends/index.html +++ b/collections/segment-alternative/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Segment Alternative - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/serverless-framework/index.html b/collections/serverless-framework/index.html index a290de12450..50cde935727 100644 --- a/collections/serverless-framework/index.html +++ b/collections/serverless-framework/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Serverless Framework - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/serverless-framework/trends/index.html b/collections/serverless-framework/trends/index.html index f5db90d0f6d..45745186e0d 100644 --- a/collections/serverless-framework/trends/index.html +++ b/collections/serverless-framework/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Serverless Framework - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/slack-alternative/index.html b/collections/slack-alternative/index.html index fba22444094..f693c93ef81 100644 --- a/collections/slack-alternative/index.html +++ b/collections/slack-alternative/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Slack Alternative - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/slack-alternative/trends/index.html b/collections/slack-alternative/trends/index.html index 5d604865af4..b6bd726943b 100644 --- a/collections/slack-alternative/trends/index.html +++ b/collections/slack-alternative/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Slack Alternative - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/stable-diffusion-ecosystem/index.html b/collections/stable-diffusion-ecosystem/index.html index 369ada329d3..7195325ae58 100644 --- a/collections/stable-diffusion-ecosystem/index.html +++ b/collections/stable-diffusion-ecosystem/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Stable Diffusion Ecosystem - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/stable-diffusion-ecosystem/trends/index.html b/collections/stable-diffusion-ecosystem/trends/index.html index 113d42d6ebb..20ded664f82 100644 --- a/collections/stable-diffusion-ecosystem/trends/index.html +++ b/collections/stable-diffusion-ecosystem/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Stable Diffusion Ecosystem - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/static-site-generator/index.html b/collections/static-site-generator/index.html index eff347de7cc..f77f572ec76 100644 --- a/collections/static-site-generator/index.html +++ b/collections/static-site-generator/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Static Site Generator - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/static-site-generator/trends/index.html b/collections/static-site-generator/trends/index.html index 00319c8c67b..7d961960368 100644 --- a/collections/static-site-generator/trends/index.html +++ b/collections/static-site-generator/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Static Site Generator - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/terminal/index.html b/collections/terminal/index.html index a6a09e1ef20..f6c7973dac6 100644 --- a/collections/terminal/index.html +++ b/collections/terminal/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Terminal - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/terminal/trends/index.html b/collections/terminal/trends/index.html index c12aa53616b..36e4d98cb39 100644 --- a/collections/terminal/trends/index.html +++ b/collections/terminal/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Terminal - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/testing-tools/index.html b/collections/testing-tools/index.html index b85fdb8d15b..77545bf2b01 100644 --- a/collections/testing-tools/index.html +++ b/collections/testing-tools/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Testing Tools - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/testing-tools/trends/index.html b/collections/testing-tools/trends/index.html index 631d4f4a78c..17c8f21f4bf 100644 --- a/collections/testing-tools/trends/index.html +++ b/collections/testing-tools/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Testing Tools - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/text-editor/index.html b/collections/text-editor/index.html index 6e85083100d..2f699f65a76 100644 --- a/collections/text-editor/index.html +++ b/collections/text-editor/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Text Editor - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/text-editor/trends/index.html b/collections/text-editor/trends/index.html index 8e7cbc7f3d0..2893b1c9ff8 100644 --- a/collections/text-editor/trends/index.html +++ b/collections/text-editor/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Text Editor - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/time-series-database/index.html b/collections/time-series-database/index.html index e1643abc3f1..cf498918403 100644 --- a/collections/time-series-database/index.html +++ b/collections/time-series-database/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Time Series Database - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/time-series-database/trends/index.html b/collections/time-series-database/trends/index.html index b3589eec0e8..a51cd87d0bd 100644 --- a/collections/time-series-database/trends/index.html +++ b/collections/time-series-database/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Time Series Database - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/tui-framework/index.html b/collections/tui-framework/index.html index 3524ce6129b..80bc3ba3e7e 100644 --- a/collections/tui-framework/index.html +++ b/collections/tui-framework/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

TUI Framework - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/tui-framework/trends/index.html b/collections/tui-framework/trends/index.html index e060692575c..9de9c85c5d1 100644 --- a/collections/tui-framework/trends/index.html +++ b/collections/tui-framework/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

TUI Framework - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/ui-framework-and-u-ikit/index.html b/collections/ui-framework-and-u-ikit/index.html index c512ffed227..2b7f4178019 100644 --- a/collections/ui-framework-and-u-ikit/index.html +++ b/collections/ui-framework-and-u-ikit/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

UI Framework and UIkit - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/ui-framework-and-u-ikit/trends/index.html b/collections/ui-framework-and-u-ikit/trends/index.html index 8762f612ffe..ebd1b7af74f 100644 --- a/collections/ui-framework-and-u-ikit/trends/index.html +++ b/collections/ui-framework-and-u-ikit/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

UI Framework and UIkit - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/vector-database-vector-store/index.html b/collections/vector-database-vector-store/index.html index b6b7db0a1be..a1b7a9aa2b3 100644 --- a/collections/vector-database-vector-store/index.html +++ b/collections/vector-database-vector-store/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Vector Database & Vector Store - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/vector-database-vector-store/trends/index.html b/collections/vector-database-vector-store/trends/index.html index 6d776a928a8..d477fbcbb03 100644 --- a/collections/vector-database-vector-store/trends/index.html +++ b/collections/vector-database-vector-store/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Vector Database & Vector Store - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/vector-search-engine/index.html b/collections/vector-search-engine/index.html index 56a96e86d00..f26dc57b720 100644 --- a/collections/vector-search-engine/index.html +++ b/collections/vector-search-engine/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Vector Search Engine - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/vector-search-engine/trends/index.html b/collections/vector-search-engine/trends/index.html index ddfdf3eeb53..67d644a9e54 100644 --- a/collections/vector-search-engine/trends/index.html +++ b/collections/vector-search-engine/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Vector Search Engine - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/virtual-reality/index.html b/collections/virtual-reality/index.html index d948bc448fb..e3e7b58f6b6 100644 --- a/collections/virtual-reality/index.html +++ b/collections/virtual-reality/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Virtual Reality - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/virtual-reality/trends/index.html b/collections/virtual-reality/trends/index.html index e096c058ee2..770add729b2 100644 --- a/collections/virtual-reality/trends/index.html +++ b/collections/virtual-reality/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Virtual Reality - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web-assembly-runtime/index.html b/collections/web-assembly-runtime/index.html index 6d2fb94691d..22d9261384b 100644 --- a/collections/web-assembly-runtime/index.html +++ b/collections/web-assembly-runtime/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

WebAssembly Runtime - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web-assembly-runtime/trends/index.html b/collections/web-assembly-runtime/trends/index.html index ed68b61cac5..a0e749127eb 100644 --- a/collections/web-assembly-runtime/trends/index.html +++ b/collections/web-assembly-runtime/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

WebAssembly Runtime - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web-framework/index.html b/collections/web-framework/index.html index 4412292d186..de34027c165 100644 --- a/collections/web-framework/index.html +++ b/collections/web-framework/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Web Framework - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web-framework/trends/index.html b/collections/web-framework/trends/index.html index 1ab4a0ab584..ccae2673c90 100644 --- a/collections/web-framework/trends/index.html +++ b/collections/web-framework/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Web Framework - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web-rtc/index.html b/collections/web-rtc/index.html index 5a22df74eb0..817263d9c34 100644 --- a/collections/web-rtc/index.html +++ b/collections/web-rtc/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

WebRTC - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web-rtc/trends/index.html b/collections/web-rtc/trends/index.html index 6d2168d7d6d..76b12c8ef3f 100644 --- a/collections/web-rtc/trends/index.html +++ b/collections/web-rtc/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

WebRTC - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web-scanner/index.html b/collections/web-scanner/index.html index afaf068d242..18dbeef0ee7 100644 --- a/collections/web-scanner/index.html +++ b/collections/web-scanner/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Web Scanner - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web-scanner/trends/index.html b/collections/web-scanner/trends/index.html index aa8bb006cf8..e4f48ff7882 100644 --- a/collections/web-scanner/trends/index.html +++ b/collections/web-scanner/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Web Scanner - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web3/index.html b/collections/web3/index.html index 8e770944cda..d5ab9ceed67 100644 --- a/collections/web3/index.html +++ b/collections/web3/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Web3 - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/web3/trends/index.html b/collections/web3/trends/index.html index 7b1c65c18bf..4fed3b039cb 100644 --- a/collections/web3/trends/index.html +++ b/collections/web3/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Web3 - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/workflow-scheduler/index.html b/collections/workflow-scheduler/index.html index efb5ae6de84..1a53d68d983 100644 --- a/collections/workflow-scheduler/index.html +++ b/collections/workflow-scheduler/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Workflow Scheduler - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/workflow-scheduler/trends/index.html b/collections/workflow-scheduler/trends/index.html index 21eb24b9ad1..7b20adc469f 100644 --- a/collections/workflow-scheduler/trends/index.html +++ b/collections/workflow-scheduler/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Workflow Scheduler - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/wysiwyg-editor/index.html b/collections/wysiwyg-editor/index.html index 83d6147892d..2665e32c939 100644 --- a/collections/wysiwyg-editor/index.html +++ b/collections/wysiwyg-editor/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

WYSIWYG Editor - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/wysiwyg-editor/trends/index.html b/collections/wysiwyg-editor/trends/index.html index 71e595b16d9..1eb724f9d5b 100644 --- a/collections/wysiwyg-editor/trends/index.html +++ b/collections/wysiwyg-editor/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

WYSIWYG Editor - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/x-as-code/index.html b/collections/x-as-code/index.html index d0e2229f659..6869e18c612 100644 --- a/collections/x-as-code/index.html +++ b/collections/x-as-code/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

X as Code - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/x-as-code/trends/index.html b/collections/x-as-code/trends/index.html index 605a977473f..0c5f010c532 100644 --- a/collections/x-as-code/trends/index.html +++ b/collections/x-as-code/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

X as Code - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/zapier-alternatives/index.html b/collections/zapier-alternatives/index.html index 5f9219e6f54..96b91b7ba7d 100644 --- a/collections/zapier-alternatives/index.html +++ b/collections/zapier-alternatives/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Zapier Alternatives - Ranking

Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.

Last 28 Days / Month-to-Month Ranking

The following table ranks repositories using three metrics: stars, pull requests, and issues. The table compares last 28 days or the most recent two months of data and indicates whether repositories are moving up or down the rankings.


Monthly Ranking - Stars

RepositoryStarsTotal

Year-to-year Ranking

The following pipeline chart shows how repo rankings have changed year to year since 2011. Repos are ranked by stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/collections/zapier-alternatives/trends/index.html b/collections/zapier-alternatives/trends/index.html index d7808531a5d..bffac9af821 100644 --- a/collections/zapier-alternatives/trends/index.html +++ b/collections/zapier-alternatives/trends/index.html @@ -21,13 +21,13 @@ - - + +
Edit This Collection

Zapier Alternatives - Popularity Trends

The following dynamic charts show the popularity trends of GitHub repositories in this collection. You can display the popularity of repositories based on the number of stars, pull requests, pull request creators, and issues.

Bar Chart Race

An animated bar chart visualizes the annual total growth of each repository since 2011. You can display the growth of repositories based on the number of stars, pull requests, pul request creators, and issues.


Historical Trending of Top 10

A line chart displays the current top 10 repositories and how their ranking have changed since 2011. You can display rankings based on the number of stars, pull requests, pull request creators, and issues.


Wonder how OSS Insight works?

logo

How do we implement OSS Insight ?

Blog: 10 min read

read more
logo

Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

Tutorial: 10 min read

read more
logo

Join a Workshop to Setup a Mini OSS Insight

Tutorial: 25 min

read more

Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
#OSSInsightΒ #TiDBCloud

Star
- - + + \ No newline at end of file diff --git a/compare/index.html b/compare/index.html index 9af522723f8..b0dabab79a1 100644 --- a/compare/index.html +++ b/compare/index.html @@ -21,13 +21,13 @@ - - + +
- - + + \ No newline at end of file diff --git a/docs/about/index.html b/docs/about/index.html index 676f4efeaf4..cbd0966c0de 100644 --- a/docs/about/index.html +++ b/docs/about/index.html @@ -21,14 +21,14 @@ - - + +

About OSS Insight πŸ‘οΈ

GitHub Data Explorerβ€’Rankingsβ€’Developer Analyticsβ€’Repository Analyticsβ€’Collectionsβ€’Workshopβ€’Blogsβ€’Twitter

OSS Insight is a powerful tool that provides comprehensive, valuable, and trending insights into the open source world by analyzing 5+ billion rows of GitHub events data.

OSS Insight's GitHub Data Explorer provides a new way to explore GitHub data. Simply ask your question in natural language and GitHub Data Explorer will generate SQL, query the data, and present the results visually.

OSS Insight also provides in-depth analysis of individual GitHub repositories and developers, as well as the ability to compare two repositories using the same metrics.


Feature 1: GPT-Powered Data Exploration​

GitHub Data Explorer provides a new way to discover trends and insights into 5+ billion rows of GitHub data. Simply ask your question in natural language and GitHub Data Explorer will generate SQL, query the data, and present the results visually. It's built with Chat2Query, a GPT-powered SQL generator in TiDB Cloud.

Examples:


Feature 2: Technical Fields Analytics​


Feature 3: Developer Analytics​

Insights about developer productivity, work cadence, and collaboration from developers' contribution behavior.

  • Basic:
    • Stars, behavior, most used languages,and contribution trends
    • Code (commits, pull requests, pull request size and code line changes), code reviews, and issues
  • Advanced:
    • Contribution time distribution for all kind of contribution activities
    • Monthly stats about contribution activities in all public repositories
Developer Analytics

Feature 4: Repository Analytics​

Insights about the code update frequency & degree of popularity from repository’s status.

  • Basic:

    • star, fork, issues, commits, pull requests, contributors, programming languages, lines of code modified
    • Historical Trends of these metrics
    • Time Cost of issues, pull requests
  • Advanced:

    • Geographical Distribution of stargazers, issue creators, pull requests creators
    • Company Distribution of stargazers, issue creators, pull requests creators
Repository Analytics

Examples:


Feature 5: Compare Projects​

Compare two projects using the repo metrics mentioned in Repository Analytics.

Examples:


Sponsors​

tidb cloud logo
- - + + \ No newline at end of file diff --git a/docs/api/collection-repo-ranking-by-issues/index.html b/docs/api/collection-repo-ranking-by-issues/index.html index 96df2dead51..cea2fdefb0c 100644 --- a/docs/api/collection-repo-ranking-by-issues/index.html +++ b/docs/api/collection-repo-ranking-by-issues/index.html @@ -21,13 +21,13 @@ - - + +

Repository ranking by issues​

Rank the GitHub repositories in the specified collection according to the number of issues.

Path Parameters
    collection_id number required

    The ID of collection

Query Parameters
    period string

    Possible values: [past_28_days, past_month]

    Default value: past_28_days

    The period of the range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • repo_id string

    The repository ID

    repo_name string

    The repository name

    current_period_growth string

    issues growth in the current period (past 28 days / current month)

    past_period_growth string

    issues growth in the past period (The 28 days before the past 28 days / past month)

    growth_pop string

    The period-over-period growth of issues

    rank_pop string

    The period-over-period rank changes of issues

    total string

    The current total issues of repository

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/collection-repo-ranking-by-prs/index.html b/docs/api/collection-repo-ranking-by-prs/index.html index 9627e7c22d6..f86b2d82e36 100644 --- a/docs/api/collection-repo-ranking-by-prs/index.html +++ b/docs/api/collection-repo-ranking-by-prs/index.html @@ -21,13 +21,13 @@ - - + +

Repository ranking by prs​

Rank the GitHub repositories in the specified collection according to the number of pull requests.

Path Parameters
    collection_id number required

    The ID of collection

Query Parameters
    period string

    Possible values: [past_28_days, past_month]

    Default value: past_28_days

    The period of the range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • repo_id string

    The repository ID

    repo_name string

    The repository name

    current_period_growth string

    prs growth in the current period (past 28 days / current month)

    past_period_growth string

    prs growth in the past period (The 28 days before the past 28 days / past month)

    growth_pop string

    The period-over-period growth of prs

    rank_pop string

    The period-over-period rank changes of prs

    total string

    The current total prs of repository

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/collection-repo-ranking-by-stars/index.html b/docs/api/collection-repo-ranking-by-stars/index.html index 14ff1fea96d..9354e949eb9 100644 --- a/docs/api/collection-repo-ranking-by-stars/index.html +++ b/docs/api/collection-repo-ranking-by-stars/index.html @@ -21,13 +21,13 @@ - - + +

Repository ranking by stars​

Rank the GitHub repositories in the specified collection according to the number of stars.

Path Parameters
    collection_id number required

    The ID of collection

Query Parameters
    period string

    Possible values: [past_28_days, past_month]

    Default value: past_28_days

    The period of the range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • repo_id string

    The repository ID

    repo_name string

    The repository name

    current_period_growth string

    Stars growth in the current period (past 28 days / current month)

    past_period_growth string

    Stars growth in the past period (The 28 days before the past 28 days / past month)

    growth_pop string

    The period-over-period growth of stars

    rank_pop string

    The period-over-period rank changes of stars

    total string

    The current total stars of repository

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html index ab45b217208..16e126fd55c 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -21,14 +21,14 @@ - - + +
Version: v1beta

OSSInsight Public API

OSSInsight Public APIs (beta) provide a convenient way to access insight data for open source projects on GitHub, supplementing the existing GitHub API.

It provides data query in different dimensions, including:

Usage​

The OSSInsight Public API is designed to follow the OpenAPI specification and can be accessed by initiating HTTP requests using the command line curl or web request libraries in different programming languages.

Base URL​

All API requests are based on the following URL:

https://api.ossinsight.io/v1

Authentication​

No authentication is required for beta version of public APIs, but there are rate limits for API requests.

Note: We will add authentication way for larger API requests in future releases.

Rate Limit​

For each IP address, the rate limit allows for up to 600 requests per hour, which can be checked by the following fields in the Response Header to see the current usage:

x-ratelimit-limit: 600
x-ratelimit-remaining: 599

In addition, we have also set up a global rate limit of up to 1000 requests per minute, which can be checked by the following fields in the Response Header to see the current usage:

x-ratelimit-limit-minute: 1000
x-ratelimit-remaining-minute: 97

Example​

For example, if you want to know what countries the stargazers in the pingcap/tidb repository are located in, you can make a request using the curl command as follows:

curl https://api.ossinsight.io/v1/repos/pingcap/tidb/stargazers/countries
Example Response
{
"type": "sql_endpoint",
"data": {
"columns": [
{
"col": "country_or_area",
"data_type": "CHAR",
"nullable": true
},
{
"col": "count",
"data_type": "BIGINT",
"nullable": true
},
{
"col": "percentage",
"data_type": "DECIMAL",
"nullable": true
}
],
"rows": [
{
"count": "9183",
"country_or_area": "CN",
"percentage": "0.5936"
},
{
"count": "1542",
"country_or_area": "US",
"percentage": "0.0997"
},
{
"count": "471",
"country_or_area": "JP",
"percentage": "0.0304"
}
],
"result": {
"code": 200,
"message": "Query OK!",
"start_ms": 1690351487809,
"end_ms": 1690351487930,
"latency": "121ms",
"row_count": 132,
"row_affect": 0,
"limit": 300,
"databases": [
"gharchive_dev"
]
}
}
}

Request New API​

If the API in the documentation does not meet your query requirements, please contact us as follows:

- - + + \ No newline at end of file diff --git a/docs/api/issue-creators-history/index.html b/docs/api/issue-creators-history/index.html index f665ebeb59b..2276a72ee9f 100644 --- a/docs/api/issue-creators-history/index.html +++ b/docs/api/issue-creators-history/index.html @@ -21,13 +21,13 @@ - - + +

Issue creators history​

Querying the historical trend of the number of issue creators in a given repository.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    per string

    Possible values: [day, week, month]

    Default value: month

    The time interval of the data points.

    from string

    Default value: 2000-01-01

    The start date of the time range.

    to string

    Default value: 2099-01-01

    The end date of the time range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • date string

    The date of the data point

    issue_creators string

    The number of issue creators on the date point

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-collections/index.html b/docs/api/list-collections/index.html index 22095d2e9ad..5042bdb6348 100644 --- a/docs/api/list-collections/index.html +++ b/docs/api/list-collections/index.html @@ -21,13 +21,13 @@ - - + +

List collections​

List collections.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • repo_id string

    Repository ID

    repo_name string

    Repository name

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-countries-of-issue-creators/index.html b/docs/api/list-countries-of-issue-creators/index.html index 0eac749507f..10f2900c14b 100644 --- a/docs/api/list-countries-of-issue-creators/index.html +++ b/docs/api/list-countries-of-issue-creators/index.html @@ -21,8 +21,8 @@ - - + +
@@ -30,7 +30,7 @@ In the overall data, about 3.5% of GitHub users provided valid country/region information.

Note: By default, the API does not count users without valid country/region information. If you need to count these users, you can set the exclude_unknown parameter to false.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    exclude_unknown boolean

    Default value: true

    Whether to exclude issue creators with unknown country/region information

    from string

    Default value: 2000-01-01

    The start date of the range.

    to string

    Default value: 2099-01-01

    The end date of the range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • country_code string

    Country/region code

    issue_creators string

    Number of issue creators from the country/region

    percentage string

    Percentage of issue creators from the country/region

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-countries-of-pr-creators/index.html b/docs/api/list-countries-of-pr-creators/index.html index 06baad39f5d..5ac962590cb 100644 --- a/docs/api/list-countries-of-pr-creators/index.html +++ b/docs/api/list-countries-of-pr-creators/index.html @@ -21,8 +21,8 @@ - - + +
@@ -30,7 +30,7 @@ In the overall data, about 3.5% of GitHub users provided valid country/region information.

Note: By default, the API does not count users without valid country/region information. If you need to count these users, you can set the exclude_unknown parameter to false.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    exclude_unknown boolean

    Default value: true

    Whether to exclude issue creators with unknown country/region information

    from string

    Default value: 2000-01-01

    The start date of the range.

    to string

    Default value: 2099-01-01

    The end date of the range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • country_code string

    Country/region code

    percentage string

    Percentage of pull request creators from the country/region

    pull_request_creators string

    Number of pull request creators from the country/region

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-countries-of-stargazers/index.html b/docs/api/list-countries-of-stargazers/index.html index 52076a1ccbf..df79435e372 100644 --- a/docs/api/list-countries-of-stargazers/index.html +++ b/docs/api/list-countries-of-stargazers/index.html @@ -21,8 +21,8 @@ - - + +
@@ -30,7 +30,7 @@ In the overall data, about 3.5% of GitHub users provided valid country/region information.

Note: By default, the API does not count users without valid country/region information. If you need to count these users, you can set the exclude_unknown parameter to false.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    exclude_unknown boolean

    Default value: true

    Whether to exclude issue creators with unknown country/region information

    from string

    Default value: 2000-01-01

    The start date of the range.

    to string

    Default value: 2099-01-01

    The end date of the range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • country_code string

    Country/region code

    stargazers string

    Number of stargazers from the country/region

    percentage string

    Percentage of stargazers from the country/region

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-hot-collections/index.html b/docs/api/list-hot-collections/index.html index 5c0a88731e0..bb8e16d2741 100644 --- a/docs/api/list-hot-collections/index.html +++ b/docs/api/list-hot-collections/index.html @@ -21,13 +21,13 @@ - - + +

List hot collections​

List hot collections with top repositories of the collection.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • id string

    Collection ID

    name string

    Collection name

    repos string

    The number of repositories in the collection

    repo_id string

    Repository ID

    repo_name string

    Repository name

    repo_current_period_rank string

    The rank of the repository in the collection in the current period

    repo_past_period_rank string

    The rank of the repository in the collection in the past period

    repo_rank_changes string

    The rank changes of the repository in the collection

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-issue-creators/index.html b/docs/api/list-issue-creators/index.html index 1801d189fcc..c85c105a876 100644 --- a/docs/api/list-issue-creators/index.html +++ b/docs/api/list-issue-creators/index.html @@ -21,13 +21,13 @@ - - + +

List issue creators​

Querying the issue creators for a given repository.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    sort string

    Possible values: [issues, issues-desc, first_issue_opened_at, first_issue_opened_at-desc, login]

    Default value: issues-desc

    Specify the field by which to sort the issue creators list (values with a -desc suffix indicate descending sorting)

    exclude_bots boolean

    Default value: true

    Whether to exclude robot accounts (includes GitHub App and normal users whose username matches the pattern, for example: ti-chi-bot).

    page integer

    Default value: 1

    Page number of the results to fetch.

    page_size integer

    Default value: 30

    The number of results per page (max 100).

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • id string

    The ID of the issue creator

    login string

    The login (username) of the issue creator

    name string

    The name of the issue creator

    issues string

    The number of issues created by the issue creator

    first_issue_opened_at string

    The date of the first issue created by the issue creator

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-organizations-of-issue-creators/index.html b/docs/api/list-organizations-of-issue-creators/index.html index cf534646279..97968d7b3b2 100644 --- a/docs/api/list-organizations-of-issue-creators/index.html +++ b/docs/api/list-organizations-of-issue-creators/index.html @@ -21,8 +21,8 @@ - - + +
@@ -30,7 +30,7 @@ In the overall data, about 5.62% of GitHub users provided valid organization information.

Note: By default, the API does not count users without valid organization information. If you need to count these users, you can set the exclude_unknown parameter to false.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    exclude_unknown boolean

    Default value: true

    Whether to exclude issue creators with unknown organization information

    from string

    Default value: 2000-01-01

    The start date of the range.

    to string

    Default value: 2099-01-01

    The end date of the range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • issue_creators string

    Number of issue creators from the organization

    org_name string

    Name of the organization

    percentage string

    Percentage of issue creators from the organization

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-organizations-of-pr-creators/index.html b/docs/api/list-organizations-of-pr-creators/index.html index ba1542d64f2..348c9cc647f 100644 --- a/docs/api/list-organizations-of-pr-creators/index.html +++ b/docs/api/list-organizations-of-pr-creators/index.html @@ -21,8 +21,8 @@ - - + +
@@ -30,7 +30,7 @@ In the overall data, about 5.62% of GitHub users has valid organization information.

Note: By default, the API does not count users without valid organization information. If you need to count these users, you can set the exclude_unknown parameter to false.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    exclude_unknown boolean

    Default value: true

    Whether to exclude PR creators with unknown organization information

    from string

    Default value: 2000-01-01

    The start date of the range.

    to string

    Default value: 2099-01-01

    The end date of the range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • org_name string

    Name of the organization

    percentage string

    Percentage of pull request creators from the organization

    pull_request_creators string

    Number of pull request creators from the organization

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-organizations-of-stargazers/index.html b/docs/api/list-organizations-of-stargazers/index.html index fabb4dbaf46..81609410263 100644 --- a/docs/api/list-organizations-of-stargazers/index.html +++ b/docs/api/list-organizations-of-stargazers/index.html @@ -21,8 +21,8 @@ - - + +
@@ -30,7 +30,7 @@ In the overall data, about 5.62% of GitHub users provided valid organization information.

Note: By default, the API does not count users without valid organization information. If you need to count these users, you can set the exclude_unknown parameter to false.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    exclude_unknown boolean

    Default value: true

    Whether to exclude stargazers with unknown organization information

    from string

    Default value: 2000-01-01

    The start date of the range.

    to string

    Default value: 2099-01-01

    The end date of the range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • org_name string

    Name of the organization

    percentage string

    Percentage of stargazers from the organization

    stargazers string

    Number of stargazers from the organization

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-pull-request-creators/index.html b/docs/api/list-pull-request-creators/index.html index fa63f4050f2..f7c240ddf03 100644 --- a/docs/api/list-pull-request-creators/index.html +++ b/docs/api/list-pull-request-creators/index.html @@ -21,13 +21,13 @@ - - + +

List pull request creators​

Querying the pull request creators list in a given repository.

This API provides multiple ways to sort the query results, for example:

  • sort=prs-desc (Default): Sorted in descending order based on prs field (the number of PRs they have contributed), meaning that the contributor with the most PRs is at the top.
  • sort=first_pr_merged_at-desc: Sorted in descending order based on first_pr_merged_at field (the time of their first merged PR), which means you can got a list of new code contributors of the repository.
Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    sort string

    Possible values: [login, prs, prs-desc, first_pr_opened_at, first_pr_opened_at-desc, first_pr_merged_at, first_pr_merged_at-desc]

    Default value: prs-desc

    Specify the field by which to sort the pull request creators list (values with a -desc suffix indicate descending sorting)

    exclude_bots boolean

    Default value: true

    Whether to exclude robot accounts (includes GitHub App and normal users whose username matches the pattern, for example: ti-chi-bot).

    page integer

    Default value: 1

    Page number of the results to fetch.

    page_size integer

    Default value: 30

    The number of results per page (max 100).

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • id string

    The ID of the pull request creator

    login string

    The login (username) of the pull request creator

    name string

    The name of the pull request creator

    prs string

    The number of pull requests created by the pull request creator

    first_pr_opened_at string

    The date of the first pull request created by the pull request creator

    first_pr_merged_at string

    The date of the first merged pull request be merged into the repository

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-repos-of-collection/index.html b/docs/api/list-repos-of-collection/index.html index 2694ff1d615..debe2793b32 100644 --- a/docs/api/list-repos-of-collection/index.html +++ b/docs/api/list-repos-of-collection/index.html @@ -21,13 +21,13 @@ - - + +

List collection repositories​

List the repositories of collection.

Path Parameters
    collection_id number required

    The ID of collection

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • repo_id string

    Repository ID

    repo_name string

    Repository name

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/list-trending-repos/index.html b/docs/api/list-trending-repos/index.html index b095f841505..df8495de699 100644 --- a/docs/api/list-trending-repos/index.html +++ b/docs/api/list-trending-repos/index.html @@ -21,13 +21,13 @@ - - + +

Trending repos is an open source alternative to GitHub trends, which showcases recently popular open source projects in the GitHub community.

Note

Please URI encode the requested parameters, e.g. C++ needs to be encoded as C%2B%2B.

☁️ Daily run on TiDB Cloud, analyze upon dataset that has over 6 billion GitHub events.

Query Parameters
    period string

    Possible values: [past_24_hours, past_week, past_month, past_3_months]

    Default value: past_24_hours

    Specify the period of time to calculate trending repos.

    language string

    Possible values: [All, JavaScript, Java, Python, PHP, C++, C#, TypeScript, Shell, C, Ruby, Rust, Go, Kotlin, HCL, PowerShell, CMake, Groovy, PLpgSQL, TSQL, Dart, Swift, HTML, CSS, Elixir, Haskell, Solidity, Assembly, R, Scala, Julia, Lua, Clojure, Erlang, Common Lisp, Emacs Lisp, OCaml, MATLAB, Objective-C, Perl, Fortran]

    Default value: All

    Specify using which programming language to filter trending repos. If not specified, all languages will be included.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • repo_id string

    ID of the repo

    repo_name string

    Name of the repo

    primary_language string

    Primary programing language used by the repo

    description string

    Description of the repo

    stars string

    Number of stars in the period

    forks string

    Number of forks in the period

    pull_requests string

    Number of pull requests in the period

    pushes string

    Number of pushes in the period

    total_score string

    Total score of the repo

    contributor_logins string

    Comma separated list of active contributor logins

    collection_names string

    Comma separated list of collection names

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/pull-request-creators-history/index.html b/docs/api/pull-request-creators-history/index.html index 36c7b0973ef..8aa59c334d6 100644 --- a/docs/api/pull-request-creators-history/index.html +++ b/docs/api/pull-request-creators-history/index.html @@ -21,13 +21,13 @@ - - + +

Pull request creators history​

Querying the historical trend of the number of pull request creators in a given repository.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    per string

    Possible values: [day, week, month]

    Default value: month

    The time interval of the data points.

    from string

    Default value: 2000-01-01

    The start date of the time range.

    to string

    Default value: 2099-01-01

    The end date of the time range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • date string

    The date of the data point

    pull_request_creators string

    The cumulative number of pull request creators

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/api/showcase/index.html b/docs/api/showcase/index.html index 42eff259c19..cc001e31e22 100644 --- a/docs/api/showcase/index.html +++ b/docs/api/showcase/index.html @@ -21,13 +21,13 @@ - - + +
- - + + \ No newline at end of file diff --git a/docs/api/stargazers-history/index.html b/docs/api/stargazers-history/index.html index 41c1e5ec33c..27c34fbcd00 100644 --- a/docs/api/stargazers-history/index.html +++ b/docs/api/stargazers-history/index.html @@ -21,13 +21,13 @@ - - + +

Stargazers history​

Querying the historical trend of the number of stargazers in a given repository.

Path Parameters
    owner string required

    The owner of the repo.

    Example: pingcap
    repo string required

    The name of the repo.

    Example: tidb
Query Parameters
    per string

    Possible values: [day, week, month]

    Default value: month

    The time interval of the data points.

    from string

    Default value: 2000-01-01

    The start date of the time range.

    to string

    Default value: 2099-01-01

    The end date of the time range.

Responses

Default Response


Schema
    type string required

    Possible values: [sql_endpoint]

    The type of the endpoint.

    data object required
    columns object[] required
  • Array [
  • col string required

    The name of the column in the query result.

    data_type string required

    Possible values: [CHAR, BIGINT, DECIMAL, INT, UNSIGNED BIGINT, TINYINT, TIMESTAMP, TEXT, VARCHAR, DATETIME, DOUBLE, FLOAT, DATE, TIME, YEAR, MEDIUMINT, SMALLINT, BIT, BINARY, VARBINARY, JSON, ENUM, SET, TINYTEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB]

    The data type of the column.

    nullable boolean required

    Whether the column is nullable.

  • ]
  • rows object[] required
  • Array [
  • date string

    The date of the data point

    stargazers string

    The cumulative number of stargazers

  • ]
  • result object required
    code number

    The code of the response.

    message string

    The message of the response.

    start_ms number

    The start time of the query in milliseconds.

    end_ms number

    The end time of the query in milliseconds.

    latency string

    The latency of the query.

    row_count number

    The number of rows in the query result.

    row_affect number

    The number of rows affected by the query.

    limit number

    The maximum number of rows in the query result.

    databases string[]

    The databases used in the query.

    property name* any
Loading...
- - + + \ No newline at end of file diff --git a/docs/faq/index.html b/docs/faq/index.html index d4bb6bc29af..90845beba9c 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -21,13 +21,13 @@ - - + +

FAQ

Where does these data come from?​

Why the stars(or other metrics) on this site is different from that on GitHub?​

5 reasons:

  • GitHub /events api only publish WatchEvent(this means star), there is no UnWatchEvent;
  • GitHub would lost data if there services were down;
  • GitHub repo has switched between private and public;
  • The repo data had issues, which were manually fixed by GitHub;
  • The GitHub user login or repo name has changed;
- - + + \ No newline at end of file diff --git a/docs/workshop/index.html b/docs/workshop/index.html index bb77396d05a..6dae96cd941 100644 --- a/docs/workshop/index.html +++ b/docs/workshop/index.html @@ -21,13 +21,13 @@ - - + +

Overview

Welcome to the OSS Insight workshop. Here, you can:

  1. Learn a new MySQL-Compatible but scalable and built-in analytical engine database;
  2. Build interesting small applications.

In addition, you can also get a FREE quota for database usage FOREVER.

- - + + \ No newline at end of file diff --git a/docs/workshop/ossinsight-lite/advanced-features/index.html b/docs/workshop/ossinsight-lite/advanced-features/index.html index 62c2c646a64..7f73db80a23 100644 --- a/docs/workshop/ossinsight-lite/advanced-features/index.html +++ b/docs/workshop/ossinsight-lite/advanced-features/index.html @@ -21,8 +21,8 @@ - - + +
@@ -30,7 +30,7 @@
  • Click on Generate new token(classic) button.
  • Enter a suitable description for the token, e.g., "Repo Tracker Workshop".
  • For public repositories, leave all the scopes unchecked (you only need basic read access). If you want to sync data from your private repositories as well, check the "repo" scope.
  • Click Generate token at the bottom of the page.
  • Make sure to copy the generated token as you won't be able to see it again. Save it securely, as you will need it later.
  • - - + + \ No newline at end of file diff --git a/docs/workshop/ossinsight-lite/introduction/index.html b/docs/workshop/ossinsight-lite/introduction/index.html index 87dec14625c..2146b72eb2c 100644 --- a/docs/workshop/ossinsight-lite/introduction/index.html +++ b/docs/workshop/ossinsight-lite/introduction/index.html @@ -21,13 +21,13 @@ - - + +

    Workshop: OSS Insight Lite

    Introduction​

    By joining this workshop, you can get:

    1. A free MySQL-Compatible serverless database with analytical capability
    2. A well-designed personal/repos GitHub activities analysis tool

    Live Demo: http://ossinsight-lite.vercel.app/

    Requirements​

    1. GitHub Action - free
    2. TiDB Serverless - free
    3. Vercel - free

    Step by Step​

    It will take about 1 hour to build your own dashboard.

    - - + + \ No newline at end of file diff --git a/docs/workshop/ossinsight-lite/setup-github-action/index.html b/docs/workshop/ossinsight-lite/setup-github-action/index.html index 0096709b6e8..8876f32e521 100644 --- a/docs/workshop/ossinsight-lite/setup-github-action/index.html +++ b/docs/workshop/ossinsight-lite/setup-github-action/index.html @@ -21,8 +21,8 @@ - - + +
    @@ -30,7 +30,7 @@
  • Navigate to the Settings -> Secrets tab of your forked repository.
  • Add the following secrets:
    • ACCESS_TOKEN: Your GitHub Personal Access Token from Step 1
    • DATABASE_URL: The TiDB Cloud MySQL connection information in URI format from Step 2
    • REPO_FULL_NAME: The full name of the repository you want to track (e.g., owner/repo-name)
    1. Navigate to the "Actions" tab of your forked repo on GitHub.
    2. On the left side, click on "Sync GitHub Repo Data" workflow.
    3. Click the Run workflow dropdown button located on the right side of the interface.
    4. Select the main branch and click on Run workflow.
    5. The GitHub Action will execute, syncing the specified repository data to the TiDB Cloud after a few minutes.
    - - + + \ No newline at end of file diff --git a/docs/workshop/ossinsight-lite/setup-tidb-serverless/index.html b/docs/workshop/ossinsight-lite/setup-tidb-serverless/index.html index 1eb77dac77d..697aa34634d 100644 --- a/docs/workshop/ossinsight-lite/setup-tidb-serverless/index.html +++ b/docs/workshop/ossinsight-lite/setup-tidb-serverless/index.html @@ -21,13 +21,13 @@ - - + +

    Step 1: Setup TiDB Serverless

    Signup TiDB Cloud​

    Register for a TiDB Cloud account at https://tidbcloud.com/signup.

    Create a serverless cluster​

    Create a serverless cluster in the TiDB Cloud dashboard.

    1. Make sure select Serverless in Choose a Tier section;
    2. Leave other as default;

    Get connection info​

    1. Click Connect on top right;

    2. Select Connect With then you will see:

      host: 'gateway01.<your_region>.prod.aws.tidbcloud.com'
      port: 4000,
      user: 'xxxxxxxxxxxxxxx.root',
      password: '<your_password>',
    - - + + \ No newline at end of file diff --git a/docs/workshop/ossinsight-lite/setup-vercel/index.html b/docs/workshop/ossinsight-lite/setup-vercel/index.html index 307be5423c0..e95805c1304 100644 --- a/docs/workshop/ossinsight-lite/setup-vercel/index.html +++ b/docs/workshop/ossinsight-lite/setup-vercel/index.html @@ -21,14 +21,14 @@ - - + +

    Step 3: Setup Dashboard with Vercel

    1. With the data synced to TiDB Cloud, use your preferred SQL client to connect to the TiDB database using the connection information provided in Step 2.
    2. Start querying the data to get insights on repositories. Some sample SQL queries you might use to explore the data are: For example, to calculate how many contributors for repo:
    SELECT
    COUNT(DISTINCT `id`)
    FROM
    `users`;

    To find out how many open issues:

    SELECT repos.owner, repos.name, COUNT(*) as open_issue_count
    FROM repos
    JOIN issues ON repos.id = issues.repo_id
    WHERE issues.closed = 0
    GROUP BY repos.owner, repos.name
    ORDER BY open_issue_count DESC;

    To find out the average followers count of the users who starred in this repo:

    SELECT
    AVG(users.`followers_count`)
    FROM
    `starred_repos`
    JOIN `users` ON `starred_repos`.`user_id` = `users`.`id`;
    - - + + \ No newline at end of file diff --git a/experimental/index.html b/experimental/index.html index 5c70b052e2e..ec2056086a6 100644 --- a/experimental/index.html +++ b/experimental/index.html @@ -21,13 +21,13 @@ - - + +

    Loading... Β 

    - - + + \ No newline at end of file diff --git a/explore/index.html b/explore/index.html index dec09e6d84a..90d3cfb4c6a 100644 --- a/explore/index.html +++ b/explore/index.html @@ -21,13 +21,13 @@ - - + +

    GitHub Data Explorer

    Explore
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ,
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ,
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ,
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    GitHub data with no SQL or plotting skills. Powered by tidb cloud logo

    FAQ

    How it works

    Input your question
    Translate the question into SQL
    Visualize and output results

    Can I use the AI-powered feature with my own dataset?

    Yes! We integrated the capabilities of Text2SQL into Chat2Query, an AI-powered SQL generator in TiDB Cloud. If you want to explore any other dataset, Chat2Query is an excellent choice.

    What are the limitations of GitHub Data Explorer?

    1. AI is still a work in progress with limitations
      Its limitations include:
      • A lack of context and knowledge of the specific database structure
      • A lack of domain knowledgestructure
      • Inability to produce the most efficient SQL statement for large and complex queries
      • Sometimes service instability

      To help AI understand your query intention, please use clear, specific phrases in your question. Check out our question optimization tips. We're constantly working on improving and optimizing it, so any feedback you have is greatly appreciated. Thanks for using!

    2. The dataset itself is a limitation for our tool
    3. All the data we use on this website is sourced from GH Archive, a non-profit project that records and archives all GitHub event data since 2011 (public data only). If a question falls outside of the scope of the available data, it may be difficult for our tool to provide a satisfactory answer.

    Why did it fail to generate an SQL query?

    Potential reasons:
    • The AI was unable to understand or misunderstood your question, resulting in an inability to generate SQL. To know more about AI's limitations, you can check out the previous question.
    • Network issues.
    • You had excessive requests. Note that you can ask up to 15 questions per hour.

    The potential solution is phrase your question which is related GitHub with short, specific words, then try again. And we strongly recommend you use our query templates near the search box to start your exploring.

    The query result is not satisfactory. How can I optimize my question?

    We use AI to translate your question to SQL. But it's still a work in progress with limitations.
    To help AI understand your query intention and get a desirable query result, you can rephrase your question using clear, specific phrases related to GitHub. We recommend:
    • Using a GitHub login account instead of a nickname. For example, change "Linus" to "torvalds."
    • Using a GitHub repository's full name. For example, change "react" to "facebook/react."
    • Using GitHub terms. For example, to find Python projects with the most forks in 2022, change your query "The most popular Python projects 2022" to "Python projects with the most forks in 2022."

    You can also get inspiration from the suggested queries near the search box.

    Why did it fail to generate a chart?

    Potential reasons:
    • The SQL query was incorrect or could not be generated, so the answer could not be found in the database, and the chart could not be generated.
    • The answer was found, but the AI did not choose the correct chart template, so the chart could not be generated.
    • The SQL query was correct, but no answer was found, so the chart could not be displayed.

    What technology is GitHub Data Explorer built on?

    Its major technologies include:
    • Data source: GH Archive and GitHub event API
      GH Archive collects and archives all GitHub data since 2011 and updates it hourly. By combining the GH Archive data and the GitHub event API, we can gain streaming, real-time data updates.
    • One database for all workloads: TiDB Cloud
      Facing continuously growing large-volume data (currently 5+ billion GitHub events), we need a database that can:
      • Store massive data
      • Handle complex analytical queries
      • Serve online traffic
      TiDB is an ideal solution. TiDB Cloud is its fully managed cloud Database as a Service. It lets users launch TiDB in seconds and offers the pay-as-you-go pricing model. Therefore, we choose TiDB Cloud as our backend database.
    • AI engine: OpenAI
    • To enable users without SQL knowledge to query with this tool, we use ChatGPT API to translate the natural language to SQL.

    Still having trouble? Contact us, we're happy to help!

    Wonder how OSS Insight works?

    logo

    How do we implement OSS Insight ?

    Blog: 10 min read

    read more
    logo

    Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

    Tutorial: 10 min read

    read more
    logo

    Join a Workshop to Setup a Mini OSS Insight

    Tutorial: 25 min

    read more

    Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
    #OSSInsightΒ #TiDBCloud

    Star
    - - + + \ No newline at end of file diff --git a/index.html b/index.html index 26ee7cea47a..ea1fc0b42aa 100644 --- a/index.html +++ b/index.html @@ -21,13 +21,13 @@ - - + +
    SELECT insights FROM
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ,
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ,
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ,
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    GitHub events

    Open Source Software
    Β Insight

    ​

    Deep insight into developers and repos on GitHub
    about stars, pull requests, issues, pushes, comments, reviews...

    TiDBTiDBClaim credits for open-source heroes! ->


    Events per 5 seconds

    What is happening on GitHub NOW!Β 

      πŸ“– Hot Collections

      Insights about the monthly and historical rankings and trends in technical fields with curated repository lists.

      Wonder how OSS Insight works?

      logo

      How do we implement OSS Insight ?

      Blog: 10 min read

      read more
      logo

      Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

      Tutorial: 10 min read

      read more
      logo

      Join a Workshop to Setup a Mini OSS Insight

      Tutorial: 25 min

      read more

      Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
      #OSSInsightΒ #TiDBCloud

      Star
      - - + + \ No newline at end of file diff --git a/open-source-heroes/index.html b/open-source-heroes/index.html index 0195daf76b0..6080cd49e5d 100644 --- a/open-source-heroes/index.html +++ b/open-source-heroes/index.html @@ -3,7 +3,7 @@ -Open Source Heroes Claim FREE TiDB Serverless Credits! | OSS Insight +Open Source Heroes Claim FREE TiDB Serverless Credits! | OSS Insight @@ -21,13 +21,13 @@ - - + +
      -

      Fuel Your Next Big Idea:
      TiDB Serverless Credits for Open Source Heroes

      TiDB loves open-source. We contribute code, sponsor projects and deeply appreciate developers who actively contribute to the community.
      As a token of our appreciation, we're offering up to $2000 in free TiDB Serverless credits to fuel open-source hero's next big idea.

      Simply log in with your GitHub account to calculate and claim your credits.
      OSSInsight LogoTiDB Logo

      Free Database Credits for Open Source Heroes

      TiDB loves open-source. We contribute code, sponsor projects, and appreciate developers who do so.
      As a token of our appreciation, we're offering up to $2000 free TiDB Serverless credits to fuel open-source hero's next big idea.

      Log in with GitHub account to claim your credits.

      How it Works

      Link your Github

    • Claim your Credits

    • Start Building

      With TiDB Serverless⚑️, you can:

      TiDB Serverless is a highly scalable, vector search built-in, and cost-effective serverless database, which is dedicated to powering modern applications with simple solutions. Read more.

      With it, you can:

      • Build highly scalable applications with ease
      • Leverage advanced features like vector search
      • Enjoy seamless integration with what you use
      • Pay only for what you use, and only beyond free credits
      Try Free

      With TiDB Serverless credits πŸ’° , you can:

      • Personal Website Hosting: Create websites or blogs using WordPress or Joomla.
      • RAG Agent Prototyping: Develop RAG agents with your own knowledge base.
      • Minecraft Server: Run a personal Minecraft server, where you can play on with your friends all day.
      • Start small businesses: Power online stores, community forums, or customer feedback systems.
      • Data API Backends: Host small databases for managing small-scale workloads like API backend
      • Scale startups: Deploy SaaS applications, analytics dashboards, or e-commerce platforms with of thousands users and continuous read/write operations.
      • Data-heavy applications: Scale applications with distributed databases, handle enterprise-level systems, or power data-heavy industries like fintech or healthcare.
      • Power large-scale enterprises: Handle millions of users with high performance and reliability requirements.
      • Run mission-critical systems: Support complex applications like fintech, gaming, or healthcare solutions.

      *The scenarios above are for reference only. The actual bill will be based on real usage.

      We Build with TiDB

      • @Kaustav Chakravorty
        Senior Architect, Flipkart
        Logistics

        In the following years, we will definitely migrate more clusters from MySQL to TiDB, use TiCDC to set up multi-region clusters on AWS for failover, and try TiFlash for instant analytical queries.

      • @Henry Qin
        Software Engineer
        FinTech

        TiDB's architecture, sort of a SQL layer on top of a key value store, was more scalable and more likely to cause fewer problems down the line. With TiDB, we don't need to worry about cross-charge transactions. That's huge.

      • @Sky Dong
        Founding Engineer, Chaintool
        Web 3

        The ease and comfort of getting started are paramount for us, and the fully managed operations of TiDB Serverless allow us to focus more on our core business, ensuring that our development resources are utilized where they matter most.

      • @Eliotte
        Hackathon AI Track Winner, Quizmefy
        AI App

        We heavily utilized TiDB's serverless feature to power our backend. This allowed us to scale our backend to handle thousands of requests per second effortlessly while keeping costs low, as we only pay for what we use.

      • @Kaustav Chakravorty
        Senior Architect, Flipkart
        E-Commerce

        The NO.1 benefit is simplicity. With TiDB, our applications can retain their SQL data model and the ACID guarantees. We don't have to implement any kind of sharding logic, and the database management becomes simpler too.

      • @Thomas Yu
        Founder, KNN3 Networks
        Web 3

        TiDB Serverless is especially beneficial for experimental or early-stage features. It's cost-effective for startups, scalable, and development-friendly.

      • @Godwin
        Project Owner of AI-Mon
        AI App

        With TiDB Serverless, setting up a database is as easy as clicking a button. It handles analytics seamlessly, without the need for manual scaling.

      • @Kentaro Kitagawa
        Senior DBA, LINE Corporation
        Internet

        Scale-in and scale-out in a cluster configuration is also easy, and the ecosystem is very rich, with operation monitoring tools such as Grafana being able to be installed immediately with the installation command (TiUP).

      • @Yaohui Sun
        Data Platform Lead, Chainbase
        Web 3

        TiDB Serverless's automatic scaling capabilities allow us to swiftly scale up to meet performance demands and scale down during quieter periods for optimizing costs.

      TiDB ❀️ Open Source

      We take pride in our open-source roots.
      With the developer community, we align our product, to make sure it perfectly fits modern application developer's needs.

      -
      ✨ GitHub Stars
      -
      ✏️ Pull Requests
      873
      πŸ‘« Contributors

      Discover TiDB on GitHub ->

      FAQ

      Why would TiDB commit to the open source community?

      TiDB believes that open source fosters innovation, collaboration, and community-driven development. By actively contributing to and supporting open-source projects, TiDB aims to create a vibrant ecosystem that benefits all participants.

      How do I claim my credits?

      Once you’ve logged in with your GitHub Username and your credits have been calculated, you can redeem them by logging into your OssInsight or TiDB Cloud account. The credits will be automatically applied to your account. Make sure you use the the same Github account for both OSSInsight SSO login and TiDB Cloud SSO login.

      How can I contact support if I face issues redeeming my credits?

      You can reach out to our support team through ossinsight@pingcap.com

      Legal Statement

      General Terms

      By participating in this campaign, you agree to these terms. PingCAP can change or end the campaign at any time without notice. Follow all rules, laws, and GitHub's terms of service.

      Who Can Participate

      The campaign is open to anyone, except PingCAP employees, contractors, affiliates, and their immediate family members.

      Rewards

      TiDB Cloud credits are valid for 1 year and cannot be transferred, refunded, or exchanged for cash. The cutoff date to claim the credits is October 1, 2025. PingCAP reserves the right to end the promotion earlier or extend the cutoff date.

      Privacy

      By participating, you agree that PingCAP can use your data according to our Privacy Policy. Your data will only be used to run this campaign and won't be shared without your consent, except as required by law.

      No Guarantees

      PingCAP does not guarantee the availability or operation of the TiDB software, the TiDB Cloud platform, or the credits offered in this campaign. Use them at your own risk.

      Limitation of Liability

      PingCAP is not responsible for any losses or damages that may happen from participating in this campaign or using the TiDB Cloud credits.

      This campaign follows the laws of California. Any disputes will be resolved through arbitration in San Mateo, California, USA.

      Contact Us

      For questions or concerns, please contact us at https://www.pingcap.com/contact-us/.

      - - +

      Fuel Your Next Big Idea:
      TiDB Serverless Credits for Open Source Heroes

      TiDB loves open-source. We contribute code, sponsor projects and deeply appreciate developers who actively contribute to the community.
      As a token of our appreciation, we're offering up to $2000 in free TiDB Serverless credits to fuel open-source hero's next big idea.

      Simply log in with your GitHub account to calculate and claim your credits.
      OSSInsight LogoTiDB Logo

      Free Database Credits for Open Source Heroes

      TiDB loves open-source. We contribute code, sponsor projects, and appreciate developers who do so.
      As a token of our appreciation, we're offering up to $2000 free TiDB Serverless credits to fuel open-source hero's next big idea.

      Log in with GitHub account to claim your credits.

      How it Works

      Link your Github

    • Claim your Credits

    • Start Building

      With TiDB Serverless⚑️, you can:

      TiDB Serverless is a highly scalable, vector search built-in, and cost-effective serverless database, which is dedicated to powering modern applications with simple solutions. Read more.

      With it, you can:

      • Build highly scalable applications with ease
      • Leverage advanced features like vector search
      • Enjoy seamless integration with what you use
      • Pay only for what you use, and only beyond free credits
      Try Free

      With TiDB Serverless credits πŸ’° , you can:

      • Personal Website Hosting: Create websites or blogs using WordPress or Joomla.
      • RAG Agent Prototyping: Develop RAG agents with your own knowledge base.
      • Minecraft Server: Run a personal Minecraft server, where you can play on with your friends all day.
      • Start small businesses: Power online stores, community forums, or customer feedback systems.
      • Data API Backends: Host small databases for managing small-scale workloads like API backend
      • Scale startups: Deploy SaaS applications, analytics dashboards, or e-commerce platforms with of thousands users and continuous read/write operations.
      • Data-heavy applications: Scale applications with distributed databases, handle enterprise-level systems, or power data-heavy industries like fintech or healthcare.
      • Power large-scale enterprises: Handle millions of users with high performance and reliability requirements.
      • Run mission-critical systems: Support complex applications like fintech, gaming, or healthcare solutions.

      *The scenarios above are for reference only. The actual bill will be based on real usage.

      We Build with TiDB

      • @Kaustav Chakravorty
        Senior Architect, Flipkart
        Logistics

        In the following years, we will definitely migrate more clusters from MySQL to TiDB, use TiCDC to set up multi-region clusters on AWS for failover, and try TiFlash for instant analytical queries.

      • @Henry Qin
        Software Engineer
        FinTech

        TiDB's architecture, sort of a SQL layer on top of a key value store, was more scalable and more likely to cause fewer problems down the line. With TiDB, we don't need to worry about cross-charge transactions. That's huge.

      • @Sky Dong
        Founding Engineer, Chaintool
        Web 3

        The ease and comfort of getting started are paramount for us, and the fully managed operations of TiDB Serverless allow us to focus more on our core business, ensuring that our development resources are utilized where they matter most.

      • @Eliotte
        Hackathon AI Track Winner, Quizmefy
        AI App

        We heavily utilized TiDB's serverless feature to power our backend. This allowed us to scale our backend to handle thousands of requests per second effortlessly while keeping costs low, as we only pay for what we use.

      • @Kaustav Chakravorty
        Senior Architect, Flipkart
        E-Commerce

        The NO.1 benefit is simplicity. With TiDB, our applications can retain their SQL data model and the ACID guarantees. We don't have to implement any kind of sharding logic, and the database management becomes simpler too.

      • @Thomas Yu
        Founder, KNN3 Networks
        Web 3

        TiDB Serverless is especially beneficial for experimental or early-stage features. It's cost-effective for startups, scalable, and development-friendly.

      • @Godwin
        Project Owner of AI-Mon
        AI App

        With TiDB Serverless, setting up a database is as easy as clicking a button. It handles analytics seamlessly, without the need for manual scaling.

      • @Kentaro Kitagawa
        Senior DBA, LINE Corporation
        Internet

        Scale-in and scale-out in a cluster configuration is also easy, and the ecosystem is very rich, with operation monitoring tools such as Grafana being able to be installed immediately with the installation command (TiUP).

      • @Yaohui Sun
        Data Platform Lead, Chainbase
        Web 3

        TiDB Serverless's automatic scaling capabilities allow us to swiftly scale up to meet performance demands and scale down during quieter periods for optimizing costs.

      TiDB ❀️ Open Source

      We take pride in our open-source roots.
      With the developer community, we align our product, to make sure it perfectly fits modern application developer's needs.

      -
      ✨ GitHub Stars
      -
      ✏️ Pull Requests
      873
      πŸ‘« Contributors

      Discover TiDB on GitHub ->

      FAQ

      Why would TiDB commit to the open source community?

      TiDB believes that open source fosters innovation, collaboration, and community-driven development. By actively contributing to and supporting open-source projects, TiDB aims to create a vibrant ecosystem that benefits all participants.

      How do I claim my credits?

      Once you’ve logged in with your GitHub Username and your credits have been calculated, you can redeem them by logging into your OssInsight or TiDB Cloud account. The credits will be automatically applied to your account. Make sure you use the the same Github account for both OSSInsight SSO login and TiDB Cloud SSO login.

      How can I contact support if I face issues redeeming my credits?

      You can reach out to our support team through ossinsight@pingcap.com

      Legal Statement

      General Terms

      By participating in this campaign, you agree to these terms. PingCAP can change or end the campaign at any time without notice. Follow all rules, laws, and GitHub's terms of service.

      Who Can Participate

      The campaign is open to anyone, except PingCAP employees, contractors, affiliates, and their immediate family members.

      Rewards

      TiDB Cloud credits are valid for 1 year and cannot be transferred, refunded, or exchanged for cash. The cutoff date to claim the credits is October 1, 2025. PingCAP reserves the right to end the promotion earlier or extend the cutoff date.

      Privacy

      By participating, you agree that PingCAP can use your data according to our Privacy Policy. Your data will only be used to run this campaign and won't be shared without your consent, except as required by law.

      No Guarantees

      PingCAP does not guarantee the availability or operation of the TiDB software, the TiDB Cloud platform, or the credits offered in this campaign. Use them at your own risk.

      Limitation of Liability

      PingCAP is not responsible for any losses or damages that may happen from participating in this campaign or using the TiDB Cloud credits.

      This campaign follows the laws of California. Any disputes will be resolved through arbitration in San Mateo, California, USA.

      Contact Us

      For questions or concerns, please contact us at https://www.pingcap.com/contact-us/.

      + + \ No newline at end of file diff --git a/stats/index.html b/stats/index.html index 422282e0c51..501e7712965 100644 --- a/stats/index.html +++ b/stats/index.html @@ -21,13 +21,13 @@ - - + +

      Database Stats

        Wonder how OSS Insight works?

        logo

        How do we implement OSS Insight ?

        Blog: 10 min read

        read more
        logo

        Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

        Tutorial: 10 min read

        read more
        logo

        Join a Workshop to Setup a Mini OSS Insight

        Tutorial: 25 min

        read more

        Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
        #OSSInsightΒ #TiDBCloud

        Star
        - - + + \ No newline at end of file diff --git a/stats/tables/:slug/index.html b/stats/tables/:slug/index.html index ef23ace7deb..fad4418294f 100644 --- a/stats/tables/:slug/index.html +++ b/stats/tables/:slug/index.html @@ -21,13 +21,13 @@ - - + +
        tableSchema--
        tableName--
        tableRows0
        avgRowLength0 B
        dataLength0 B
        indexLength0 B
        createTime--
        tableCollation--
        createOptions--
        rowIdShardingInfo--
        pkType--
        IndexCalls

        Wonder how OSS Insight works?

        logo

        How do we implement OSS Insight ?

        Blog: 10 min read

        read more
        logo

        Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

        Tutorial: 10 min read

        read more
        logo

        Join a Workshop to Setup a Mini OSS Insight

        Tutorial: 25 min

        read more

        Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
        #OSSInsightΒ #TiDBCloud

        Star
        - - + + \ No newline at end of file diff --git a/subscriptions/EnableEmailSwitch/index.html b/subscriptions/EnableEmailSwitch/index.html index 7a1e303f3a2..74b047fa305 100644 --- a/subscriptions/EnableEmailSwitch/index.html +++ b/subscriptions/EnableEmailSwitch/index.html @@ -21,13 +21,13 @@ - - + +
        - - + + \ No newline at end of file diff --git a/subscriptions/index.html b/subscriptions/index.html index 7a8de0a4d53..d24515f51fb 100644 --- a/subscriptions/index.html +++ b/subscriptions/index.html @@ -21,13 +21,13 @@ - - + +

        My Subscriptions

        Wonder how OSS Insight works?

        logo

        How do we implement OSS Insight ?

        Blog: 10 min read

        read more
        logo

        Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

        Tutorial: 10 min read

        read more
        logo

        Join a Workshop to Setup a Mini OSS Insight

        Tutorial: 25 min

        read more

        Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
        #OSSInsightΒ #TiDBCloud

        Star
        - - + + \ No newline at end of file diff --git a/try-your-own-dataset/index.html b/try-your-own-dataset/index.html index 29796bc78f1..4f3f64e3fb8 100644 --- a/try-your-own-dataset/index.html +++ b/try-your-own-dataset/index.html @@ -21,13 +21,13 @@ - - + +

        Wonder how OSS Insight works?

        logo

        How do we implement OSS Insight ?

        Blog: 10 min read

        read more
        logo

        Use TiDB Cloud to Analyze GitHub Events in 10 Minutes

        Tutorial: 10 min read

        read more
        logo

        Join a Workshop to Setup a Mini OSS Insight

        Tutorial: 25 min

        read more

        Follow us atΒ @OSSInsightΒ and join the conversation using the hashtags
        #OSSInsightΒ #TiDBCloud

        Star
        - - + + \ No newline at end of file