diff --git a/1c-enterprise/daily/index.xml b/1c-enterprise/daily/index.xml index 2b7667cb783..0c5fb874b21 100644 --- a/1c-enterprise/daily/index.xml +++ b/1c-enterprise/daily/index.xml @@ -1,7 +1,7 @@ GitHub 1C Enterprise Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:45Z + 2024-08-22T01:27:56Z Daily Trending of 1C Enterprise in GitHub \ No newline at end of file diff --git a/2-dimensional-array/daily/index.xml b/2-dimensional-array/daily/index.xml index 958549f6b8e..aa260c829de 100644 --- a/2-dimensional-array/daily/index.xml +++ b/2-dimensional-array/daily/index.xml @@ -1,7 +1,7 @@ GitHub 2-Dimensional Array Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:45Z + 2024-08-22T01:27:56Z Daily Trending of 2-Dimensional Array in GitHub \ No newline at end of file diff --git a/4d/daily/index.xml b/4d/daily/index.xml index 0969a21ecd4..079f65427a0 100644 --- a/4d/daily/index.xml +++ b/4d/daily/index.xml @@ -1,7 +1,7 @@ GitHub 4D Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:50Z + 2024-08-22T01:28:00Z Daily Trending of 4D in GitHub \ No newline at end of file diff --git a/abap-cds/daily/index.xml b/abap-cds/daily/index.xml index 2ee34ae595c..88d40945bf5 100644 --- a/abap-cds/daily/index.xml +++ b/abap-cds/daily/index.xml @@ -1,7 +1,7 @@ GitHub ABAP CDS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:50Z + 2024-08-22T01:27:59Z Daily Trending of ABAP CDS in GitHub \ No newline at end of file diff --git a/abap/daily/index.xml b/abap/daily/index.xml index e047fac497f..39c0c53057e 100644 --- a/abap/daily/index.xml +++ b/abap/daily/index.xml @@ -1,7 +1,7 @@ GitHub ABAP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:51Z + 2024-08-22T01:28:00Z Daily Trending of ABAP in GitHub \ No newline at end of file diff --git a/abnf/daily/index.xml b/abnf/daily/index.xml index af633aa81c1..aa4f20ba583 100644 --- a/abnf/daily/index.xml +++ b/abnf/daily/index.xml @@ -1,7 +1,7 @@ GitHub ABNF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:50Z + 2024-08-22T01:27:59Z Daily Trending of ABNF in GitHub \ No newline at end of file diff --git a/actionscript/daily/index.xml b/actionscript/daily/index.xml index 8c87567115c..ed77cd4c010 100644 --- a/actionscript/daily/index.xml +++ b/actionscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ActionScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:53Z + 2024-08-22T01:28:01Z Daily Trending of ActionScript in GitHub \ No newline at end of file diff --git a/ada/daily/index.xml b/ada/daily/index.xml index 6f33f7d5aaa..88d66d7585d 100644 --- a/ada/daily/index.xml +++ b/ada/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ada Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:51Z + 2024-08-22T01:28:01Z Daily Trending of Ada in GitHub \ No newline at end of file diff --git a/adobe-font-metrics/daily/index.xml b/adobe-font-metrics/daily/index.xml index 2fc73d0f39d..7615d31c427 100644 --- a/adobe-font-metrics/daily/index.xml +++ b/adobe-font-metrics/daily/index.xml @@ -1,7 +1,7 @@ GitHub Adobe Font Metrics Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:52Z + 2024-08-22T01:28:01Z Daily Trending of Adobe Font Metrics in GitHub \ No newline at end of file diff --git a/agda/daily/index.xml b/agda/daily/index.xml index 01edead1800..6eaa942dea9 100644 --- a/agda/daily/index.xml +++ b/agda/daily/index.xml @@ -1,7 +1,7 @@ GitHub Agda Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:57Z + 2024-08-22T01:28:03Z Daily Trending of Agda in GitHub \ No newline at end of file diff --git a/ags-script/daily/index.xml b/ags-script/daily/index.xml index 5281b13a760..a39b830e5c1 100644 --- a/ags-script/daily/index.xml +++ b/ags-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub AGS Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:56Z + 2024-08-22T01:28:02Z Daily Trending of AGS Script in GitHub \ No newline at end of file diff --git a/aidl/daily/index.xml b/aidl/daily/index.xml index 223378e1e4e..39bd4138a8e 100644 --- a/aidl/daily/index.xml +++ b/aidl/daily/index.xml @@ -1,7 +1,7 @@ GitHub AIDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:56Z + 2024-08-22T01:28:03Z Daily Trending of AIDL in GitHub \ No newline at end of file diff --git a/al/daily/index.xml b/al/daily/index.xml index 4259b2096e6..721f36c8a1a 100644 --- a/al/daily/index.xml +++ b/al/daily/index.xml @@ -1,7 +1,7 @@ GitHub AL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:57Z + 2024-08-22T01:28:03Z Daily Trending of AL in GitHub \ No newline at end of file diff --git a/all/daily/index.xml b/all/daily/index.xml index 2ccc6d0d942..7ac3f5bd94f 100644 --- a/all/daily/index.xml +++ b/all/daily/index.xml @@ -1,28 +1,21 @@ GitHub All Languages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:46Z + 2024-08-22T01:27:58Z Daily Trending of All Languages in GitHub - thuml/Time-Series-Library - 2024-08-21T01:27:46Z - tag:github.com,2024-08-21:/thuml/Time-Series-Library - - <p>A Library for Advanced Deep Time Series Models.</p><hr><h1>Time Series Library (TSLib)</h1> <p>TSLib is an open-source library for deep learning researchers, especially for deep time series analysis.</p> <p>We provide a neat code base to evaluate advanced deep time series models or develop your model, which covers five mainstream tasks: <strong>long- and short-term forecasting, imputation, anomaly detection, and classification.</strong></p> <p><span>🚩</span><strong>News</strong> (2024.07) We wrote a comprehensive survey of <a href="https://arxiv.org/abs/2407.13278">[Deep Time Series Models]</a> with a rigorous benchmark based on TSLib. In this paper, we summarized the design principles of current time series models supported by insightful experiments, hoping to be helpful to future research.</p> <p><span>🚩</span><strong>News</strong> (2024.04) Many thanks for the great work from <a href="https://github.com/thuml/Time-Series-Library/pull/378">frecklebars</a>. The famous sequenctial model <a href="https://arxiv.org/abs/2312.00752">Mamba</a> has been included in our library. See <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Mamba.py">this file</a>, where you need to install <code>mamba_ssm</code> with pip at first.</p> <p><span>🚩</span><strong>News</strong> (2024.03) Given the inconsistent look-back length of various papers, we split the long-term forecasting in the leaderboard into two categories: Look-Back-96 and Look-Back-Searching. We recommend researchers read <a href="https://openreview.net/pdf?id=7oLshfEIC2">TimeMixer</a>, which includes both look-back length settings in experiments for scientific rigor.</p> <p><span>🚩</span><strong>News</strong> (2023.10) We add an implementation to <a href="https://arxiv.org/abs/2310.06625">iTransformer</a>, which is the state-of-the-art model for long-term forecasting. The official code and complete scripts of iTransformer can be found <a href="https://github.com/thuml/iTransformer">here</a>.</p> <p><span>🚩</span><strong>News</strong> (2023.09) We added a detailed <a href="https://github.com/thuml/Time-Series-Library/raw/main/tutorial/TimesNet_tutorial.ipynb">tutorial</a> for <a href="https://openreview.net/pdf?id=ju_Uqw384Oq">TimesNet</a> and this library, which is quite friendly to beginners of deep time series analysis.</p> <p><span>🚩</span><strong>News</strong> (2023.02) We release the TSlib as a comprehensive benchmark and code base for time series models, which is extended from our previous GitHub repository <a href="https://github.com/thuml/Autoformer">Autoformer</a>.</p> <h2>Leaderboard for Time Series Analysis</h2> <p>Till March 2024, the top three models for five different tasks are:</p> <table> <thead> <tr> <th>Model<br>Ranking</th> <th>Long-term<br>Forecasting<br>Look-Back-96</th> <th>Long-term<br>Forecasting<br>Look-Back-Searching</th> <th>Short-term<br>Forecasting</th> <th>Imputation</th> <th>Classification</th> <th>Anomaly<br>Detection</th> </tr> </thead> <tbody> <tr> <td>🥇 1st</td> <td><a href="https://arxiv.org/abs/2310.06625">iTransformer</a></td> <td><a href="https://openreview.net/pdf?id=7oLshfEIC2">TimeMixer</a></td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> </tr> <tr> <td>🥈 2nd</td> <td><a href="https://openreview.net/pdf?id=7oLshfEIC2">TimeMixer</a></td> <td><a href="https://github.com/yuqinie98/PatchTST">PatchTST</a></td> <td><a href="https://github.com/thuml/Nonstationary_Transformers">Non-stationary<br>Transformer</a></td> <td><a href="https://github.com/thuml/Nonstationary_Transformers">Non-stationary<br>Transformer</a></td> <td><a href="https://github.com/thuml/Nonstationary_Transformers">Non-stationary<br>Transformer</a></td> <td><a href="https://github.com/MAZiqing/FEDformer">FEDformer</a></td> </tr> <tr> <td>🥉 3rd</td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> <td><a href="https://arxiv.org/pdf/2205.13504.pdf">DLinear</a></td> <td><a href="https://github.com/MAZiqing/FEDformer">FEDformer</a></td> <td><a href="https://github.com/thuml/Autoformer">Autoformer</a></td> <td><a href="https://github.com/zhouhaoyi/Informer2020">Informer</a></td> <td><a href="https://github.com/thuml/Autoformer">Autoformer</a></td> </tr> </tbody> </table> <p><strong>Note: We will keep updating this leaderboard.</strong> If you have proposed advanced and awesome models, you can send us your paper/code link or raise a pull request. We will add them to this repo and update the leaderboard as soon as possible.</p> <p><strong>Compared models of this leaderboard.</strong> ☑ means that their codes have already been included in this repo.</p> <ul> <li><input type="checkbox" checked disabled> <strong>TimeMixer</strong> - TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting <a href="https://openreview.net/pdf?id=7oLshfEIC2">[ICLR 2024]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TimeMixer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>TSMixer</strong> - TSMixer: An All-MLP Architecture for Time Series Forecasting <a href="https://arxiv.org/pdf/2303.06053.pdf">[arXiv 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TSMixer.py">[Code]</a></li> <li><input type="checkbox" checked disabled> <strong>iTransformer</strong> - iTransformer: Inverted Transformers Are Effective for Time Series Forecasting <a href="https://arxiv.org/abs/2310.06625">[ICLR 2024]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/iTransformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>PatchTST</strong> - A Time Series is Worth 64 Words: Long-term Forecasting with Transformers <a href="https://openreview.net/pdf?id=Jbdc0vTOcol">[ICLR 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/PatchTST.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>TimesNet</strong> - TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis <a href="https://openreview.net/pdf?id=ju_Uqw384Oq">[ICLR 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TimesNet.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>DLinear</strong> - Are Transformers Effective for Time Series Forecasting? <a href="https://arxiv.org/pdf/2205.13504.pdf">[AAAI 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/DLinear.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>LightTS</strong> - Less Is More: Fast Multivariate Time Series Forecasting with Light Sampling-oriented MLP Structures <a href="https://arxiv.org/abs/2207.01186">[arXiv 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/LightTS.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>ETSformer</strong> - ETSformer: Exponential Smoothing Transformers for Time-series Forecasting <a href="https://arxiv.org/abs/2202.01381">[arXiv 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/ETSformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Non-stationary Transformer</strong> - Non-stationary Transformers: Exploring the Stationarity in Time Series Forecasting <a href="https://openreview.net/pdf?id=ucNDIDRNjjv">[NeurIPS 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Nonstationary_Transformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>FEDformer</strong> - FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting <a href="https://proceedings.mlr.press/v162/zhou22g.html">[ICML 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/FEDformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Pyraformer</strong> - Pyraformer: Low-complexity Pyramidal Attention for Long-range Time Series Modeling and Forecasting <a href="https://openreview.net/pdf?id=0EXmFzUn5I">[ICLR 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Pyraformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Autoformer</strong> - Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting <a href="https://openreview.net/pdf?id=I55UqU-M11y">[NeurIPS 2021]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Autoformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Informer</strong> - Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting <a href="https://ojs.aaai.org/index.php/AAAI/article/view/17325/17132">[AAAI 2021]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Informer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Reformer</strong> - Reformer: The Efficient Transformer <a href="https://openreview.net/forum?id=rkgNKkHtvB">[ICLR 2020]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Reformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Transformer</strong> - Attention is All You Need <a href="https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf">[NeurIPS 2017]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Transformer.py">[Code]</a>.</li> </ul> <p>See our latest paper <a href="https://arxiv.org/abs/2210.02186">[TimesNet]</a> for the comprehensive benchmark. We will release a real-time updated online version soon.</p> <p><strong>Newly added baselines.</strong> We will add them to the leaderboard after a comprehensive evaluation.</p> <ul> <li><input type="checkbox" checked disabled> <strong>Mamba</strong> - Mamba: Linear-Time Sequence Modeling with Selective State Spaces <a href="https://arxiv.org/abs/2312.00752">[arXiv 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Mamba.py">[Code]</a></li> <li><input type="checkbox" checked disabled> <strong>SegRNN</strong> - SegRNN: Segment Recurrent Neural Network for Long-Term Time Series Forecasting <a href="https://arxiv.org/abs/2308.11200.pdf">[arXiv 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/SegRNN.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Koopa</strong> - Koopa: Learning Non-stationary Time Series Dynamics with Koopman Predictors <a href="https://arxiv.org/pdf/2305.18803.pdf">[NeurIPS 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Koopa.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>FreTS</strong> - Frequency-domain MLPs are More Effective Learners in Time Series Forecasting <a href="https://arxiv.org/pdf/2311.06184.pdf">[NeurIPS 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/FreTS.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>TiDE</strong> - Long-term Forecasting with TiDE: Time-series Dense Encoder <a href="https://arxiv.org/pdf/2304.08424.pdf">[arXiv 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TiDE.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>FiLM</strong> - FiLM: Frequency improved Legendre Memory Model for Long-term Time Series Forecasting <a href="https://openreview.net/forum?id=zTQdHSQUQWc">[NeurIPS 2022]</a><a href="https://github.com/thuml/Time-Series-Library/raw/main/models/FiLM.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>MICN</strong> - MICN: Multi-scale Local and Global Context Modeling for Long-term Series Forecasting <a href="https://openreview.net/pdf?id=zt53IDUR1U">[ICLR 2023]</a><a href="https://github.com/thuml/Time-Series-Library/raw/main/models/MICN.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Crossformer</strong> - Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series Forecasting <a href="https://openreview.net/pdf?id=vSVLM2j9eie">[ICLR 2023]</a><a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Crossformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>TFT</strong> - Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting <a href="https://arxiv.org/abs/1912.09363">[arXiv 2019]</a><a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TemporalFusionTransformer.py">[Code]</a>.</li> </ul> <h2>Usage</h2> <ol> <li>Install Python 3.8. For convenience, execute the following command.</li> </ol> <pre><code>pip install -r requirements.txt </code></pre> <ol start="2"> <li>Prepare Data. You can obtain the well pre-processed datasets from <a href="https://drive.google.com/drive/folders/13Cg1KYOlzM5C7K8gK8NfC-F3EYxkM3D2?usp=sharing">[Google Drive]</a> or&nbsp;<a href="https://pan.baidu.com/s/1r3KhGd0Q9PJIUZdfEYoymg?pwd=i9iy">[Baidu Drive]</a>, Then place the downloaded data in the folder<code>./dataset</code>. Here is a summary of supported datasets.</li> </ol> <p align="center"> <img src="https://raw.githubusercontent.com/thuml/Time-Series-Library/main/.%5Cpic%5Cdataset.png" height="200" alt="" align="center"> </p> <ol start="3"> <li>Train and evaluate model. We provide the experiment scripts for all benchmarks under the folder <code>./scripts/</code>. You can reproduce the experiment results as the following examples:</li> </ol> <pre><code># long-term forecast bash ./scripts/long_term_forecast/ETT_script/TimesNet_ETTh1.sh # short-term forecast bash ./scripts/short_term_forecast/TimesNet_M4.sh # imputation bash ./scripts/imputation/ETT_script/TimesNet_ETTh1.sh # anomaly detection bash ./scripts/anomaly_detection/PSM/TimesNet.sh # classification bash ./scripts/classification/TimesNet.sh </code></pre> <ol start="4"> <li>Develop your own model.</li> </ol> <ul> <li>Add the model file to the folder <code>./models</code>. You can follow the <code>./models/Transformer.py</code>.</li> <li>Include the newly added model in the <code>Exp_Basic.model_dict</code> of <code>./exp/exp_basic.py</code>.</li> <li>Create the corresponding scripts under the folder <code>./scripts</code>.</li> </ul> <p>Note: The original code for the classification task can be found <a href="https://github.com/thuml/Flowformer/tree/main/Flowformer_TimeSeries">here</a>. It is hard to fuse all five tasks in one library. We are still working on this task.</p> <h2>Citation</h2> <p>If you find this repo useful, please cite our paper.</p> <pre><code>@inproceedings{wu2023timesnet, title={TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis}, author={Haixu Wu and Tengge Hu and Yong Liu and Hang Zhou and Jianmin Wang and Mingsheng Long}, booktitle={International Conference on Learning Representations}, year={2023}, } @article{wang2024tssurvey, title={Deep Time Series Models: A Comprehensive Survey and Benchmark}, author={Yuxuan Wang and Haixu Wu and Jiaxiang Dong and Yong Liu and Mingsheng Long and Jianmin Wang}, booktitle={arXiv preprint arXiv:2407.13278}, year={2024}, } </code></pre> <h2>Contact</h2> <p>If you have any questions or suggestions, feel free to contact our maintenance team:</p> <p>Current:</p> <ul> <li>Haixu Wu (Ph.D. student, <a href="mailto:wuhx23@mails.tsinghua.edu.cn">wuhx23@mails.tsinghua.edu.cn</a>)</li> <li>Yong Liu (Ph.D. student, <a href="mailto:liuyong21@mails.tsinghua.edu.cn">liuyong21@mails.tsinghua.edu.cn</a>)</li> <li>Yuxuan Wang (Ph.D. student, <a href="mailto:wangyuxu22@mails.tsinghua.edu.cn">wangyuxu22@mails.tsinghua.edu.cn</a>)</li> <li>Huikun Weng (Undergraduate, <a href="mailto:wenghk22@mails.tsinghua.edu.cn">wenghk22@mails.tsinghua.edu.cn</a>)</li> </ul> <p>Previous:</p> <ul> <li>Tengge Hu (Master student, <a href="mailto:htg21@mails.tsinghua.edu.cn">htg21@mails.tsinghua.edu.cn</a>)</li> <li>Haoran Zhang (Master student, <a href="mailto:z-hr20@mails.tsinghua.edu.cn">z-hr20@mails.tsinghua.edu.cn</a>)</li> <li>Jiawei Guo (Undergraduate, <a href="mailto:guo-jw21@mails.tsinghua.edu.cn">guo-jw21@mails.tsinghua.edu.cn</a>)</li> </ul> <p>Or describe it in Issues.</p> <h2>Acknowledgement</h2> <p>This project is supported by the National Key R&amp;D Program of China (2021YFB1715200).</p> <p>This library is constructed based on the following repos:</p> <ul> <li> <p>Forecasting: <a href="https://github.com/thuml/Autoformer">https://github.com/thuml/Autoformer</a>.</p> </li> <li> <p>Anomaly Detection: <a href="https://github.com/thuml/Anomaly-Transformer">https://github.com/thuml/Anomaly-Transformer</a>.</p> </li> <li> <p>Classification: <a href="https://github.com/thuml/Flowformer">https://github.com/thuml/Flowformer</a>.</p> </li> </ul> <p>All the experiment datasets are public, and we obtain them from the following links:</p> <ul> <li> <p>Long-term Forecasting and Imputation: <a href="https://github.com/thuml/Autoformer">https://github.com/thuml/Autoformer</a>.</p> </li> <li> <p>Short-term Forecasting: <a href="https://github.com/ServiceNow/N-BEATS">https://github.com/ServiceNow/N-BEATS</a>.</p> </li> <li> <p>Anomaly Detection: <a href="https://github.com/thuml/Anomaly-Transformer">https://github.com/thuml/Anomaly-Transformer</a>.</p> </li> <li> <p>Classification: <a href="https://www.timeseriesclassification.com/">https://www.timeseriesclassification.com/</a>.</p> </li> </ul> <h2>All Thanks To Our Contributors</h2> <a href="https://github.com/thuml/Time-Series-Library/graphs/contributors"> <img src="https://contrib.rocks/image?repo=thuml/Time-Series-Library"> </a> + midday-ai/midday + 2024-08-22T01:27:58Z + tag:github.com,2024-08-22:/midday-ai/midday + + <p>Run your business smarter 🪄</p><hr><p><img src="https://raw.githubusercontent.com/midday-ai/midday/main/github.png" alt="hero"></p> <p align="center"> </p> <h1 align="center"><b>Midday</b></h1> <p align="center"> Run your business smarter <br> <br> <a href="https://go.midday.ai/anPiuRx">Discord</a> · <a href="https://midday.ai">Website</a> · <a href="https://github.com/midday-ai/midday/issues">Issues</a> </p> <p></p> <h2>About Midday</h2> <p>Midday is an all-in-one tool designed to help freelancers, contractors, consultants, and solo entrepreneurs manage their business operations more efficiently. It integrates various functions typically scattered across multiple platforms into a single, cohesive system.</p> <h2>Features</h2> <p><strong>Time Tracking</strong>: Allows for live time tracking of projects to boost productivity and collaboration, providing insightful project overviews.<br> <strong>Invoicing</strong>: An upcoming feature that will enable users to create web-based invoices, collaborate in real-time, and synchronize projects seamlessly.<br> <strong>Magic Inbox</strong>: Automatically matches incoming invoices or receipts to the correct transactions, simplifying financial tracking and organization.<br> <strong>Vault</strong>: Secure storage for important files like contracts and agreements, keeping everything in one place for easy access​.<br> <strong>Seamless Export</strong>: Facilitates easy export of financial data, packaged neatly in CSV files for accountants.<br> <strong>Assistant</strong>: Provides tailored insights into financial situations, helping users understand spending patterns, cut costs, and find documents.<br></p> <h2>Recognition</h2> <a href="https://news.ycombinator.com/item?id=40737901"> <img style="width: 250px; height: 54px;" width="250" height="54" alt="Featured on Hacker News" src="https://hackernews-badge.vercel.app/api?id=40737901"> </a> <p><a href="https://www.producthunt.com/posts/midday-2?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;utm_souce=badge-midday-2" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=460784&amp;theme=light" alt="Midday - Run your business smarter | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54"></a></p> <br> <h2>Get started</h2> <p>We are working on the documentation to get started with Midday for local development: <a href="https://docs.midday.ai">https://docs.midday.ai</a></p> <h2>App Architecture</h2> <ul> <li>Monorepo</li> <li>Bun</li> <li>React</li> <li>TypeScript</li> <li>Nextjs</li> <li>Supabase</li> <li>Shadcn</li> <li>ToDesktop</li> <li>Expo</li> <li>TailwindCSS</li> </ul> <h3>Hosting</h3> <ul> <li>Supabase (database, storage, realtime, auth)</li> <li>Vercel (Website, edge-config, and metrics)</li> <li>Upstash (redis)</li> </ul> <h3>Services</h3> <ul> <li>Trigger.dev (background jobs)</li> <li>Resend (email)</li> <li>Novu (notifications)</li> <li>Github Actions (CI/CD)</li> <li>GoCardLess (Bank connection EU)</li> <li>Plaid (Bank connection in Canada and US)</li> <li>Teller (Bank connection in the US)</li> <li>Loops (Marketing email)</li> <li>OpenPanel (Events and Analytics)</li> <li>Dub (Short URLs)</li> </ul> <h2>Repo Activity</h2> <p><img src="https://repobeats.axiom.co/api/embed/96aae855e5dd87c30d53c1d154b37cf7aa5a89b3.svg?sanitize=true" alt="Alt" title="Repobeats analytics image"></p> - LibreTranslate/LibreTranslate - 2024-08-21T01:27:46Z - tag:github.com,2024-08-21:/LibreTranslate/LibreTranslate - - <p>Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.</p><hr><h1>LibreTranslate</h1> <p><a href="https://libretranslate.com">Try it online!</a> | <a href="https://libretranslate.com/docs">API Docs</a> | <a href="https://community.libretranslate.com/">Community Forum</a></p> <p><a href="https://pypi.org/project/libretranslate"><img src="https://img.shields.io/pypi/pyversions/libretranslate" alt="Python versions"></a> <a href="https://github.com/LibreTranslate/LibreTranslate/actions?query=workflow%3A%22Run+tests%22"><img src="https://github.com/LibreTranslate/LibreTranslate/workflows/Run%20tests/badge.svg?sanitize=true" alt="Run tests"></a> <a href="https://github.com/LibreTranslate/LibreTranslate/actions/workflows/publish-docker.yml"><img src="https://github.com/LibreTranslate/LibreTranslate/actions/workflows/publish-docker.yml/badge.svg?sanitize=true" alt="Build and Publish Docker Image"></a> <a href="https://github.com/LibreTranslate/LibreTranslate/actions/workflows/publish-package.yml"><img src="https://github.com/LibreTranslate/LibreTranslate/actions/workflows/publish-package.yml/badge.svg?sanitize=true" alt="Publish package"></a> <a href="https://codeberg.org/teaserbot-labs/delightful-humane-design"><img src="https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true" alt="Awesome Humane Tech"></a></p> <p>Free and Open Source Machine Translation API, entirely self-hosted. Unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations. Instead, its translation engine is powered by the open source <a href="https://github.com/argosopentech/argos-translate">Argos Translate</a> library.</p> <p><img src="https://github.com/user-attachments/assets/457696b5-dbff-40ab-a18e-7bfb152c5121" alt="Translation"></p> <p><a href="https://libretranslate.com">Try it online!</a> | <a href="https://libretranslate.com/docs">API Docs</a></p> <h2>API Examples</h2> <h3>Simple</h3> <p>Request:</p> <pre><code class="language-javascript">const res = await fetch("https://libretranslate.com/translate", { method: "POST", body: JSON.stringify({ q: "Hello!", source: "en", target: "es" }), headers: { "Content-Type": "application/json" } }); console.log(await res.json()); </code></pre> <p>Response:</p> <pre><code class="language-javascript">{ "translatedText": "¡Hola!" } </code></pre> <p>List of language codes: <a href="https://libretranslate.com/languages">https://libretranslate.com/languages</a></p> <h3>Auto Detect Language</h3> <p>Request:</p> <pre><code class="language-javascript">const res = await fetch("https://libretranslate.com/translate", { method: "POST", body: JSON.stringify({ q: "Ciao!", source: "auto", target: "en" }), headers: { "Content-Type": "application/json" } }); console.log(await res.json()); </code></pre> <p>Response:</p> <pre><code class="language-javascript">{ "detectedLanguage": { "confidence": 83, "language": "it" }, "translatedText": "Bye!" } </code></pre> <h3>HTML</h3> <p>Request:</p> <pre><code class="language-javascript">const res = await fetch("https://libretranslate.com/translate", { method: "POST", body: JSON.stringify({ q: '&lt;p class="green"&gt;Hello!&lt;/p&gt;', source: "en", target: "es", format: "html" }), headers: { "Content-Type": "application/json" } }); console.log(await res.json()); </code></pre> <p>Response:</p> <pre><code class="language-javascript">{ "translatedText": "&lt;p class=\"green\"&gt;¡Hola!&lt;/p&gt;" } </code></pre> <h3>Alternative Translations</h3> <p>Request:</p> <pre><code class="language-javascript">const res = await fetch("https://libretranslate.com/translate", { method: "POST", body: JSON.stringify({ q: "Hello", source: "en", target: "it", format: "text", alternatives: 3 }), headers: { "Content-Type": "application/json" } }); console.log(await res.json()); </code></pre> <p>Response:</p> <pre><code class="language-javascript">{ "alternatives": [ "Salve", "Pronto" ], "translatedText": "Ciao" } </code></pre> <h2>Install and Run</h2> <p>You can run your own API server with just a few lines of setup!</p> <p>Make sure you have Python installed (3.8 or higher is recommended), then simply run:</p> <pre><code class="language-bash">pip install libretranslate libretranslate [args] </code></pre> <p>Then open a web browser to <a href="http://localhost:5000">http://localhost:5000</a></p> <p>On Ubuntu 20.04 you can also use the install script available at <a href="https://github.com/argosopentech/LibreTranslate-init">https://github.com/argosopentech/LibreTranslate-init</a></p> <h2>Run with Docker</h2> <p>You can also run the application with <a href="https://docker.com">docker</a>:</p> <h3>Linux/macOS</h3> <pre><code class="language-bash">./run.sh [args] </code></pre> <h3>Windows</h3> <pre><code class="language-bash">run.bat [args] </code></pre> <h2>Build and Run</h2> <p>See <a href="https://raw.githubusercontent.com/LibreTranslate/LibreTranslate/main/CONTRIBUTING.md">CONTRIBUTING.md</a> for information on how to build and run the project yourself.</p> <h3>CUDA</h3> <p>You can use hardware acceleration to speed up translations on a GPU machine with CUDA 11.2 and <a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html">nvidia-docker</a> installed.</p> <p>Run this version with:</p> <pre><code class="language-bash">docker compose -f docker-compose.cuda.yml up -d --build </code></pre> <h2>Arguments</h2> <p>Arguments passed to the process or set via environment variables are split into two kinds.</p> <ul> <li> <p>Settings or runtime flags used to toggle specific runmodes or disable parts of the application. These act as toggle when added or removed.</p> </li> <li> <p>Configuration parameters to set various limits and configure the application. These require a parameter to be passed to function, if removed the default parameters are used.</p> </li> </ul> <h3>Settings / Flags</h3> <table> <thead> <tr> <th>Argument</th> <th>Description</th> <th>Default Setting</th> <th>Env. name</th> </tr> </thead> <tbody> <tr> <td>--debug</td> <td>Enable debug environment</td> <td><code>Disabled</code></td> <td>LT_DEBUG</td> </tr> <tr> <td>--ssl</td> <td>Whether to enable SSL</td> <td><code>Disabled</code></td> <td>LT_SSL</td> </tr> <tr> <td>--api-keys</td> <td>Enable API keys database for per-client rate limits when --req-limit is reached</td> <td><code>Don't use API keys</code></td> <td>LT_API_KEYS</td> </tr> <tr> <td>--require-api-key-origin</td> <td>Require use of an API key for programmatic access to the API, unless the request origin matches this domain</td> <td><code>No restrictions on domain origin</code></td> <td>LT_REQUIRE_API_KEY_ORIGIN</td> </tr> <tr> <td>--require-api-key-secret</td> <td>Require use of an API key for programmatic access to the API, unless the client also sends a secret match</td> <td><code>No secrets required</code></td> <td>LT_REQUIRE_API_KEY_SECRET</td> </tr> <tr> <td>--suggestions</td> <td>Allow user suggestions</td> <td><code>Disabled</code></td> <td>LT_SUGGESTIONS</td> </tr> <tr> <td>--disable-files-translation</td> <td>Disable files translation</td> <td><code>File translation allowed</code></td> <td>LT_DISABLE_FILES_TRANSLATION</td> </tr> <tr> <td>--disable-web-ui</td> <td>Disable web ui</td> <td><code>Web Ui enabled</code></td> <td>LT_DISABLE_WEB_UI</td> </tr> <tr> <td>--update-models</td> <td>Update language models at startup</td> <td><code>Only on if no models found</code></td> <td>LT_UPDATE_MODELS</td> </tr> <tr> <td>--metrics</td> <td>Enable the /metrics endpoint for exporting <a href="https://prometheus.io/">Prometheus</a> usage metrics</td> <td><code>Disabled</code></td> <td>LT_METRICS</td> </tr> </tbody> </table> <h3>Configuration Parameters</h3> <table> <thead> <tr> <th>Argument</th> <th>Description</th> <th>Default Parameter</th> <th>Env. name</th> </tr> </thead> <tbody> <tr> <td>--host</td> <td>Set host to bind the server to</td> <td><code>127.0.0.1</code></td> <td>LT_HOST</td> </tr> <tr> <td>--port</td> <td>Set port to bind the server to</td> <td><code>5000</code></td> <td>LT_PORT</td> </tr> <tr> <td>--char-limit</td> <td>Set character limit</td> <td><code>No limit</code></td> <td>LT_CHAR_LIMIT</td> </tr> <tr> <td>--req-limit</td> <td>Set maximum number of requests per minute per client (outside of limits set by api keys)</td> <td><code>No limit</code></td> <td>LT_REQ_LIMIT</td> </tr> <tr> <td>--req-limit-storage</td> <td>Storage URI to use for request limit data storage. See <a href="https://flask-limiter.readthedocs.io/en/stable/configuration.html">Flask Limiter</a></td> <td><code>memory://</code></td> <td>LT_REQ_LIMIT_STORAGE</td> </tr> <tr> <td>--req-time-cost</td> <td>Considers a time cost (in seconds) for request limiting purposes. If a request takes 10 seconds and this value is set to 5, the request cost is either 2 or the actual request cost (whichever is greater).</td> <td><code>No time cost</code></td> <td>LT_REQ_TIME_COST</td> </tr> <tr> <td>--batch-limit</td> <td>Set maximum number of texts to translate in a batch request</td> <td><code>No limit</code></td> <td>LT_BATCH_LIMIT</td> </tr> <tr> <td>--ga-id</td> <td>Enable Google Analytics on the API client page by providing an ID</td> <td><code>Empty (no tracking)</code></td> <td>LT_GA_ID</td> </tr> <tr> <td>--frontend-language-source</td> <td>Set frontend default language - source</td> <td><code>auto</code></td> <td>LT_FRONTEND_LANGUAGE_SOURCE</td> </tr> <tr> <td>--frontend-language-target</td> <td>Set frontend default language - target</td> <td><code>locale</code> (match site's locale)</td> <td>LT_FRONTEND_LANGUAGE_TARGET</td> </tr> <tr> <td>--frontend-timeout</td> <td>Set frontend translation timeout</td> <td><code>500</code></td> <td>LT_FRONTEND_TIMEOUT</td> </tr> <tr> <td>--api-keys-db-path</td> <td>Use a specific path inside the container for the local database. Can be absolute or relative</td> <td><code>db/api_keys.db</code></td> <td>LT_API_KEYS_DB_PATH</td> </tr> <tr> <td>--api-keys-remote</td> <td>Use this remote endpoint to query for valid API keys instead of using the local database</td> <td><code>Empty (use local db instead)</code></td> <td>LT_API_KEYS_REMOTE</td> </tr> <tr> <td>--get-api-key-link</td> <td>Show a link in the UI where to direct users to get an API key</td> <td><code>Empty (no link shown on web ui)</code></td> <td>LT_GET_API_KEY_LINK</td> </tr> <tr> <td>--shared-storage</td> <td>Shared storage URI to use for multi-process data sharing (e.g. when using gunicorn)</td> <td><code>memory://</code></td> <td>LT_SHARED_STORAGE</td> </tr> <tr> <td>--secondary</td> <td>Mark this instance as a secondary instance to avoid conflicts with the primary node in multi-node setups</td> <td><code>Primary node</code></td> <td>LT_SECONDARY</td> </tr> <tr> <td>--load-only</td> <td>Set available languages</td> <td><code>Empty (use all from argostranslate)</code></td> <td>LT_LOAD_ONLY</td> </tr> <tr> <td>--threads</td> <td>Set number of threads</td> <td><code>4</code></td> <td>LT_THREADS</td> </tr> <tr> <td>--metrics-auth-token</td> <td>Protect the /metrics endpoint by allowing only clients that have a valid Authorization Bearer token</td> <td><code>Empty (no auth required)</code></td> <td>LT_METRICS_AUTH_TOKEN</td> </tr> <tr> <td>--url-prefix</td> <td>Add prefix to URL: example.com:5000/url-prefix/</td> <td><code>/</code></td> <td>LT_URL_PREFIX</td> </tr> </tbody> </table> <h3>Notes:</h3> <ul> <li> <p>Each argument has an equivalent environment variable that can be used instead. The env. variables overwrite the default values but have lower priority than the command arguments and are particularly useful if used with Docker. The environment variable names are the upper-snake-case of the equivalent command argument's name with a <code>LT</code> prefix.</p> </li> <li> <p>To configure requirement for api key to use, set <code>--req-limit</code> to <code>0</code> and add the <code>--api-keys</code> flag. Requests made without a proper api key will be rejected.</p> </li> <li> <p>Setting <code>--update-models</code> will update models regardless of whether updates are available or not.</p> </li> </ul> <h2>Update</h2> <h3>Software</h3> <p>If you installed with pip:</p> <p><code>pip install -U libretranslate</code></p> <p>If you're using docker:</p> <p><code>docker pull libretranslate/libretranslate</code></p> <h3>Language Models</h3> <p>Start the program with the <code>--update-models</code> argument. For example: <code>libretranslate --update-models</code> or <code>./run.sh --update-models</code>.</p> <p>Alternatively you can also run the <code>scripts/install_models.py</code> script.</p> <h2>Run with WSGI and Gunicorn</h2> <pre><code class="language-bash">pip install gunicorn gunicorn --bind 0.0.0.0:5000 'wsgi:app' </code></pre> <p>You can pass application arguments directly to Gunicorn via:</p> <pre><code class="language-bash">gunicorn --bind 0.0.0.0:5000 'wsgi:app(api_keys=True)' </code></pre> <h2>Kubernetes Deployment</h2> <p>See <a href="https://jmrobles.medium.com/libretranslate-your-own-translation-service-on-kubernetes-b46c3e1af630">Medium article by JM Robles</a> and the improved <a href="https://github.com/LibreTranslate/LibreTranslate/raw/main/k8s.yaml">k8s.yaml</a> by @rasos.</p> <h3>Helm Chart</h3> <p>Based on @rasos work you can now install LibreTranslate on Kubernetes using Helm.</p> <p>A Helm chart is now available in the <a href="https://github.com/LibreTranslate/helm-chart/">helm-chart</a> repository where you can find more details.</p> <p>You can quickly install LibreTranslate on Kubernetes using Helm with the following command:</p> <pre><code class="language-bash">helm repo add libretranslate https://libretranslate.github.io/helm-chart/ helm repo update helm search repo libretranslate helm install libretranslate libretranslate/libretranslate --namespace libretranslate --create-namespace </code></pre> <h2>Manage API Keys</h2> <p>LibreTranslate supports per-user limit quotas, e.g. you can issue API keys to users so that they can enjoy higher requests limits per minute (if you also set <code>--req-limit</code>). By default all users are rate-limited based on <code>--req-limit</code>, but passing an optional <code>api_key</code> parameter to the REST endpoints allows a user to enjoy higher request limits. You can also specify different character limits that bypass the default <code>--char-limit</code> value on a per-key basis.</p> <p>To use API keys simply start LibreTranslate with the <code>--api-keys</code> option. If you modified the API keys database path with the option <code>--api-keys-db-path</code>, you must specify the path with the same argument flag when using the <code>ltmanage keys</code> command.</p> <h3>Add New Keys</h3> <p>To issue a new API key with 120 requests per minute limits:</p> <pre><code class="language-bash">ltmanage keys add 120 </code></pre> <p>To issue a new API key with 120 requests per minute and a maximum of 5,000 characters per request:</p> <pre><code class="language-bash">ltmanage keys add 120 --char-limit 5000 </code></pre> <p>If you changed the API keys database path:</p> <pre><code class="language-bash">ltmanage keys --api-keys-db-path path/to/db/dbName.db add 120 </code></pre> <h3>Remove Keys</h3> <pre><code class="language-bash">ltmanage keys remove &lt;api-key&gt; </code></pre> <h3>View Keys</h3> <pre><code class="language-bash">ltmanage keys </code></pre> <h2>Prometheus Metrics</h2> <p>LibreTranslate has Prometheus <a href="https://prometheus.io/docs/instrumenting/exporters/">exporter</a> capabilities when you pass the <code>--metrics</code> argument at startup (disabled by default). When metrics are enabled, a <code>/metrics</code> endpoint is mounted on the instance:</p> <p><a href="http://localhost:5000/metrics">http://localhost:5000/metrics</a></p> <pre><code class="language-promql"># HELP libretranslate_http_requests_in_flight Multiprocess metric # TYPE libretranslate_http_requests_in_flight gauge libretranslate_http_requests_in_flight{api_key="",endpoint="/translate",request_ip="127.0.0.1"} 0.0 # HELP libretranslate_http_request_duration_seconds Multiprocess metric # TYPE libretranslate_http_request_duration_seconds summary libretranslate_http_request_duration_seconds_count{api_key="",endpoint="/translate",request_ip="127.0.0.1",status="200"} 0.0 libretranslate_http_request_duration_seconds_sum{api_key="",endpoint="/translate",request_ip="127.0.0.1",status="200"} 0.0 </code></pre> <p>You can then configure <code>prometheus.yml</code> to read the metrics:</p> <pre><code class="language-yaml">scrape_configs: - job_name: "libretranslate" # Needed only if you use --metrics-auth-token #authorization: #credentials: "mytoken" static_configs: - targets: ["localhost:5000"] </code></pre> <p>To secure the <code>/metrics</code> endpoint you can also use <code>--metrics-auth-token mytoken</code>.</p> <p>If you use Gunicorn, make sure to create a directory for storing multiprocess data metrics and set <code>PROMETHEUS_MULTIPROC_DIR</code>:</p> <pre><code class="language-bash">mkdir -p /tmp/prometheus_data rm /tmp/prometheus_data/* export PROMETHEUS_MULTIPROC_DIR=/tmp/prometheus_data gunicorn -c scripts/gunicorn_conf.py --bind 0.0.0.0:5000 'wsgi:app(metrics=True)' </code></pre> <h2>Language Bindings</h2> <p>You can use the LibreTranslate API using the following bindings:</p> <ul> <li>Rust: <a href="https://github.com/DefunctLizard/libretranslate-rs">https://github.com/DefunctLizard/libretranslate-rs</a></li> <li>Node.js: <a href="https://github.com/franciscop/translate">https://github.com/franciscop/translate</a></li> <li>TypeScript: <a href="https://github.com/tderflinger/libretranslate-ts">https://github.com/tderflinger/libretranslate-ts</a></li> <li>.Net: <a href="https://github.com/sigaloid/LibreTranslate.Net">https://github.com/sigaloid/LibreTranslate.Net</a></li> <li>Go: <a href="https://github.com/SnakeSel/libretranslate">https://github.com/SnakeSel/libretranslate</a></li> <li>Python: <a href="https://github.com/argosopentech/LibreTranslate-py">https://github.com/argosopentech/LibreTranslate-py</a></li> <li>PHP: <a href="https://github.com/jefs42/libretranslate">https://github.com/jefs42/libretranslate</a></li> <li>C++: <a href="https://github.com/argosopentech/LibreTranslate-cpp">https://github.com/argosopentech/LibreTranslate-cpp</a></li> <li>Swift: <a href="https://github.com/wacumov/libretranslate">https://github.com/wacumov/libretranslate</a></li> <li>Unix: <a href="https://github.com/argosopentech/LibreTranslate-sh">https://github.com/argosopentech/LibreTranslate-sh</a></li> <li>Shell: <a href="https://github.com/Hayao0819/Hayao-Tools/tree/master/libretranslate-sh">https://github.com/Hayao0819/Hayao-Tools/tree/master/libretranslate-sh</a></li> <li>Java: <a href="https://github.com/suuft/libretranslate-java">https://github.com/suuft/libretranslate-java</a></li> <li>Ruby: <a href="https://github.com/noesya/libretranslate">https://github.com/noesya/libretranslate</a></li> <li>R: <a href="https://github.com/myanesp/libretranslateR">https://github.com/myanesp/libretranslateR</a></li> </ul> <h2>Discourse Plugin</h2> <p>You can use the <a href="https://github.com/discourse/discourse-translator">official discourse translator plugin</a> to translate <a href="https://discourse.org">Discourse</a> topics with LibreTranslate. To install it simply modify <code>/var/discourse/containers/app.yml</code>:</p> <pre><code class="language-yaml">## Plugins go here ## see https://meta.discourse.org/t/19157 for details hooks: after_code: - exec: cd: $home/plugins cmd: - git clone https://github.com/discourse/docker_manager.git - git clone https://github.com/discourse/discourse-translator ... </code></pre> <p>Then issue <code>./launcher rebuild app</code>. From the Discourse's admin panel then select "LibreTranslate" as a translation provider and set the relevant endpoint configurations.</p> <p>See it in action on this <a href="https://community.libretranslate.com/t/have-you-considered-adding-the-libretranslate-discourse-translator-multilingual-to-this-forum/766">page</a>.</p> <h2>Mobile Apps</h2> <ul> <li><a href="https://codeberg.org/BeoCode/LibreTranslator">LibreTranslator</a> is an Android app <a href="https://play.google.com/store/apps/details?id=de.beowulf.libretranslater">available on the Play Store</a> and <a href="https://f-droid.org/packages/de.beowulf.libretranslater/">in the F-Droid store</a> that uses the LibreTranslate API.</li> <li><a href="https://github.com/viktorkalyniuk/LiTranslate-iOS">LiTranslate</a> is an iOS app <a href="https://apps.apple.com/us/app/litranslate/id1644385339">available on the App Store</a> that uses the LibreTranslate API.</li> </ul> <h2>Web browser</h2> <ul> <li><a href="https://minbrowser.org/">minbrowser</a> is a web browser with <a href="https://github.com/argosopentech/argos-translate/discussions/158#discussioncomment-1141551">integrated LibreTranslate support</a>.</li> <li>A LibreTranslate Firefox addon is <a href="https://github.com/LibreTranslate/LibreTranslate/issues/55">currently a work in progress</a>.</li> </ul> <h2>Mirrors</h2> <p>This is a list of public LibreTranslate instances, some require an API key. If you want to add a new URL, please open a pull request.</p> <table> <thead> <tr> <th>URL</th> <th>API Key Required</th> <th>Links</th> </tr> </thead> <tbody> <tr> <td><a href="https://libretranslate.com">libretranslate.com</a></td> <td><span>✔</span></td> <td>[ <a href="https://portal.libretranslate.com">Get API Key</a> ] [ <a href="https://status.libretranslate.com/">Service Status</a> ]</td> </tr> <tr> <td><a href="https://translate.terraprint.co/">translate.terraprint.co</a></td> <td>-</td> <td></td> </tr> <tr> <td><a href="https://trans.zillyhuhn.com/">trans.zillyhuhn.com</a></td> <td>-</td> <td></td> </tr> <tr> <td><a href="https://translate.lotigara.ru">translate.lotigara.ru</a></td> <td>-</td> <td></td> </tr> </tbody> </table> <h2>TOR/i2p Mirrors</h2> <table> <thead> <tr> <th>URL</th> </tr> </thead> <tbody> <tr> <td><a href="http://lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/">lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion</a></td> </tr> <tr> <td><a href="http://vernf45n7mxwqnp5riaax7p67pwcl7wcefdcnqqvim7ckdx4264a.b32.i2p/">lt.vern.i2p</a></td> </tr> </tbody> </table> <h2>Adding New Language Models</h2> <p>You have two options to create new language models:</p> <ul> <li><a href="https://github.com/LibreTranslate/Locomotive">Locomotive</a></li> <li><a href="https://github.com/argosopentech/argos-train">Argos Train</a> (<a href="https://www.youtube.com/watch?v=Vj_qgnhOEwg">video tutorial</a>)</li> </ul> <p>Most of the training data is from <a href="http://opus.nlpl.eu/">Opus</a>, which is an open source parallel corpus. Check also <a href="https://nllu.libretranslate.com">NLLU</a></p> <h2>Localization</h2> <p>The LibreTranslate Web UI is available in all the languages for which LibreTranslate can translate to. It can also (roughly) <a href="https://github.com/LibreTranslate/LibreTranslate/raw/main/scripts/update_locales.py">translate itself!</a> Some languages might not appear in the UI since they haven't been reviewed by a human yet. You can enable all languages by turning on <code>--debug</code> mode.</p> <p>To help improve or review the UI translations:</p> <ul> <li>Go to <a href="https://hosted.weblate.org/projects/libretranslate/app/#translations">https://hosted.weblate.org/projects/libretranslate/app/#translations</a>. All changes are automatically pushed to this repository.</li> <li>Once all strings have been reviewed/edited, open a pull request and change <code>libretranslate/locales/{code}/meta.json</code>:</li> </ul> <pre><code class="language-json">{ "name": "&lt;Language&gt;", "reviewed": true &lt;-- Change this from false to true } </code></pre> <h3>UI Languages</h3> <table> <thead> <tr> <th>Language</th> <th>Reviewed</th> <th>Weblate Link</th> </tr> </thead> <tbody> <tr> <td>Arabic</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/ar/">Edit</a></td> </tr> <tr> <td>Azerbaijani</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/az/">Edit</a></td> </tr> <tr> <td>Chinese</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/zh/">Edit</a></td> </tr> <tr> <td>Chinese (Traditional)</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/zh_Hant/">Edit</a></td> </tr> <tr> <td>Czech</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/cs/">Edit</a></td> </tr> <tr> <td>Danish</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/da/">Edit</a></td> </tr> <tr> <td>Dutch</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/nl/">Edit</a></td> </tr> <tr> <td>English</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/projects/libretranslate/app/">Edit</a></td> </tr> <tr> <td>Esperanto</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/eo/">Edit</a></td> </tr> <tr> <td>Finnish</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/fi/">Edit</a></td> </tr> <tr> <td>French</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/fr/">Edit</a></td> </tr> <tr> <td>German</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/de/">Edit</a></td> </tr> <tr> <td>Greek</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/el/">Edit</a></td> </tr> <tr> <td>Hebrew</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/he/">Edit</a></td> </tr> <tr> <td>Hindi</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/hi/">Edit</a></td> </tr> <tr> <td>Hungarian</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/hu/">Edit</a></td> </tr> <tr> <td>Indonesian</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/id/">Edit</a></td> </tr> <tr> <td>Irish</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/ga/">Edit</a></td> </tr> <tr> <td>Italian</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/it/">Edit</a></td> </tr> <tr> <td>Japanese</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/ja/">Edit</a></td> </tr> <tr> <td>Kabyle</td> <td></td> <td><a href="https://hosted.weblate.org/projects/libretranslate/app/kab/">Edit</a></td> </tr> <tr> <td>Korean</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/ko/">Edit</a></td> </tr> <tr> <td>Occitan</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/oc/">Edit</a></td> </tr> <tr> <td>Persian</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/fa/">Edit</a></td> </tr> <tr> <td>Polish</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/pl/">Edit</a></td> </tr> <tr> <td>Portuguese</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/pt/">Edit</a></td> </tr> <tr> <td>Russian</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/ru/">Edit</a></td> </tr> <tr> <td>Slovak</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/sk/">Edit</a></td> </tr> <tr> <td>Spanish</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/es/">Edit</a></td> </tr> <tr> <td>Swedish</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/sv/">Edit</a></td> </tr> <tr> <td>Turkish</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/tr/">Edit</a></td> </tr> <tr> <td>Ukrainian</td> <td><span>✔</span></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/uk/">Edit</a></td> </tr> <tr> <td>Vietnamese</td> <td></td> <td><a href="https://hosted.weblate.org/translate/libretranslate/app/vi/">Edit</a></td> </tr> </tbody> </table> <h2>Roadmap</h2> <p>Help us by opening a pull request!</p> <ul> <li><input type="checkbox" disabled> Language bindings for every computer language</li> <li><input type="checkbox" disabled> <a href="https://community.libretranslate.com/t/the-best-way-to-train-models/172">Improved translations</a></li> </ul> <p>Any other idea is welcome also.</p> <h2>FAQ</h2> <h3>Can I use your API server at libretranslate.com for my application in production?</h3> <p>In short, yes, <a href="https://portal.libretranslate.com">but only if you buy an API key</a>. You can always run LibreTranslate for free on your own server of course.</p> <h3>Some translations on libretranslate.com are different than the self-hosted ones. Why?</h3> <p>By default language models are loaded from the <a href="https://github.com/argosopentech/argospm-index">argos-index</a>. Sometimes we deploy models on libretranslate.com that haven't been added to the argos-index yet, such as those converted from OPUS (<a href="https://community.libretranslate.com/t/opus-mt-language-models-port-thread/757">thread</a>)</p> <h3>Where are the language models saved?</h3> <p>In <code>$HOME/.local/share/argos-translate/packages</code>. On Windows that's <code>C:\Users\youruser\.local\share\argos-translate\packages</code>.</p> <h3>Can I use LibreTranslate behind a reverse proxy, like Apache2 or Caddy?</h3> <p>Yes, here are config examples for Apache2 and Caddy that redirect a subdomain (with HTTPS certificate) to LibreTranslate running on a docker at localhost.</p> <pre><code class="language-bash">sudo docker run -ti --rm -p 127.0.0.1:5000:5000 libretranslate/libretranslate </code></pre> <p>You can remove <code>127.0.0.1</code> on the above command if you want to be able to access it from <code>domain.tld:5000</code>, in addition to <code>subdomain.domain.tld</code> (this can be helpful to determine if there is an issue with Apache2 or the docker container).</p> <p>Add <code>--restart unless-stopped</code> if you want this docker to start on boot, unless manually stopped.</p> <details> <summary>Apache config</summary> <br> <p>Replace [YOUR_DOMAIN] with your full domain; for example, <code>translate.domain.tld</code> or <code>libretranslate.domain.tld</code>.</p> <p>Remove <code>#</code> on the ErrorLog and CustomLog lines to log requests.</p> <pre><code class="language-ApacheConf">#Libretranslate #Redirect http to https &lt;VirtualHost *:80&gt; ServerName http://[YOUR_DOMAIN] Redirect / https://[YOUR_DOMAIN] # ErrorLog ${APACHE_LOG_DIR}/error.log # CustomLog ${APACHE_LOG_DIR}/tr-access.log combined &lt;/VirtualHost&gt; #https &lt;VirtualHost *:443&gt; ServerName https://[YOUR_DOMAIN] ProxyPass / http://127.0.0.1:5000/ ProxyPassReverse / http://127.0.0.1:5000/ ProxyPreserveHost On SSLEngine on SSLCertificateFile /etc/letsencrypt/live/[YOUR_DOMAIN]/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/[YOUR_DOMAIN]/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/[YOUR_DOMAIN]/fullchain.pem # ErrorLog ${APACHE_LOG_DIR}/tr-error.log # CustomLog ${APACHE_LOG_DIR}/tr-access.log combined &lt;/VirtualHost&gt; </code></pre> <p>Add this to an existing site config, or a new file in <code>/etc/apache2/sites-available/new-site.conf</code> and run <code>sudo a2ensite new-site.conf</code>.</p> <p>To get a HTTPS subdomain certificate, install <code>certbot</code> (snap), run <code>sudo certbot certonly --manual --preferred-challenges dns</code> and enter your information (with <code>subdomain.domain.tld</code> as the domain). Add a DNS TXT record with your domain registrar when asked. This will save your certificate and key to <code>/etc/letsencrypt/live/{subdomain.domain.tld}/</code>. Alternatively, comment the SSL lines out if you don't want to use HTTPS.</p> </details> <details> <summary>Caddy config</summary> <br> <p>Replace [YOUR_DOMAIN] with your full domain; for example, <code>translate.domain.tld</code> or <code>libretranslate.domain.tld</code>.</p> <pre><code class="language-Caddyfile">#Libretranslate [YOUR_DOMAIN] { reverse_proxy localhost:5000 } </code></pre> <p>Add this to an existing Caddyfile or save it as <code>Caddyfile</code> in any directory and run <code>sudo caddy reload</code> in that same directory.</p> </details> <details> <summary>NGINX config</summary> <br> <p>Replace [YOUR_DOMAIN] with your full domain; for example, <code>translate.domain.tld</code> or <code>libretranslate.domain.tld</code>.</p> <p>Remove <code>#</code> on the <code>access_log</code> and <code>error_log</code> lines to disable logging.</p> <pre><code class="language-NginxConf">server { listen 80; server_name [YOUR_DOMAIN]; return 301 https://$server_name$request_uri; } server { listen 443 http2 ssl; server_name [YOUR_DOMAIN]; #access_log off; #error_log off; # SSL Section ssl_certificate /etc/letsencrypt/live/[YOUR_DOMAIN]/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/[YOUR_DOMAIN]/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; # Using the recommended cipher suite from: https://wiki.mozilla.org/Security/Server_Side_TLS ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384'; ssl_session_timeout 10m; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; # Specifies a curve for ECDHE ciphers. ssl_ecdh_curve prime256v1; # Server should determine the ciphers, not the client ssl_prefer_server_ciphers on; # Header section add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; add_header Referrer-Policy "strict-origin" always; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Download-Options "noopen" always; add_header X-Robots-Tag "none" always; add_header Feature-Policy "microphone 'none'; camera 'none'; geolocation 'none';" always; # Newer header but not everywhere supported add_header Permissions-Policy "microphone=(), camera=(), geolocation=()" always; # Remove X-Powered-By, which is an information leak fastcgi_hide_header X-Powered-By; # Do not send nginx server header server_tokens off; # GZIP Section gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 256; gzip_types text/xml text/javascript font/ttf font/eot font/otf application/x-javascript application/atom+xml application/javascript application/json application/manifest+json application/rss+xml application/x-web-app-manifest+json application/xhtml+xml application/xml image/svg+xml image/x-icon text/css text/plain; location / { proxy_pass http://127.0.0.1:5000/; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; client_max_body_size 0; } } </code></pre> <p>Add this to an existing NGINX config or save it as <code>libretranslate</code> in the <code>/etc/nginx/site-enabled</code> directory and run <code>sudo nginx -s reload</code>.</p> </details> <h3>Can I do batch translations?</h3> <p>Yes, pass an array of strings instead of a string to the <code>q</code> field:</p> <pre><code class="language-javascript">const res = await fetch("https://libretranslate.com/translate", { method: "POST", body: JSON.stringify({ q: ["Hello", "world"], source: "en", target: "es" }), headers: { "Content-Type": "application/json" } }); console.log(await res.json()); // { // "translatedText": [ // "Hola", // "mundo" // ] // } </code></pre> <h2>Contributing</h2> <p>We welcome contributions! Here's some ideas:</p> <ul> <li>Train a new language model using <a href="https://github.com/LibreTranslate/Locomotive">Locomotive</a>. For example, we want to train improved neural networks for <a href="https://community.libretranslate.com/t/help-wanted-improve-en-de-translation/935">German</a> and many other languages.</li> <li>Can you beat the performance of our language models? Train a new one and let's compare it. To submit your model make a post on the <a href="https://community.libretranslate.com/">community forum</a> with a link to download your .argosmodel file and some sample text that your model has translated.</li> <li>Pick an <a href="https://github.com/LibreTranslate/LibreTranslate/issues">issue</a> to work on.</li> </ul> <h2>Credits</h2> <p>This work is largely possible thanks to <a href="https://github.com/argosopentech/argos-translate">Argos Translate</a>, which powers the translation engine.</p> <h2>License</h2> <p><a href="https://www.gnu.org/licenses/agpl-3.0.en.html">GNU Affero General Public License v3</a></p> <h2>Trademark</h2> <p>See <a href="https://github.com/LibreTranslate/LibreTranslate/raw/main/TRADEMARK.md">Trademark Guidelines</a></p> - - - toss/es-toolkit - 2024-08-21T01:27:46Z - tag:github.com,2024-08-21:/toss/es-toolkit - - <p>A modern JavaScript utility library that's 2-3 times faster and up to 97% smaller—a major upgrade to lodash.</p><hr><p><img src="https://raw.githubusercontent.com/toss/es-toolkit/main/docs/public/og.png" alt=""></p> <h1>es-toolkit · <a href="https://github.com/toss/slash/raw/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg?sanitize=true" alt="MIT License"></a> <a href="https://codecov.io/gh/toss/es-toolkit"><img src="https://codecov.io/gh/toss/es-toolkit/graph/badge.svg?token=8N5S3AR3C7" alt="codecov"></a> <a href="https://www.npmjs.com/package/es-toolkit"><img src="https://img.shields.io/npm/v/es-toolkit?logo=npm" alt="NPM badge"></a> <a href="https://jsr.io/@es-toolkit/es-toolkit"><img src="https://jsr.io/badges/@es-toolkit/es-toolkit" alt="JSR badge"></a></h1> <p>English | <a href="https://github.com/toss/es-toolkit/raw/main/README-ko_kr.md">한국어</a> | <a href="https://github.com/toss/es-toolkit/raw/main/README-zh_hans.md">简体中文</a> | <a href="https://github.com/toss/es-toolkit/raw/main/README-ja_jp.md">日本語</a></p> <p>es-toolkit is a state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.</p> <ul> <li>es-toolkit offers a variety of everyday utility functions with modern implementations, such as <a href="https://es-toolkit.slash.page/reference/function/debounce.html">debounce</a>, <a href="https://es-toolkit.slash.page/reference/promise/delay.html">delay</a>, <a href="https://es-toolkit.slash.page/reference/array/chunk.html">chunk</a>, <a href="https://es-toolkit.slash.page/reference/math/sum.html">sum</a>, and <a href="https://es-toolkit.slash.page/reference/object/pick.html">pick</a>.</li> <li>Designed with performance in mind, es-toolkit achieves <a href="https://es-toolkit.slash.page/performance.html">2-3× better performance</a> in modern JavaScript environments.</li> <li>es-toolkit supports tree shaking out of the box, and <a href="https://es-toolkit.slash.page/bundle-size.html">reduces JavaScript code by up to 97%</a> compared to other libraries.</li> <li>es-toolkit includes built-in TypeScript support, with straightforward yet robust types. It also provides useful type guards such as <a href="https://es-toolkit.slash.page/reference/predicate/isNotNil.html">isNotNil</a>.</li> <li>es-toolkit is battle-tested with 100% test coverage, ensuring reliability and robustness.</li> </ul> <h2>Examples</h2> <pre><code class="language-tsx">// import from '@es-toolkit/es-toolkit' in jsr. import { debounce, chunk } from 'es-toolkit'; const debouncedLog = debounce(message =&gt; { console.log(message); }, 300); // This call will be debounced debouncedLog('Hello, world!'); const array = [1, 2, 3, 4, 5, 6]; const chunkedArray = chunk(array, 2); console.log(chunkedArray); // Output: [[1, 2], [3, 4], [5, 6]] </code></pre> <h2>Contributing</h2> <p>We welcome contribution from everyone in the community. Read below for detailed contribution guide.</p> <p><a href="https://github.com/toss/es-toolkit/raw/main/.github/CONTRIBUTING.md">CONTRIBUTING</a></p> <h2>License</h2> <p>MIT © Viva Republica, Inc. See <a href="https://raw.githubusercontent.com/toss/es-toolkit/main/LICENSE">LICENSE</a> for details.</p> <a title="Toss" href="https://toss.im"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://static.toss.im/logos/png/4x/logo-toss-reverse.png"> <img alt="Toss" src="https://static.toss.im/logos/png/4x/logo-toss.png" width="100"> </picture> </a> + SorellaLabs/brontes + 2024-08-22T01:27:58Z + tag:github.com,2024-08-22:/SorellaLabs/brontes + + <p>A blazingly fast general purpose blockchain analytics engine specialized in systematic mev detection</p><hr><h1>Brontes</h1> <p><a href="https://t.me/sorella_brontes"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fsorella_brontes" alt="Telegram Chat"></a><a href="https://twitter.com/SorellaLabs"> <img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/SorellaLabs?style=social"> </a></p> <p><img src="https://raw.githubusercontent.com/SorellaLabs/brontes/main/assets/Brontes.png" alt=""></p> <h2>Brontes –&nbsp;Illuminate to Eliminate</h2> <p><strong><a href="https://sorellalabs.github.io/brontes/installation/installation.html">Install</a></strong> | <a href="https://sorellalabs.github.io/brontes/intro.html">User Book</a> | <a href="https://sorellalabs.github.io/brontes/docs/brontes/index.html">Crate Docs</a> | <a href="https://sorellalabs.github.io/brontes/mev_inspectors/intro.html">Methodology</a></p> <h2>Why Brontes?</h2> <p><a href="https://github.com/SorellaLabs/brontes">Brontes</a> is a blockchain analytics pipeline built on top of <a href="https://github.com/paradigmxyz/reth/">Reth</a>. It addresses a critical challenge in blockchain research: the overwhelming flood of data and tedious preprocessing that often derail researchers from their core focus.</p> <p><strong>Key features:</strong></p> <ul> <li>Transforms raw Ethereum data into a structured, analyzable format</li> <li>Enhances analysis with off-chain data (metadata, CEX prices, p2p data...)</li> <li>Provides a modular framework to easily implement user-defined inspectors for custom analytics</li> </ul> <p>Blockchain data analysis, especially at the trace level, can overwhelm even seasoned researchers. While a few masochists might find satisfaction in the chore of data preprocessing and normalization, most of us are captivated by the intellectual challenge of crafting innovative analytical techniques.</p> <p>Our Inspector Framework allows you to focus on developing and applying novel methodologies. By eliminating initial hurdles, Brontes frees you to immerse yourself in creative analysis rather than getting bogged down in preprocessing.</p> <h2>Who is this for?</h2> <p>Brontes is designed for:</p> <ul> <li>Blockchain researchers and data scientists</li> <li>MEV analysts and strategists</li> <li>DeFi protocol developers</li> <li>Anyone working with large-scale Ethereum data</li> </ul> \ No newline at end of file diff --git a/alloy/daily/index.xml b/alloy/daily/index.xml index 378218565e7..7a0a422962b 100644 --- a/alloy/daily/index.xml +++ b/alloy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Alloy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:58Z + 2024-08-22T01:28:04Z Daily Trending of Alloy in GitHub \ No newline at end of file diff --git a/alpine-abuild/daily/index.xml b/alpine-abuild/daily/index.xml index 7ff437b615c..172bba24fd0 100644 --- a/alpine-abuild/daily/index.xml +++ b/alpine-abuild/daily/index.xml @@ -1,7 +1,7 @@ GitHub Alpine Abuild Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:58Z + 2024-08-22T01:28:04Z Daily Trending of Alpine Abuild in GitHub \ No newline at end of file diff --git a/altium-designer/daily/index.xml b/altium-designer/daily/index.xml index 3100dea429d..ef1fdfa0ec7 100644 --- a/altium-designer/daily/index.xml +++ b/altium-designer/daily/index.xml @@ -1,7 +1,7 @@ GitHub Altium Designer Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:59Z + 2024-08-22T01:28:05Z Daily Trending of Altium Designer in GitHub \ No newline at end of file diff --git a/ampl/daily/index.xml b/ampl/daily/index.xml index 5536d74857e..cccca71064f 100644 --- a/ampl/daily/index.xml +++ b/ampl/daily/index.xml @@ -1,7 +1,7 @@ GitHub AMPL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:58Z + 2024-08-22T01:28:04Z Daily Trending of AMPL in GitHub \ No newline at end of file diff --git a/angelscript/daily/index.xml b/angelscript/daily/index.xml index b193c5227d4..5550d903f1b 100644 --- a/angelscript/daily/index.xml +++ b/angelscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub AngelScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:01Z + 2024-08-22T01:28:06Z Daily Trending of AngelScript in GitHub \ No newline at end of file diff --git a/ant-build-system/daily/index.xml b/ant-build-system/daily/index.xml index 80f133d8fb7..42a6460dedf 100644 --- a/ant-build-system/daily/index.xml +++ b/ant-build-system/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ant Build System Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:59Z + 2024-08-22T01:28:05Z Daily Trending of Ant Build System in GitHub \ No newline at end of file diff --git a/antlr/daily/index.xml b/antlr/daily/index.xml index 9deac4d767e..0560cda45ce 100644 --- a/antlr/daily/index.xml +++ b/antlr/daily/index.xml @@ -1,7 +1,7 @@ GitHub ANTLR Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:00Z + 2024-08-22T01:28:06Z Daily Trending of ANTLR in GitHub \ No newline at end of file diff --git a/apacheconf/daily/index.xml b/apacheconf/daily/index.xml index daa8c733fd0..63faf26ae00 100644 --- a/apacheconf/daily/index.xml +++ b/apacheconf/daily/index.xml @@ -1,7 +1,7 @@ GitHub ApacheConf Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:02Z + 2024-08-22T01:28:08Z Daily Trending of ApacheConf in GitHub \ No newline at end of file diff --git a/apex/daily/index.xml b/apex/daily/index.xml index 1b9397660bd..24852c7683c 100644 --- a/apex/daily/index.xml +++ b/apex/daily/index.xml @@ -1,7 +1,7 @@ GitHub Apex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:02Z + 2024-08-22T01:28:08Z Daily Trending of Apex in GitHub \ No newline at end of file diff --git a/api-blueprint/daily/index.xml b/api-blueprint/daily/index.xml index 57931f0be7e..69040061d40 100644 --- a/api-blueprint/daily/index.xml +++ b/api-blueprint/daily/index.xml @@ -1,7 +1,7 @@ GitHub API Blueprint Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:01Z + 2024-08-22T01:28:07Z Daily Trending of API Blueprint in GitHub \ No newline at end of file diff --git a/apl/daily/index.xml b/apl/daily/index.xml index c397ef30d0b..0e80fac94b2 100644 --- a/apl/daily/index.xml +++ b/apl/daily/index.xml @@ -1,7 +1,7 @@ GitHub APL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:02Z + 2024-08-22T01:28:07Z Daily Trending of APL in GitHub \ No newline at end of file diff --git a/apollo-guidance-computer/daily/index.xml b/apollo-guidance-computer/daily/index.xml index 09b05ccdea3..1ee569bf1cb 100644 --- a/apollo-guidance-computer/daily/index.xml +++ b/apollo-guidance-computer/daily/index.xml @@ -1,7 +1,7 @@ GitHub Apollo Guidance Computer Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:03Z + 2024-08-22T01:28:09Z Daily Trending of Apollo Guidance Computer in GitHub \ No newline at end of file diff --git a/applescript/daily/index.xml b/applescript/daily/index.xml index 7b848369eaf..b7dce7e7bef 100644 --- a/applescript/daily/index.xml +++ b/applescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub AppleScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:04Z + 2024-08-22T01:28:09Z Daily Trending of AppleScript in GitHub \ No newline at end of file diff --git a/arc/daily/index.xml b/arc/daily/index.xml index ef92523e845..b663fdd9293 100644 --- a/arc/daily/index.xml +++ b/arc/daily/index.xml @@ -1,7 +1,7 @@ GitHub Arc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:04Z + 2024-08-22T01:28:09Z Daily Trending of Arc in GitHub \ No newline at end of file diff --git a/asciidoc/daily/index.xml b/asciidoc/daily/index.xml index 5b8067c8867..08974edc035 100644 --- a/asciidoc/daily/index.xml +++ b/asciidoc/daily/index.xml @@ -1,7 +1,7 @@ GitHub AsciiDoc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:05Z + 2024-08-22T01:28:09Z Daily Trending of AsciiDoc in GitHub \ No newline at end of file diff --git a/asl/daily/index.xml b/asl/daily/index.xml index e8f90aef352..204eb24de05 100644 --- a/asl/daily/index.xml +++ b/asl/daily/index.xml @@ -1,7 +1,7 @@ GitHub ASL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:06Z + 2024-08-22T01:28:11Z Daily Trending of ASL in GitHub \ No newline at end of file diff --git a/asn.1/daily/index.xml b/asn.1/daily/index.xml index 3a58ff556a1..d7267b2770d 100644 --- a/asn.1/daily/index.xml +++ b/asn.1/daily/index.xml @@ -1,7 +1,7 @@ GitHub ASN.1 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:06Z + 2024-08-22T01:28:11Z Daily Trending of ASN.1 in GitHub \ No newline at end of file diff --git a/asp.net/daily/index.xml b/asp.net/daily/index.xml index 90499af6c22..164208c3e2d 100644 --- a/asp.net/daily/index.xml +++ b/asp.net/daily/index.xml @@ -1,7 +1,7 @@ GitHub ASP.NET Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:06Z + 2024-08-22T01:28:10Z Daily Trending of ASP.NET in GitHub \ No newline at end of file diff --git a/aspectj/daily/index.xml b/aspectj/daily/index.xml index 3e2a7c8dbd8..eb6e309c69f 100644 --- a/aspectj/daily/index.xml +++ b/aspectj/daily/index.xml @@ -1,7 +1,7 @@ GitHub AspectJ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:07Z + 2024-08-22T01:28:12Z Daily Trending of AspectJ in GitHub \ No newline at end of file diff --git a/assembly/daily/index.xml b/assembly/daily/index.xml index b4572353ea2..4d64af097d6 100644 --- a/assembly/daily/index.xml +++ b/assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:08Z + 2024-08-22T01:28:13Z Daily Trending of Assembly in GitHub \ No newline at end of file diff --git a/astro/daily/index.xml b/astro/daily/index.xml index 8cab7e86cff..cac9a26b633 100644 --- a/astro/daily/index.xml +++ b/astro/daily/index.xml @@ -1,7 +1,7 @@ GitHub Astro Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:09Z + 2024-08-22T01:28:13Z Daily Trending of Astro in GitHub \ No newline at end of file diff --git a/asymptote/daily/index.xml b/asymptote/daily/index.xml index 4b62c8d2eb5..ca758ca6335 100644 --- a/asymptote/daily/index.xml +++ b/asymptote/daily/index.xml @@ -1,7 +1,7 @@ GitHub Asymptote Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:07Z + 2024-08-22T01:28:12Z Daily Trending of Asymptote in GitHub \ No newline at end of file diff --git a/ats/daily/index.xml b/ats/daily/index.xml index ad4b9c465a7..6f52998de6d 100644 --- a/ats/daily/index.xml +++ b/ats/daily/index.xml @@ -1,7 +1,7 @@ GitHub ATS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:09Z + 2024-08-22T01:28:14Z Daily Trending of ATS in GitHub \ No newline at end of file diff --git a/augeas/daily/index.xml b/augeas/daily/index.xml index 62293e2568e..1288e4baa33 100644 --- a/augeas/daily/index.xml +++ b/augeas/daily/index.xml @@ -1,7 +1,7 @@ GitHub Augeas Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:09Z + 2024-08-22T01:28:14Z Daily Trending of Augeas in GitHub \ No newline at end of file diff --git a/autohotkey/daily/index.xml b/autohotkey/daily/index.xml index 70fa909939b..a6621523c3d 100644 --- a/autohotkey/daily/index.xml +++ b/autohotkey/daily/index.xml @@ -1,7 +1,7 @@ GitHub AutoHotkey Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:10Z + 2024-08-22T01:28:15Z Daily Trending of AutoHotkey in GitHub \ No newline at end of file diff --git a/autoit/daily/index.xml b/autoit/daily/index.xml index b6fd1eb2aad..336e7d29b41 100644 --- a/autoit/daily/index.xml +++ b/autoit/daily/index.xml @@ -1,7 +1,7 @@ GitHub AutoIt Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:10Z + 2024-08-22T01:28:15Z Daily Trending of AutoIt in GitHub \ No newline at end of file diff --git a/avro-idl/daily/index.xml b/avro-idl/daily/index.xml index 669c04c2ef2..50eaad678d4 100644 --- a/avro-idl/daily/index.xml +++ b/avro-idl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Avro IDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:12Z + 2024-08-22T01:28:16Z Daily Trending of Avro IDL in GitHub \ No newline at end of file diff --git a/awk/daily/index.xml b/awk/daily/index.xml index 54c5b1158b8..c79f657d395 100644 --- a/awk/daily/index.xml +++ b/awk/daily/index.xml @@ -1,7 +1,7 @@ GitHub Awk Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:11Z + 2024-08-22T01:28:16Z Daily Trending of Awk in GitHub \ No newline at end of file diff --git a/ballerina/daily/index.xml b/ballerina/daily/index.xml index 148c7546eb5..ae2407a2993 100644 --- a/ballerina/daily/index.xml +++ b/ballerina/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ballerina Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:12Z + 2024-08-22T01:28:16Z Daily Trending of Ballerina in GitHub \ No newline at end of file diff --git a/basic/daily/index.xml b/basic/daily/index.xml index 7d0362751c5..2ee9ffa8a87 100644 --- a/basic/daily/index.xml +++ b/basic/daily/index.xml @@ -1,7 +1,7 @@ GitHub BASIC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:11Z + 2024-08-22T01:28:16Z Daily Trending of BASIC in GitHub \ No newline at end of file diff --git a/batchfile/daily/index.xml b/batchfile/daily/index.xml index e2285d94269..dda0677f270 100644 --- a/batchfile/daily/index.xml +++ b/batchfile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Batchfile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:14Z + 2024-08-22T01:28:18Z Daily Trending of Batchfile in GitHub \ No newline at end of file diff --git a/beef/daily/index.xml b/beef/daily/index.xml index 5d0be1dd85b..281e434746c 100644 --- a/beef/daily/index.xml +++ b/beef/daily/index.xml @@ -1,7 +1,7 @@ GitHub Beef Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:13Z + 2024-08-22T01:28:17Z Daily Trending of Beef in GitHub \ No newline at end of file diff --git a/befunge/daily/index.xml b/befunge/daily/index.xml index 34559f7c441..48202c897f4 100644 --- a/befunge/daily/index.xml +++ b/befunge/daily/index.xml @@ -1,7 +1,7 @@ GitHub Befunge Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:13Z + 2024-08-22T01:28:18Z Daily Trending of Befunge in GitHub \ No newline at end of file diff --git a/berry/daily/index.xml b/berry/daily/index.xml index dca38afaaed..f831d7c7690 100644 --- a/berry/daily/index.xml +++ b/berry/daily/index.xml @@ -1,7 +1,7 @@ GitHub Berry Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:13Z + 2024-08-22T01:28:17Z Daily Trending of Berry in GitHub \ No newline at end of file diff --git a/bibtex/daily/index.xml b/bibtex/daily/index.xml index 4b864214f58..0ef14e34414 100644 --- a/bibtex/daily/index.xml +++ b/bibtex/daily/index.xml @@ -1,7 +1,7 @@ GitHub BibTeX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:15Z + 2024-08-22T01:28:19Z Daily Trending of BibTeX in GitHub \ No newline at end of file diff --git a/bicep/daily/index.xml b/bicep/daily/index.xml index 4dfc147d35d..ad5b9ee9f77 100644 --- a/bicep/daily/index.xml +++ b/bicep/daily/index.xml @@ -1,7 +1,7 @@ GitHub Bicep Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:16Z + 2024-08-22T01:28:20Z Daily Trending of Bicep in GitHub \ No newline at end of file diff --git a/bison/daily/index.xml b/bison/daily/index.xml index a2702d19bc1..00d36e17c7c 100644 --- a/bison/daily/index.xml +++ b/bison/daily/index.xml @@ -1,7 +1,7 @@ GitHub Bison Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:14Z + 2024-08-22T01:28:20Z Daily Trending of Bison in GitHub \ No newline at end of file diff --git a/bitbake/daily/index.xml b/bitbake/daily/index.xml index 332246f318b..3504a54c75e 100644 --- a/bitbake/daily/index.xml +++ b/bitbake/daily/index.xml @@ -1,7 +1,7 @@ GitHub BitBake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:20Z + 2024-08-22T01:28:22Z Daily Trending of BitBake in GitHub \ No newline at end of file diff --git a/blade/daily/index.xml b/blade/daily/index.xml index dc00b91970e..934b7f6d34b 100644 --- a/blade/daily/index.xml +++ b/blade/daily/index.xml @@ -1,7 +1,14 @@ GitHub Blade Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:17Z + 2024-08-22T01:28:22Z Daily Trending of Blade in GitHub + + krayin/laravel-crm + 2024-08-22T01:28:22Z + tag:github.com,2024-08-22:/krayin/laravel-crm + + <p>Free & Opensource Laravel CRM solution for SMEs and Enterprises for complete customer lifecycle management.</p><hr> + \ No newline at end of file diff --git a/blitzbasic/daily/index.xml b/blitzbasic/daily/index.xml index 145ce3b725f..3c0e30f91b3 100644 --- a/blitzbasic/daily/index.xml +++ b/blitzbasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub BlitzBasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:17Z + 2024-08-22T01:28:21Z Daily Trending of BlitzBasic in GitHub \ No newline at end of file diff --git a/blitzmax/daily/index.xml b/blitzmax/daily/index.xml index a2002b0d133..ce9a249fe4e 100644 --- a/blitzmax/daily/index.xml +++ b/blitzmax/daily/index.xml @@ -1,7 +1,7 @@ GitHub BlitzMax Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:17Z + 2024-08-22T01:28:21Z Daily Trending of BlitzMax in GitHub \ No newline at end of file diff --git a/bluespec/daily/index.xml b/bluespec/daily/index.xml index 409c6abbb34..dad72a7cc33 100644 --- a/bluespec/daily/index.xml +++ b/bluespec/daily/index.xml @@ -1,7 +1,7 @@ GitHub Bluespec Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:20Z + 2024-08-22T01:28:23Z Daily Trending of Bluespec in GitHub \ No newline at end of file diff --git a/boo/daily/index.xml b/boo/daily/index.xml index 428efbdfba1..7a9b30641ea 100644 --- a/boo/daily/index.xml +++ b/boo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Boo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:21Z + 2024-08-22T01:28:23Z Daily Trending of Boo in GitHub \ No newline at end of file diff --git a/boogie/daily/index.xml b/boogie/daily/index.xml index e4f2b733e11..62ae8ac2ded 100644 --- a/boogie/daily/index.xml +++ b/boogie/daily/index.xml @@ -1,7 +1,7 @@ GitHub Boogie Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:21Z + 2024-08-22T01:28:23Z Daily Trending of Boogie in GitHub \ No newline at end of file diff --git a/brainfuck/daily/index.xml b/brainfuck/daily/index.xml index 55a6c2eee22..d2da22e18a1 100644 --- a/brainfuck/daily/index.xml +++ b/brainfuck/daily/index.xml @@ -1,7 +1,7 @@ GitHub Brainfuck Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:22Z + 2024-08-22T01:28:25Z Daily Trending of Brainfuck in GitHub \ No newline at end of file diff --git a/brightscript/daily/index.xml b/brightscript/daily/index.xml index 770a845af3e..3ed5de50c00 100644 --- a/brightscript/daily/index.xml +++ b/brightscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Brightscript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:22Z + 2024-08-22T01:28:24Z Daily Trending of Brightscript in GitHub \ No newline at end of file diff --git a/browserslist/daily/index.xml b/browserslist/daily/index.xml index ead31663c72..b660c12f125 100644 --- a/browserslist/daily/index.xml +++ b/browserslist/daily/index.xml @@ -1,7 +1,7 @@ GitHub Browserslist Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:24Z + 2024-08-22T01:28:26Z Daily Trending of Browserslist in GitHub \ No newline at end of file diff --git a/c%23/daily/index.xml b/c%23/daily/index.xml index 1ea59be793a..618dc699251 100644 --- a/c%23/daily/index.xml +++ b/c%23/daily/index.xml @@ -1,7 +1,14 @@ GitHub C# Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:26Z + 2024-08-22T01:28:28Z Daily Trending of C# in GitHub + + berichan/ACNHMobileSpawner + 2024-08-22T01:28:28Z + tag:github.com,2024-08-22:/berichan/ACNHMobileSpawner + + <p>Animal Crossing New Horizons real-time multi-tool built in Unity.</p><hr><h1>ACNHSpawner</h1> <p>For mobile and desktop, despite the name.</p> <p>Multi-tool app for Animal Crossing: New Horizons built in Unity. Designed to be used while you are playing the game so you don't have to manually edit saves on a PC. Confirmed working on Windows, Mac, Linux, Android and iOS.</p> <p>『あつまれ どうぶつの森』でリアルタイムにアイテムをインジェクトしたり島を編集したりゲーム内の値を変更したり等のカスタマイズを行うことができるAndroid/ iOS(Windows/ macOS/ Linuxも可)向けユーティリティ。</p> <p>Requires a Switch running custom firmware with the sysmodule <a href="https://github.com/olliz0r/sys-botbase">sys-botbase</a> or <a href="https://github.com/fishguy6564/USB-Botbase">USB-Botbase</a> installed.</p> <p>It currently supports the following in-play actions:</p> <ul> <li>Injecting and deleting inventory items. Supports all players 1-8.</li> <li>Changing amount of miles, bells in your bank and in your wallet (inventory).</li> <li><a href="https://www.youtube.com/watch?v=5CUUZhGtsxk">Changing and replacing villagers</a> using the perfect villager database.</li> <li>Changing the turnip buy/sell prices and fluctuations.</li> <li><a href="https://www.youtube.com/watch?v=LfedVAabGN4">Place and bulk spawn items to your map</a>, a few presets exist within the app. You may also find and replace items.</li> <li><a href="https://www.youtube.com/watch?v=q50R6ky0hIQ">Spawning internal items*</a> such as the donut. <a href="https://github.com/berichan/ACNHMobileSpawner/wiki/List-of-internal-items">A list of all internal items is here.</a></li> <li>Hex editing raw RAM bytes. This can be used in any Switch game, not just Animal Crossing.</li> <li>Removing certain items from your map, such as weeds, trees, flowers, spoiled turnips, etc.</li> <li>Saving, sharing and loading certain New Horizons file types: <em>*.nhi (inventory), *.nhv (villager) and *.nhvh (villager house).</em></li> <li><a href="https://www.youtube.com/watch?v=w1PKrrQJyjE&amp;t=16s">Refresh items on the floor of your island</a>, and logs people coming in during the time the refresher was running.</li> <li><a href="https://www.youtube.com/watch?v=1_0FbbIZLqM">Freeze certain values (villagers, inventory, map etc)</a></li> <li>Create teleports so you can easily move between common areas.</li> </ul> <p>Refer to the <a href="https://github.com/berichan/ACNHMobileSpawner/wiki">Wiki</a> for help and troubleshooting.</p> <p>Based heavily on <a href="https://github.com/kwsch/NHSE">NHSE</a>.</p> <p>You run this at your own risk, I'm not responsible for anything. Please check the <a href="https://github.com/berichan/ACNHMobileSpawner/raw/master/LICENSE">license</a> for full details before using the app or source.</p> <p>*Please do not use this app to ruin the experience of other players, <strong>be responsible!</strong> Do not trade or use items from the <a href="https://github.com/berichan/ACNHMobileSpawner/wiki/List-of-internal-items">internal list</a> in local or online play- this should go without saying, but <strong>they will ruin the experience of other players</strong> as they are not easily removable on a non-cfw console.</p> <h3>Discord help server</h3> <p>You may ask for help in the support server if you're running into trouble. Please <a href="https://github.com/berichan/ACNHMobileSpawner/wiki">read the wiki</a> first if you haven't already done so.</p> <p><a href="https://discord.gg/5bT8XK8dYe"><img src="https://canary.discordapp.com/api/guilds/771477382409879602/widget.png?style=banner2"></a></p> <h3>Builds</h3> <p>Each major release is built for Windows, Android, MacOSX and iOS. You may download the <a href="https://github.com/berichan/ACNHMobileSpawner/releases">compiled builds here</a>.</p> <p>iOS builds are auto-built and untested, but I've been told they work.</p> <h3>Screenshots</h3> <img src="https://user-images.githubusercontent.com/66521620/84556327-bcb53000-ad19-11ea-96c6-12dc65441efd.png" width="300"> <h3>Video guide</h3> <p><a href="https://youtu.be/c5HJgwqeb7w" target="_blank"><img src="https://i.imgur.com/XJnWZk2.jpg" width="300"></a></p> <p>Click the image above.</p> <h3>Notes</h3> <p>Some code was deleted and had to be rebuilt using ILSpy. I've done my best to clean up the classes affected, but they will be uncommented, minus ILSpy warnings I've kept in just to know what was affected.</p> + \ No newline at end of file diff --git a/c++/daily/index.xml b/c++/daily/index.xml index 99180e0a2b2..ad72f944f40 100644 --- a/c++/daily/index.xml +++ b/c++/daily/index.xml @@ -1,14 +1,7 @@ GitHub C++ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:38Z + 2024-08-22T01:28:38Z Daily Trending of C++ in GitHub - - chrxh/alien - 2024-08-21T01:28:38Z - tag:github.com,2024-08-21:/chrxh/alien - - <p>ALIEN is a CUDA-powered artificial life simulation program.</p><hr><h1 align="center"> <a href="https://alien-project.org" target="_blank">ALIEN - Explore worlds of artificial life</a> </h1> <p><img src="https://github.com/user-attachments/assets/ee578848-7dd7-458d-873f-89662a7c15f0" alt="Preview"></p> <p> <b><i>A</i></b>rtificial <b><i>LI</i></b>fe <b><i>EN</i></b>vironment <b>(ALIEN)</b> is an artificial life simulation tool based on a specialized 2D particle engine in CUDA for soft bodies and fluids. Each simulated body consists of a network of particles that can be upgraded with higher-level functions, ranging from pure information processing capabilities to physical equipment (such as sensors, muscles, weapons, constructors, etc.) whose executions are orchestrated by neural networks. The bodies can be thought of as agents or digital organisms operating in a common environment. Their blueprints can be stored in genomes and passed on to offspring. </p> <p> The simulation code is written entirely in CUDA and optimized for large-scale real-time simulations with millions of particles. The development is driven by the desire to better understand the conditions for (pre-)biotic evolution and the growing complexity of biological systems. An important goal is to make the simulator user-friendly through a modern user interface, visually appealing rendering and a playful approach. </p> <p> Please join our <a href="https://discord.gg/7bjyZdXXQ2" target="_blank">Discord server</a> as a place for discussions, new developments and feedback around ALIEN and artificial life in general. </p> <p> Demo video: <a href="https://youtu.be/qwbMGPkoJmg" target="_blank">Emerging Ecosystems | Winner of the ALIFE 2024 Virtual Creatures Competition</a> </p> <h1>⚡ Main features</h1> <h3>Physics and graphics engine</h3> <ul> <li>Particles for simulating soft and rigid body mechanics, fluids, heat dissipation, damage, adhesion etc.</li> <li>Real-time user interactions with running simulations</li> <li>Simulation runs entirely on GPU via CUDA</li> <li>Rendering and post-processing via OpenGL using CUDA-OpenGL interoperability</li> </ul> <p><a href="https://user-images.githubusercontent.com/73127001/229868357-131fa71f-d03d-45db-ac76-9d192f5464af.mp4">https://user-images.githubusercontent.com/73127001/229868357-131fa71f-d03d-45db-ac76-9d192f5464af.mp4</a></p> <h3>Artificial Life engine extensions</h3> <ul> <li>Multi-cellular organisms are simulated as particle networks</li> <li>Genetic system and cell by cell construction of offspring</li> <li>Neural networks for controlling higher-level functions (e.g. sensors and muscles)</li> <li>Various colors may be used to customize cell types according to own specifications</li> <li>Support for spatially varying simulation parameters</li> </ul> <p><a href="https://user-images.githubusercontent.com/73127001/229569056-0db6562b-0147-43c8-a977-5f12c1b6277b.mp4">https://user-images.githubusercontent.com/73127001/229569056-0db6562b-0147-43c8-a977-5f12c1b6277b.mp4</a></p> <h3>Extensive editing tools</h3> <ul> <li>Graph editor for manipulating every particle and connection</li> <li>Freehand and geometric drawing tools</li> <li>Genetic editor for designing customized organisms</li> <li>Mass-operations and (up/down) scaling functions</li> </ul> <h3>Networking</h3> <ul> <li>Built-in simulation browser</li> <li>Download and upload simulation files</li> <li>Upvote simulations by giving stars</li> </ul> <h1>❓ But for what is this useful</h1> <ul> <li>A first attempt to answer: Feed your curiosity by watching evolution at work! As soon as self-replicating machines come into play and mutations are turned on, the simulation itself does everything.</li> <li>Perhaps the most honest answer: Fun! It is almost like a game with a pretty fast and realistic physics engine. You can make hundreds of thousands of machines accelerate and destroy with the mouse cursor. It feels like playing god in your own universe with your own rules. Different render styles and a visual editor offer fascinating insights into the events. There are a lot of videos on the <a href="https://youtube.com/channel/UCtotfE3yvG0wwAZ4bDfPGYw">YouTube channel</a> for illustration.</li> <li>A more academic answer: A tool to tackle fundamental questions of how complexity or life-like structure may arise from simple components. How do entire ecosystems adapt to environmental changes and find a new equilibrium? How to find conditions that allow open-ended evolution?</li> <li>A tool for generative art: Evolution is a creative force that leads to ever new forms and behaviors.</li> </ul> <h1>📘 Documentation</h1> <p>A documentation for the previous major version, which introduces the reader to the simulator with tutorial-like articles, can be found at <a href="https://alien-project.gitbook.io/docs">alien-project.gitbook.io/docs</a>. Please notice that many of the information therein are no longer up to date. The latest version includes a brief documentation and user guidance in the program itself via help windows and tooltips.</p> <p>Further information and artwork:</p> <ul> <li><a href="https://alien-project.org">Website</a></li> <li><a href="https://youtube.com/channel/UCtotfE3yvG0wwAZ4bDfPGYw">YouTube</a></li> <li><a href="https://twitter.com/chrx_h">Twitter</a></li> <li><a href="https://www.reddit.com/r/AlienProject">Reddit</a></li> <li><a href="https://discord.gg/7bjyZdXXQ2">Discord</a></li> </ul> <h1>🖥️ Minimal system requirements</h1> <p>An Nvidia graphics card with compute capability 6.0 or higher is needed. Please check <a href="https://en.wikipedia.org/wiki/CUDA#GPUs_supported">https://en.wikipedia.org/wiki/CUDA#GPUs_supported</a>.</p> <h1>💽 Installer</h1> <p>Installer for Windows: <a href="https://alien-project.org/media/files/alien-installer.msi">alien-installer.msi</a> (updated: 2024-08-17)</p> <p>In the case that the program crashes for an unknown reason, please refer to the troubleshooting section below.</p> <h1>🔨 How to build the sources</h1> <p>The build process is mostly automated using the cross-platform CMake build system and the vcpkg package manager, which is included as a Git submodule.</p> <h3>Getting the sources</h3> <p>To obtain the sources, please open a command prompt in a suitable directory (which should not contain whitespace characters) and enter the following command:</p> <pre><code>git clone --recursive https://github.com/chrxh/alien.git </code></pre> <p>Note: The <code>--recursive</code> parameter is necessary to check out the vcpkg submodule as well. Besides that, submodules are not normally updated by the standard <code>git pull</code> command. Instead, you need to write <code>git pull --recurse-submodules</code>.</p> <h3>Build instructions</h3> <p>Prerequisites: <a href="https://developer.nvidia.com/cuda-downloads">CUDA Toolkit 11.2+</a> and a toolchain for CMake (e.g. GCC 9.x+ or <a href="https://visualstudio.microsoft.com/vs/">MSVC v142+</a>).</p> <p>Build steps:</p> <pre><code>mkdir build &amp;&amp; cd build cmake .. -DCMAKE_BUILD_TYPE=Release cmake --build . --config Release -j8 </code></pre> <p>If everything goes well, the ALIEN executable can be found under the build directory in <code>./alien</code> or <code>.\Release\alien.exe</code> depending on the used toolchain and platform. It is important to start ALIEN directly from the build folder, otherwise it will not find the resource folder.</p> <p>There are reported build issues with (updated: 2024-06-22)</p> <ul> <li>GCC 13 (version 11 should work)</li> <li>Visual Studio 17.10 (version 17.9 should work)</li> <li>CUDA 12.5 (version 12.4 should work)</li> </ul> <h1>⌨️ Command-line interface</h1> <p>This repository also contains a CLI for ALIEN. It can be used to run simulations without using a GUI. This is useful for performance measurements as well as for automatic execution and evaluation of simulations for different parameters. The CLI takes the simulation file, along with its parameters and the number of time steps, as input. It then provides the resulting simulation file and the statistics (as a CSV file) as output. For example,</p> <pre><code>.\cli.exe -i example.sim -o output.sim -t 1000 </code></pre> <p>runs the simulation file <code>example.sim</code> for 1000 time steps.</p> <h1>🔎 Troubleshooting</h1> <p>Please make sure that:</p> <ol> <li>You have an NVIDIA graphics card with compute capability 6.0 or higher (for example GeForce 10 series).</li> <li>You have the latest NVIDIA graphics driver installed.</li> <li>The name of the installation directory (including the parent directories) should not contain non-English characters. If this is not fulfilled, please re-install ALIEN to a suitable directory. Do not move the files manually. If you use Windows, make also sure that you install ALIEN with a Windows user that contains no non-English characters. If this is not the case, a new Windows user could be created to solve this problem.</li> <li>ALIEN needs write access to its own directory. This should normally be the case.</li> <li>If you have multiple graphics cards, please check that your primary monitor is connected to the CUDA-powered card. ALIEN uses the same graphics card for computation as well as rendering and chooses the one with the highest compute capability.</li> <li>If you possess both integrated and dedicated graphics cards, please ensure that the alien-executable is configured to use your high-performance graphics card. On Windows you need to access the 'Graphics settings,' add 'alien.exe' to the list, click 'Options,' and choose 'High performance'.</li> </ol> <p>If these conditions are not met, ALIEN may crash unexpectedly. If the conditions are met and the error still occurs, please start ALIEN with the command line parameter <code>-d</code>, try to reproduce the error and then create a GitHub issue on <a href="https://github.com/chrxh/alien/issues">https://github.com/chrxh/alien/issues</a> where the log.txt is attached.</p> <h1>🌌 Screenshots</h1> <h4>Different plant-like populations around a radiation source</h4> <p><img src="https://user-images.githubusercontent.com/73127001/229311601-839649a6-c60c-4723-99b3-26086e3e4340.jpg" alt="Screenshot1"></p> <h1 align="center"></h1> <h4>Close-up of different types of organisms so that their cell networks can be seen</h4> <p><img src="https://user-images.githubusercontent.com/73127001/229311604-3ee433d4-7dd8-46e2-b3e6-489eaffbda7b.jpg" alt="Screenshot2"></p> <h1 align="center"></h1> <h4>Different swarms attacking an ecosystem</h4> <p><img src="https://user-images.githubusercontent.com/73127001/229311606-2f590bfb-71a8-4f71-8ff7-7013de9d7496.jpg" alt="Screenshot3"></p> <h1 align="center"></h1> <h4>Genome editor</h4> <p><img src="https://user-images.githubusercontent.com/73127001/229313813-c9ce70e2-d61f-4745-b64f-ada0b6758901.jpg" alt="Screenshot3b"></p> <h1>🧩 Contributing to the project</h1> <p>Contributions to the project are very welcome. The most convenient way is to communicate via <a href="https://github.com/chrxh/alien/issues">GitHub Issues</a>, <a href="https://github.com/chrxh/alien/pulls">Pull requests</a> or the <a href="https://github.com/chrxh/alien/discussions">Discussion forum</a> depending on the subject. For example, it could be</p> <ul> <li>Providing new content (simulation or genome files)</li> <li>Producing or sharing media files</li> <li>Reporting of bugs, wanted features, questions or feedback via GitHub Issues or in the Discussion forum.</li> <li>Pull requests for bug fixes, code cleanings, optimizations or minor tweaks. If you want to implement new features, refactorings or other major changes, please use the <a href="https://github.com/chrxh/alien/discussions">Discussion forum</a> for consultation and coordination in advance.</li> <li>Extensions or corrections to the <a href="https://alien-project.gitbook.io/docs">alien-docs</a>. It has its <a href="https://github.com/chrxh/alien-docs">own repository</a>.</li> </ul> <p>A short architectural overview of the source code can be found in the <a href="https://alien-project.gitbook.io/docs/under-the-hood">documentation</a>.</p> <h1>💎 Credits and dependencies</h1> <p>ALIEN has been initiated, mainly developed and maintained by <a href="mailto:heinemann.christian@gmail.com">Christian Heinemann</a>. Thanks to all the others who contributed to this repository:</p> <ul> <li><a href="https://github.com/tlemo">tlemo</a></li> <li><a href="https://github.com/mpersano">mpersano</a></li> <li><a href="https://github.com/dguerizec">dguerizec</a></li> <li><a href="https://github.com/willjallen">Will Allen</a></li> <li><a href="https://github.com/TheBarret">TheBarret</a></li> </ul> <p>The following external libraries are used:</p> <ul> <li><a href="https://developer.nvidia.com/cuda-toolkit">CUDA Toolkit</a></li> <li><a href="https://github.com/ocornut/imgui">Dear ImGui</a></li> <li><a href="https://github.com/epezent/implot">ImPlot</a></li> <li><a href="https://github.com/dfranx/ImFileDialog">ImFileDialog</a></li> <li><a href="https://www.boost.org">boost</a></li> <li><a href="https://glad.dav1d.de">Glad</a></li> <li><a href="https://www.glfw.org">GLFW</a></li> <li><a href="https://github.com/nigels-com/glew">glew</a></li> <li><a href="https://github.com/nothings/stb">stb</a></li> <li><a href="https://github.com/USCiLab/cereal">cereal</a></li> <li><a href="https://www.zlib.net">zlib</a></li> <li><a href="https://github.com/mateidavid/zstr">zstr</a></li> <li><a href="https://github.com/openssl/openssl">OpenSSL</a></li> <li><a href="https://github.com/yhirose/cpp-httplib">cpp-httplib</a></li> <li><a href="https://github.com/google/googletest">googletest</a></li> <li><a href="https://vcpkg.io/en/index.html">vcpkg</a></li> <li><a href="https://github.com/GiovanniDicanio/WinReg">WinReg</a></li> <li><a href="https://github.com/CLIUtils/CLI11">CLI11</a></li> </ul> <p>Free icons and icon font:</p> <ul> <li><a href="https://github.com/juliettef/IconFontCppHeaders">IconFontCppHeaders</a></li> <li><a href="https://iconduck.com">Iconduck</a> (Noto Emoji by Google, <a href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License 2.0</a>)</li> <li><a href="https://www.iconfinder.com">Iconfinder</a> (Bogdan Rosu Creative, <a href="https://creativecommons.org/licenses/by/4.0">CC BY 4.0</a>)</li> <li><a href="https://www.flaticon.com/free-icons/people">People icons created by Freepik - Flaticon</a> (<a href="https://media.flaticon.com/license/license.pdf">Flaticon license</a>)</li> </ul> <h1>🧾 License</h1> <p>ALIEN is licensed under the <a href="https://raw.githubusercontent.com/chrxh/alien/develop/LICENSE">BSD 3-Clause</a> license.</p> - \ No newline at end of file diff --git a/c-objdump/daily/index.xml b/c-objdump/daily/index.xml index 87581812de7..e1ccb731dd6 100644 --- a/c-objdump/daily/index.xml +++ b/c-objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub C-ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:36Z + 2024-08-22T01:28:36Z Daily Trending of C-ObjDump in GitHub \ No newline at end of file diff --git a/c/daily/index.xml b/c/daily/index.xml index 94cd2f568a2..d3c64514c88 100644 --- a/c/daily/index.xml +++ b/c/daily/index.xml @@ -1,14 +1,7 @@ GitHub C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:34Z + 2024-08-22T01:28:34Z Daily Trending of C in GitHub - - unbit/uwsgi - 2024-08-21T01:28:34Z - tag:github.com,2024-08-21:/unbit/uwsgi - - <p>uWSGI application server container</p><hr><p>The uWSGI project</p> <p>For official documentation check: <a href="https://uwsgi-docs.readthedocs.io/en/latest/">https://uwsgi-docs.readthedocs.io/en/latest/</a></p> <p>Note: The project is in maintenance mode (only bugfixes and updates for new languages apis)</p> <p>Do not expect quick answers on github issues and/or pull requests (sorry for that) A big thanks to all of the users and contributors since 2009.</p> <p>uWSGI development has been sponsored by:</p> <p><a href="http://unbit.it">http://unbit.it</a> <a href="https://www.pythonanywhere.com/">https://www.pythonanywhere.com/</a> <a href="https://lincolnloop.com/">https://lincolnloop.com/</a> <a href="https://yourlabs.io/oss">https://yourlabs.io/oss</a> <a href="https://fili.com">https://fili.com</a></p> - \ No newline at end of file diff --git a/c2hs-haskell/daily/index.xml b/c2hs-haskell/daily/index.xml index 764826ac82b..fb4bfc5820e 100644 --- a/c2hs-haskell/daily/index.xml +++ b/c2hs-haskell/daily/index.xml @@ -1,7 +1,7 @@ GitHub C2hs Haskell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:37Z + 2024-08-22T01:28:37Z Daily Trending of C2hs Haskell in GitHub \ No newline at end of file diff --git a/cabal-config/daily/index.xml b/cabal-config/daily/index.xml index 5190f1e9887..d8117531150 100644 --- a/cabal-config/daily/index.xml +++ b/cabal-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cabal Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:37Z + 2024-08-22T01:28:37Z Daily Trending of Cabal Config in GitHub \ No newline at end of file diff --git a/cadence/daily/index.xml b/cadence/daily/index.xml index 18787a61f00..52ba4e6477e 100644 --- a/cadence/daily/index.xml +++ b/cadence/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cadence Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:44Z + 2024-08-22T01:28:43Z Daily Trending of Cadence in GitHub \ No newline at end of file diff --git a/cairo/daily/index.xml b/cairo/daily/index.xml index b4b0d9798c8..02d8dc1bba5 100644 --- a/cairo/daily/index.xml +++ b/cairo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cairo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:44Z + 2024-08-22T01:28:44Z Daily Trending of Cairo in GitHub \ No newline at end of file diff --git a/cap'n-proto/daily/index.xml b/cap'n-proto/daily/index.xml index a3f2c47d9e6..c8bb3c56b9d 100644 --- a/cap'n-proto/daily/index.xml +++ b/cap'n-proto/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cap'n Proto Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:45Z + 2024-08-22T01:28:45Z Daily Trending of Cap'n Proto in GitHub \ No newline at end of file diff --git a/cartocss/daily/index.xml b/cartocss/daily/index.xml index 4b4cc398610..d7a59b6fbc7 100644 --- a/cartocss/daily/index.xml +++ b/cartocss/daily/index.xml @@ -1,7 +1,7 @@ GitHub CartoCSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:46Z + 2024-08-22T01:28:45Z Daily Trending of CartoCSS in GitHub \ No newline at end of file diff --git a/ceylon/daily/index.xml b/ceylon/daily/index.xml index 82a5c4a1ba1..dcb5a2e1140 100644 --- a/ceylon/daily/index.xml +++ b/ceylon/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ceylon Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:45Z + 2024-08-22T01:28:45Z Daily Trending of Ceylon in GitHub \ No newline at end of file diff --git a/chapel/daily/index.xml b/chapel/daily/index.xml index cd7fa16a017..ef52af95fe3 100644 --- a/chapel/daily/index.xml +++ b/chapel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Chapel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:47Z + 2024-08-22T01:28:46Z Daily Trending of Chapel in GitHub \ No newline at end of file diff --git a/charity/daily/index.xml b/charity/daily/index.xml index 6ca79067c07..ab88851f591 100644 --- a/charity/daily/index.xml +++ b/charity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Charity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:47Z + 2024-08-22T01:28:46Z Daily Trending of Charity in GitHub \ No newline at end of file diff --git a/chuck/daily/index.xml b/chuck/daily/index.xml index 56d27f5fb6a..42b1f693c2c 100644 --- a/chuck/daily/index.xml +++ b/chuck/daily/index.xml @@ -1,7 +1,7 @@ GitHub ChucK Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:46Z + 2024-08-22T01:28:47Z Daily Trending of ChucK in GitHub \ No newline at end of file diff --git a/cil/daily/index.xml b/cil/daily/index.xml index 57185fc8cb2..036a8f84b94 100644 --- a/cil/daily/index.xml +++ b/cil/daily/index.xml @@ -1,7 +1,7 @@ GitHub CIL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:48Z + 2024-08-22T01:28:47Z Daily Trending of CIL in GitHub \ No newline at end of file diff --git a/cirru/daily/index.xml b/cirru/daily/index.xml index a1e6d0428f0..1523747529f 100644 --- a/cirru/daily/index.xml +++ b/cirru/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cirru Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:48Z + 2024-08-22T01:28:48Z Daily Trending of Cirru in GitHub \ No newline at end of file diff --git a/clarion/daily/index.xml b/clarion/daily/index.xml index 2827b394e69..dbd74f980b9 100644 --- a/clarion/daily/index.xml +++ b/clarion/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clarion Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:48Z + 2024-08-22T01:28:48Z Daily Trending of Clarion in GitHub \ No newline at end of file diff --git a/clarity/daily/index.xml b/clarity/daily/index.xml index 9ada96e0759..e314bf9d938 100644 --- a/clarity/daily/index.xml +++ b/clarity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clarity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:50Z + 2024-08-22T01:28:49Z Daily Trending of Clarity in GitHub \ No newline at end of file diff --git a/classic-asp/daily/index.xml b/classic-asp/daily/index.xml index fae2fcd4f88..204a4eae011 100644 --- a/classic-asp/daily/index.xml +++ b/classic-asp/daily/index.xml @@ -1,7 +1,7 @@ GitHub Classic ASP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:05Z + 2024-08-22T01:28:10Z Daily Trending of Classic ASP in GitHub \ No newline at end of file diff --git a/clean/daily/index.xml b/clean/daily/index.xml index b781e6075d0..8eff27afc58 100644 --- a/clean/daily/index.xml +++ b/clean/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clean Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:51Z + 2024-08-22T01:28:49Z Daily Trending of Clean in GitHub \ No newline at end of file diff --git a/click/daily/index.xml b/click/daily/index.xml index cc9a6346b9f..a761d4807d3 100644 --- a/click/daily/index.xml +++ b/click/daily/index.xml @@ -1,7 +1,7 @@ GitHub Click Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:49Z + 2024-08-22T01:28:50Z Daily Trending of Click in GitHub \ No newline at end of file diff --git a/clips/daily/index.xml b/clips/daily/index.xml index e80003bf4ed..f668405107d 100644 --- a/clips/daily/index.xml +++ b/clips/daily/index.xml @@ -1,7 +1,7 @@ GitHub CLIPS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:51Z + 2024-08-22T01:28:49Z Daily Trending of CLIPS in GitHub \ No newline at end of file diff --git a/clojure/daily/index.xml b/clojure/daily/index.xml index a1020e464dd..ced126d4c02 100644 --- a/clojure/daily/index.xml +++ b/clojure/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clojure Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:53Z + 2024-08-22T01:28:51Z Daily Trending of Clojure in GitHub \ No newline at end of file diff --git a/closure-templates/daily/index.xml b/closure-templates/daily/index.xml index 909df1c8a77..a9b2e88abb0 100644 --- a/closure-templates/daily/index.xml +++ b/closure-templates/daily/index.xml @@ -1,7 +1,7 @@ GitHub Closure Templates Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:52Z + 2024-08-22T01:28:50Z Daily Trending of Closure Templates in GitHub \ No newline at end of file diff --git a/cloud-firestore-security-rules/daily/index.xml b/cloud-firestore-security-rules/daily/index.xml index beded30892a..fb046f61110 100644 --- a/cloud-firestore-security-rules/daily/index.xml +++ b/cloud-firestore-security-rules/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cloud Firestore Security Rules Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:52Z + 2024-08-22T01:28:50Z Daily Trending of Cloud Firestore Security Rules in GitHub \ No newline at end of file diff --git a/cmake/daily/index.xml b/cmake/daily/index.xml index 797b0270998..ecff28f0cba 100644 --- a/cmake/daily/index.xml +++ b/cmake/daily/index.xml @@ -1,7 +1,7 @@ GitHub CMake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:53Z + 2024-08-22T01:28:51Z Daily Trending of CMake in GitHub \ No newline at end of file diff --git a/cobol/daily/index.xml b/cobol/daily/index.xml index b16823802ed..671c55e9ff6 100644 --- a/cobol/daily/index.xml +++ b/cobol/daily/index.xml @@ -1,7 +1,7 @@ GitHub COBOL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:54Z + 2024-08-22T01:28:52Z Daily Trending of COBOL in GitHub \ No newline at end of file diff --git a/codeowners/daily/index.xml b/codeowners/daily/index.xml index 88ded374d8d..3be306c650c 100644 --- a/codeowners/daily/index.xml +++ b/codeowners/daily/index.xml @@ -1,7 +1,7 @@ GitHub CODEOWNERS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:54Z + 2024-08-22T01:28:52Z Daily Trending of CODEOWNERS in GitHub \ No newline at end of file diff --git a/codeql/daily/index.xml b/codeql/daily/index.xml index 9ef375fd7eb..16b7fa4f07b 100644 --- a/codeql/daily/index.xml +++ b/codeql/daily/index.xml @@ -1,7 +1,7 @@ GitHub CodeQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:55Z + 2024-08-22T01:28:53Z Daily Trending of CodeQL in GitHub \ No newline at end of file diff --git a/coffeescript/daily/index.xml b/coffeescript/daily/index.xml index e58a7564679..bb00339763f 100644 --- a/coffeescript/daily/index.xml +++ b/coffeescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub CoffeeScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:54Z + 2024-08-22T01:28:53Z Daily Trending of CoffeeScript in GitHub \ No newline at end of file diff --git a/coldfusion-cfc/daily/index.xml b/coldfusion-cfc/daily/index.xml index 04a289f84da..49b90f65ca0 100644 --- a/coldfusion-cfc/daily/index.xml +++ b/coldfusion-cfc/daily/index.xml @@ -1,7 +1,7 @@ GitHub ColdFusion CFC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:56Z + 2024-08-22T01:28:54Z Daily Trending of ColdFusion CFC in GitHub \ No newline at end of file diff --git a/coldfusion/daily/index.xml b/coldfusion/daily/index.xml index 5ee07669770..8f692fcb2bc 100644 --- a/coldfusion/daily/index.xml +++ b/coldfusion/daily/index.xml @@ -1,7 +1,7 @@ GitHub ColdFusion Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:55Z + 2024-08-22T01:28:54Z Daily Trending of ColdFusion in GitHub \ No newline at end of file diff --git a/collada/daily/index.xml b/collada/daily/index.xml index 8a8cba4b590..14ba5a01ec3 100644 --- a/collada/daily/index.xml +++ b/collada/daily/index.xml @@ -1,7 +1,7 @@ GitHub COLLADA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:56Z + 2024-08-22T01:28:54Z Daily Trending of COLLADA in GitHub \ No newline at end of file diff --git a/common-lisp/daily/index.xml b/common-lisp/daily/index.xml index 0f27d1e55eb..5b1f6d20888 100644 --- a/common-lisp/daily/index.xml +++ b/common-lisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub Common Lisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:57Z + 2024-08-22T01:28:56Z Daily Trending of Common Lisp in GitHub \ No newline at end of file diff --git a/common-workflow-language/daily/index.xml b/common-workflow-language/daily/index.xml index 1fd0ff86b20..6970b1ab835 100644 --- a/common-workflow-language/daily/index.xml +++ b/common-workflow-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Common Workflow Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:58Z + 2024-08-22T01:28:56Z Daily Trending of Common Workflow Language in GitHub \ No newline at end of file diff --git a/component-pascal/daily/index.xml b/component-pascal/daily/index.xml index d820765c515..fb290ae2b05 100644 --- a/component-pascal/daily/index.xml +++ b/component-pascal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Component Pascal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:58Z + 2024-08-22T01:28:57Z Daily Trending of Component Pascal in GitHub \ No newline at end of file diff --git a/conll-u/daily/index.xml b/conll-u/daily/index.xml index 183636538d5..11758571dcb 100644 --- a/conll-u/daily/index.xml +++ b/conll-u/daily/index.xml @@ -1,7 +1,7 @@ GitHub CoNLL-U Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:58Z + 2024-08-22T01:28:57Z Daily Trending of CoNLL-U in GitHub \ No newline at end of file diff --git a/cool/daily/index.xml b/cool/daily/index.xml index a019c47b534..f497026fa0c 100644 --- a/cool/daily/index.xml +++ b/cool/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cool Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:58Z + 2024-08-22T01:28:57Z Daily Trending of Cool in GitHub \ No newline at end of file diff --git a/coq/daily/index.xml b/coq/daily/index.xml index 4e1ee1f8e1e..a282db46768 100644 --- a/coq/daily/index.xml +++ b/coq/daily/index.xml @@ -1,7 +1,7 @@ GitHub Coq Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:00Z + 2024-08-22T01:28:59Z Daily Trending of Coq in GitHub \ No newline at end of file diff --git a/cpp-objdump/daily/index.xml b/cpp-objdump/daily/index.xml index c3c9c776ced..5332ff6bdbc 100644 --- a/cpp-objdump/daily/index.xml +++ b/cpp-objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cpp-ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:00Z + 2024-08-22T01:28:59Z Daily Trending of Cpp-ObjDump in GitHub \ No newline at end of file diff --git a/creole/daily/index.xml b/creole/daily/index.xml index b57b379333c..0610dcad446 100644 --- a/creole/daily/index.xml +++ b/creole/daily/index.xml @@ -1,7 +1,7 @@ GitHub Creole Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:59Z + 2024-08-22T01:28:58Z Daily Trending of Creole in GitHub \ No newline at end of file diff --git a/crystal/daily/index.xml b/crystal/daily/index.xml index 7db2318803a..e04f92eced6 100644 --- a/crystal/daily/index.xml +++ b/crystal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Crystal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:02Z + 2024-08-22T01:29:01Z Daily Trending of Crystal in GitHub \ No newline at end of file diff --git a/cson/daily/index.xml b/cson/daily/index.xml index b13ec3f6e8e..3bac301fee5 100644 --- a/cson/daily/index.xml +++ b/cson/daily/index.xml @@ -1,7 +1,7 @@ GitHub CSON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:01Z + 2024-08-22T01:29:00Z Daily Trending of CSON in GitHub \ No newline at end of file diff --git a/csound-document/daily/index.xml b/csound-document/daily/index.xml index 26dd6c6e719..148a6ce380f 100644 --- a/csound-document/daily/index.xml +++ b/csound-document/daily/index.xml @@ -1,7 +1,7 @@ GitHub Csound Document Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:01Z + 2024-08-22T01:29:00Z Daily Trending of Csound Document in GitHub \ No newline at end of file diff --git a/csound-score/daily/index.xml b/csound-score/daily/index.xml index f4bfcab0442..b165f1d4f70 100644 --- a/csound-score/daily/index.xml +++ b/csound-score/daily/index.xml @@ -1,7 +1,7 @@ GitHub Csound Score Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:02Z + 2024-08-22T01:29:02Z Daily Trending of Csound Score in GitHub \ No newline at end of file diff --git a/csound/daily/index.xml b/csound/daily/index.xml index 4e8b3ed07c1..abb7dd917f0 100644 --- a/csound/daily/index.xml +++ b/csound/daily/index.xml @@ -1,7 +1,7 @@ GitHub Csound Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:01Z + 2024-08-22T01:29:00Z Daily Trending of Csound in GitHub \ No newline at end of file diff --git a/css/daily/index.xml b/css/daily/index.xml index 0ed958d99f5..29bb1ea9484 100644 --- a/css/daily/index.xml +++ b/css/daily/index.xml @@ -1,7 +1,7 @@ GitHub CSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:04Z + 2024-08-22T01:29:03Z Daily Trending of CSS in GitHub \ No newline at end of file diff --git a/csv/daily/index.xml b/csv/daily/index.xml index fb5acc6eddb..dbcdf5d0633 100644 --- a/csv/daily/index.xml +++ b/csv/daily/index.xml @@ -1,7 +1,7 @@ GitHub CSV Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:03Z + 2024-08-22T01:29:01Z Daily Trending of CSV in GitHub \ No newline at end of file diff --git a/cuda/daily/index.xml b/cuda/daily/index.xml index 57986ef1081..978616c2a7b 100644 --- a/cuda/daily/index.xml +++ b/cuda/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cuda Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:04Z + 2024-08-22T01:29:03Z Daily Trending of Cuda in GitHub \ No newline at end of file diff --git a/cue/daily/index.xml b/cue/daily/index.xml index 7bb39f06ab7..f6dbf4bc8b8 100644 --- a/cue/daily/index.xml +++ b/cue/daily/index.xml @@ -1,7 +1,7 @@ GitHub CUE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:06Z + 2024-08-22T01:29:06Z Daily Trending of CUE in GitHub \ No newline at end of file diff --git a/curl-config/daily/index.xml b/curl-config/daily/index.xml index 63fe18e98c9..4f3fb3aabb1 100644 --- a/curl-config/daily/index.xml +++ b/curl-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub cURL Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:06Z + 2024-08-22T01:29:05Z Daily Trending of cURL Config in GitHub \ No newline at end of file diff --git a/curry/daily/index.xml b/curry/daily/index.xml index 52ade35bd6e..6131345dd8c 100644 --- a/curry/daily/index.xml +++ b/curry/daily/index.xml @@ -1,7 +1,7 @@ GitHub Curry Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:05Z + 2024-08-22T01:29:05Z Daily Trending of Curry in GitHub \ No newline at end of file diff --git a/cweb/daily/index.xml b/cweb/daily/index.xml index 974c1e2bd74..71fc7c710f3 100644 --- a/cweb/daily/index.xml +++ b/cweb/daily/index.xml @@ -1,7 +1,7 @@ GitHub CWeb Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:07Z + 2024-08-22T01:29:06Z Daily Trending of CWeb in GitHub \ No newline at end of file diff --git a/cycript/daily/index.xml b/cycript/daily/index.xml index 037870c5b7c..5f856be320d 100644 --- a/cycript/daily/index.xml +++ b/cycript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cycript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:07Z + 2024-08-22T01:29:07Z Daily Trending of Cycript in GitHub \ No newline at end of file diff --git a/cython/daily/index.xml b/cython/daily/index.xml index 5df8f49ee82..b754166accc 100644 --- a/cython/daily/index.xml +++ b/cython/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cython Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:08Z + 2024-08-22T01:29:08Z Daily Trending of Cython in GitHub \ No newline at end of file diff --git a/d-objdump/daily/index.xml b/d-objdump/daily/index.xml index 7aa7b27a38e..e664f3af095 100644 --- a/d-objdump/daily/index.xml +++ b/d-objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub D-ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:09Z + 2024-08-22T01:29:09Z Daily Trending of D-ObjDump in GitHub \ No newline at end of file diff --git a/d/daily/index.xml b/d/daily/index.xml index 67fed509bf3..8c4293eea1f 100644 --- a/d/daily/index.xml +++ b/d/daily/index.xml @@ -1,7 +1,7 @@ GitHub D Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:10Z + 2024-08-22T01:29:10Z Daily Trending of D in GitHub \ No newline at end of file diff --git a/dafny/daily/index.xml b/dafny/daily/index.xml index 6243f7f8bbe..aa21b5b1420 100644 --- a/dafny/daily/index.xml +++ b/dafny/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dafny Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:09Z + 2024-08-22T01:29:09Z Daily Trending of Dafny in GitHub \ No newline at end of file diff --git a/darcs-patch/daily/index.xml b/darcs-patch/daily/index.xml index afc236434f0..1471c6e6ff5 100644 --- a/darcs-patch/daily/index.xml +++ b/darcs-patch/daily/index.xml @@ -1,7 +1,7 @@ GitHub Darcs Patch Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:10Z + 2024-08-22T01:29:11Z Daily Trending of Darcs Patch in GitHub \ No newline at end of file diff --git a/dart/daily/index.xml b/dart/daily/index.xml index 5c7ba7254e2..d17b47d80f3 100644 --- a/dart/daily/index.xml +++ b/dart/daily/index.xml @@ -1,14 +1,14 @@ GitHub Dart Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:12Z + 2024-08-22T01:29:13Z Daily Trending of Dart in GitHub - chipweinberger/flutter_blue_plus - 2024-08-21T01:29:12Z - tag:github.com,2024-08-21:/chipweinberger/flutter_blue_plus - - <p>Flutter plugin for connecting and communicationg with Bluetooth Low Energy devices, on Android and iOS</p><hr><p><a href="https://pub.dartlang.org/packages/flutter_blue_plus"><img src="https://img.shields.io/pub/v/flutter_blue_plus.svg?sanitize=true" alt="pub package"></a> <a href="https://discord.gg/Yk5Efra"><img src="https://img.shields.io/discord/634853295160033301.svg?style=flat-square&amp;colorB=758ED3" alt="Chat"></a></p> <br> <p align="center"> <img alt="FlutterBlue" src="https://github.com/boskokg/flutter_blue_plus/raw/master/site/flutterblueplus.png?raw=true"> </p> <br> <br> <p><strong>Note: this plugin is continuous work from <a href="https://github.com/pauldemarco/flutter_blue">FlutterBlue</a>.</strong></p> <p>Migrating from <a href="https://github.com/pauldemarco/flutter_blue">FlutterBlue</a>? See <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/MIGRATION.md">Migration Guide</a></p> <h2>Contents</h2> <ul> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#introduction">Introduction</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#usage">Usage</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#getting-started">Getting Started</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#using-ble-in-app-background">Using Ble in App Background</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#reference">Reference</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#debugging">Debugging</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#mocking">Mocking</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#common-problems">Common Problems</a></li> </ul> <h2>Introduction</h2> <p>FlutterBluePlus is a Bluetooth Low Energy plugin for <a href="https://flutter.dev">Flutter</a>.</p> <p>It supports BLE Central Role only (most common).</p> <p>If you need BLE Peripheral Role, you should check out <a href="https://pub.dev/packages/flutter_ble_peripheral">FlutterBlePeripheral</a>.</p> <h2>Tutorial</h2> <p>If you are new to Bluetooth, you should start by reading BLE tutorials.</p> <ul> <li><a href="https://novelbits.io/bluetooth-low-energy-ble-complete-guide/">Novel Bits BLE Tutorial</a></li> <li><a href="https://www.allaboutcircuits.com/technical-articles/exploring-the-basics-of-bluetooth-low-energy-a-beginners-guide-to-ble/">All About Circuits BLE Tutorial</a></li> <li><a href="https://embetronicx.com/tutorials/tech_devices/bluetooth-low-energy-ble-introduction-part-1/">Embetronicx BLE Tutorial</a></li> </ul> <h2>❗ Bluetooth Classic is not supported ❗</h2> <p>i.e. <strong>Arduino HC-05 &amp; HC-06,</strong> speakers, headphones, mice, keyboards, gamepads, and more are <strong>not</strong> supported. These all use Bluetooth Classic.</p> <p>Also, iBeacons are <strong><em>not</em></strong> supported on iOS. Apple requires you to use CoreLocation.</p> <h2>Cross-Platform Bluetooth Low Energy</h2> <p>FlutterBluePlus supports nearly every feature on all supported platforms: iOS, macOS, Android.</p> <p>FlutterBluePlus was written to be simple, robust, and easy to understand.</p> <h2>No Dependencies</h2> <p>FlutterBluePlus has zero dependencies besides Flutter, Android, iOS, and macOS themselves.</p> <p>This makes FlutterBluePlus very stable, and easy to maintain.</p> <h2>Other BLE Libraries</h2> <p>These other libraries are worth considering. They support all platforms, but fewer features.</p> <ul> <li><a href="https://pub.dev/packages/bluetooth_low_energy">bluetooth_low_energy</a></li> <li><a href="https://pub.dev/packages/universal_ble">universal_ble</a></li> <li><a href="https://pub.dev/packages/quick_blue">quick_blue</a></li> </ul> <h2>⭐ Stars ⭐</h2> <p>Please star this repo &amp; on <a href="https://pub.dev/packages/flutter_blue_plus">pub.dev</a>. We all benefit from having a larger community.</p> <h2>Discord 💬</h2> <p><a href="https://discord.gg/Yk5Efra"><img src="https://img.shields.io/discord/634853295160033301.svg?style=flat-square&amp;colorB=758ED3" alt="Chat"></a> There is a community Discord server. (<a href="https://discord.gg/Yk5Efra">Link</a>)</p> <h2>Example</h2> <p>FlutterBluePlus has a beautiful example app, useful to debug issues.</p> <pre><code>cd ./example flutter run </code></pre> <p align="center"> <img alt="FlutterBlue" src="https://github.com/boskokg/flutter_blue_plus/raw/master/site/example.png?raw=true"> </p> <h2>Usage</h2> <h3>🔥 Error Handling 🔥</h3> <p>Flutter Blue Plus takes error handling seriously.</p> <p>Every error returned by the native platform is checked and thrown as an exception where appropriate. See <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#reference">Reference</a> for a list of throwable functions.</p> <p><strong>Streams:</strong> Streams returned by FlutterBluePlus never emit any errors and never close. There's no need to handle <code>onError</code> or <code>onDone</code> for <code>stream.listen(...)</code>. The one exception is <code>FlutterBluePlus.scanResults</code>, which you should handle <code>onError</code>.</p> <hr> <h3>Set Log Level</h3> <pre><code class="language-dart">// if your terminal doesn't support color you'll see annoying logs like `\x1B[1;35m` FlutterBluePlus.setLogLevel(LogLevel.verbose, color:false) </code></pre> <p>Setting <code>LogLevel.verbose</code> shows <em>all</em> data in and out.</p> <p>⚫ = function name</p> <p>🟣 = args to platform</p> <p>🟡 = data from platform</p> <img width="600" alt="Screenshot 2023-07-27 at 4 53 08 AM" src="https://github.com/boskokg/flutter_blue_plus/assets/1863934/ee37d702-2752-4402-bf26-fc661728c1c3"> <h3>Bluetooth On &amp; Off</h3> <p><strong>Note:</strong> On iOS, a "<em>This app would like to use Bluetooth</em>" system dialogue appears on first call to any FlutterBluePlus method.</p> <pre><code class="language-dart">// first, check if bluetooth is supported by your hardware // Note: The platform is initialized on the first call to any FlutterBluePlus method. if (await FlutterBluePlus.isSupported == false) { print("Bluetooth not supported by this device"); return; } // handle bluetooth on &amp; off // note: for iOS the initial state is typically BluetoothAdapterState.unknown // note: if you have permissions issues you will get stuck at BluetoothAdapterState.unauthorized var subscription = FlutterBluePlus.adapterState.listen((BluetoothAdapterState state) { print(state); if (state == BluetoothAdapterState.on) { // usually start scanning, connecting, etc } else { // show an error to the user, etc } }); // turn on bluetooth ourself if we can // for iOS, the user controls bluetooth enable/disable if (Platform.isAndroid) { await FlutterBluePlus.turnOn(); } // cancel to prevent duplicate listeners subscription.cancel(); </code></pre> <h3>Scan for devices</h3> <p>If your device is not found, see <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#common-problems">Common Problems</a>.</p> <p><strong>Note:</strong> It is recommended to set scan filters to reduce main thread &amp; platform channel usage.</p> <pre><code class="language-dart">// listen to scan results // Note: `onScanResults` only returns live scan results, i.e. during scanning. Use // `scanResults` if you want live scan results *or* the results from a previous scan. var subscription = FlutterBluePlus.onScanResults.listen((results) { if (results.isNotEmpty) { ScanResult r = results.last; // the most recently found device print('${r.device.remoteId}: "${r.advertisementData.advName}" found!'); } }, onError: (e) =&gt; print(e), ); // cleanup: cancel subscription when scanning stops FlutterBluePlus.cancelWhenScanComplete(subscription); // Wait for Bluetooth enabled &amp; permission granted // In your real app you should use `FlutterBluePlus.adapterState.listen` to handle all states await FlutterBluePlus.adapterState.where((val) =&gt; val == BluetoothAdapterState.on).first; // Start scanning w/ timeout // Optional: use `stopScan()` as an alternative to timeout await FlutterBluePlus.startScan( withServices:[Guid("180D")], // match any of the specified services withNames:["Bluno"], // *or* any of the specified names timeout: Duration(seconds:15)); // wait for scanning to stop await FlutterBluePlus.isScanning.where((val) =&gt; val == false).first; </code></pre> <h3>Connect to a device</h3> <pre><code class="language-dart">// listen for disconnection var subscription = device.connectionState.listen((BluetoothConnectionState state) async { if (state == BluetoothConnectionState.disconnected) { // 1. typically, start a periodic timer that tries to // reconnect, or just call connect() again right now // 2. you must always re-discover services after disconnection! print("${device.disconnectReason?.code} ${device.disconnectReason?.description}"); } }); // cleanup: cancel subscription when disconnected // - [delayed] This option is only meant for `connectionState` subscriptions. // When `true`, we cancel after a small delay. This ensures the `connectionState` // listener receives the `disconnected` event. // - [next] if true, the the stream will be canceled only on the *next* disconnection, // not the current disconnection. This is useful if you setup your subscriptions // before you connect. device.cancelWhenDisconnected(subscription, delayed:true, next:true); // Connect to the device await device.connect(); // Disconnect from device await device.disconnect(); // cancel to prevent duplicate listeners subscription.cancel(); </code></pre> <h3>Auto Connect</h3> <p>Connects whenever your device is found.</p> <pre><code class="language-dart">// enable auto connect // - note: autoConnect is incompatible with mtu argument, so you must call requestMtu yourself await device.connect(autoConnect:true, mtu:null) // wait until connection // - when using autoConnect, connect() always returns immediately, so we must // explicity listen to `device.connectionState` to know when connection occurs await device.connectionState.where((val) =&gt; val == BluetoothConnectionState.connected).first; // disable auto connect await device.disconnect() </code></pre> <h3>Save Device</h3> <p>To save a device between app restarts, just write the <code>remoteId</code> to a file.</p> <p>Now you can connect without needing to scan again, like so:</p> <pre><code class="language-dart">final String remoteId = await File('/remoteId.txt').readAsString(); var device = BluetoothDevice.fromId(remoteId); // AutoConnect is convenient because it does not "time out" // even if the device is not available / turned off. await device.connect(autoConnect: true); </code></pre> <h3>MTU</h3> <p>On Android, we request an mtu of 512 by default during connection (see: <code>connect</code> function arguments).</p> <p>On iOS &amp; macOS, the mtu is negotiated automatically, typically 135 to 255.</p> <pre><code class="language-dart">final subscription = device.mtu.listen((int mtu) { // iOS: initial value is always 23, but iOS will quickly negotiate a higher value print("mtu $mtu"); }); // cleanup: cancel subscription when disconnected device.cancelWhenDisconnected(subscription); // You can also manually change the mtu yourself. if (Platform.isAndroid) { await device.requestMtu(512); } </code></pre> <h3>Discover services</h3> <pre><code class="language-dart">// Note: You must call discoverServices after every re-connection! List&lt;BluetoothService&gt; services = await device.discoverServices(); services.forEach((service) { // do something with service }); </code></pre> <h3>Read Characteristics</h3> <pre><code class="language-dart">// Reads all characteristics var characteristics = service.characteristics; for(BluetoothCharacteristic c in characteristics) { if (c.properties.read) { List&lt;int&gt; value = await c.read(); print(value); } } </code></pre> <h3>Write Characteristic</h3> <pre><code class="language-dart">// Writes to a characteristic await c.write([0x12, 0x34]); </code></pre> <p><strong>allowLongWrite</strong>: To write large characteristics (up to 512 bytes) regardless of mtu, use <code>allowLongWrite</code>:</p> <pre><code class="language-dart">/// allowLongWrite should be used with caution. /// 1. it can only be used *with* response to avoid data loss /// 2. the peripheral device must support the 'long write' ble protocol. /// 3. Interrupted transfers can leave the characteristic in a partially written state /// 4. If the mtu is small, it is very very slow. await c.write(data, allowLongWrite:true); </code></pre> <p><strong>splitWrite</strong>: To write lots of data (unlimited), you can define the <code>splitWrite</code> function.</p> <pre><code class="language-dart">import 'dart:math'; // split write should be used with caution. // 1. due to splitting, `characteristic.read()` will return partial data. // 2. it can only be used *with* response to avoid data loss // 3. The characteristic must be designed to support split data extension splitWrite on BluetoothCharacteristic { Future&lt;void&gt; splitWrite(List&lt;int&gt; value, {int timeout = 15}) async { int chunk = device.mtuNow - 3; // 3 bytes ble overhead for (int i = 0; i &lt; value.length; i += chunk) { List&lt;int&gt; subvalue = value.sublist(i, min(i + chunk, value.length)); await write(subvalue, withoutResponse:false, timeout: timeout); } } } </code></pre> <h3>Subscribe to a characteristic</h3> <p>If <code>onValueReceived</code> is never called, see <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#common-problems">Common Problems</a> in the README.</p> <pre><code class="language-dart">final subscription = characteristic.onValueReceived.listen((value) { // onValueReceived is updated: // - anytime read() is called // - anytime a notification arrives (if subscribed) }); // cleanup: cancel subscription when disconnected device.cancelWhenDisconnected(subscription); // subscribe // Note: If a characteristic supports both **notifications** and **indications**, // it will default to **notifications**. This matches how CoreBluetooth works on iOS. await characteristic.setNotifyValue(true); </code></pre> <h3>Last Value Stream</h3> <p><code>lastValueStream</code> is an alternative to <code>onValueReceived</code>. It emits a value any time the characteristic changes, <strong>including writes.</strong></p> <p>It is very convenient for simple characteristics that support both WRITE and READ (and/or NOTIFY). <strong>e.g.</strong> a "light switch toggle" characteristic.</p> <pre><code class="language-dart">final subscription = characteristic.lastValueStream.listen((value) { // lastValueStream` is updated: // - anytime read() is called // - anytime write() is called // - anytime a notification arrives (if subscribed) // - also when first listened to, it re-emits the last value for convenience. }); // cleanup: cancel subscription when disconnected device.cancelWhenDisconnected(subscription); // enable notifications await characteristic.setNotifyValue(true); </code></pre> <h3>Read and write descriptors</h3> <pre><code class="language-dart">// Reads all descriptors var descriptors = characteristic.descriptors; for(BluetoothDescriptor d in descriptors) { List&lt;int&gt; value = await d.read(); print(value); } // Writes to a descriptor await d.write([0x12, 0x34]) </code></pre> <h3>Services Changed Characteristic</h3> <p>FlutterBluePlus automatically listens to the Services Changed Characteristic (0x2A05)</p> <p>In FlutterBluePlus, we call it <code>onServicesReset</code> because you must re-discover services.</p> <pre><code class="language-dart">// - uses the GAP Services Changed characteristic (0x2A05) // - you must call discoverServices() again device.onServicesReset.listen(() async { print("Services Reset"); await device.discoverServices(); }); </code></pre> <h3>Get Connected Devices</h3> <p>Get devices currently connected to your app.</p> <pre><code class="language-dart">List&lt;BluetoothDevice&gt; devs = FlutterBluePlus.connectedDevices; for (var d in devs) { print(d); } </code></pre> <h3>Get System Devices</h3> <p>Get devices connected to the system by <em>any</em> app.</p> <p><strong>Note:</strong> you must connect <em>your app</em> to them before you can communicate with them.</p> <pre><code class="language-dart">List&lt;BluetoothDevice&gt; devs = await FlutterBluePlus.systemDevices; for (var d in devs) { await d.connect(); // Must connect *our* app to the device await d.discoverServices(); } </code></pre> <h3>Create Bond (Android Only)</h3> <p><strong>Note:</strong> calling this is usually not necessary!! The platform will do it automatically.</p> <p>However, you can force the popup to show sooner.</p> <pre><code class="language-dart">final bsSubscription = device.bondState.listen((value) { print("$value prev:{$device.prevBondState}"); }); // cleanup: cancel subscription when disconnected device.cancelWhenDisconnected(bsSubscription); // Force the bonding popup to show now (Android Only) await device.createBond(); // remove bond await device.removeBond(); </code></pre> <h3>Events API</h3> <p>Access streams from all devices simultaneously.</p> <p>There are streams for:</p> <ul> <li>events.onConnectionStateChanged</li> <li>events.onMtuChanged</li> <li>events.onReadRssi</li> <li>events.onServicesReset</li> <li>events.onDiscoveredServices</li> <li>events.onCharacteristicReceived</li> <li>events.onCharacteristicWritten</li> <li>events.onDescriptorRead</li> <li>events.onDescriptorWritten</li> <li>events.onNameChanged (iOS Only)</li> <li>events.onBondStateChanged (Android Only)</li> </ul> <pre><code class="language-dart">// listen to *any device* connection state changes FlutterBluePlus.events.onConnectionStateChanged.listen((event)) { print('${event.device} ${event.connectionState}'); } </code></pre> <h2>Mocking</h2> <p>To mock <code>FlutterBluePlus</code> for development, refer to the <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/MOCKING.md">Mocking Guide</a>.</p> <h2>Getting Started</h2> <h3>Change the minSdkVersion for Android</h3> <p>flutter_blue_plus is compatible only from version 21 of Android SDK so you should change this in <strong>android/app/build.gradle</strong>:</p> <pre><code class="language-dart">android { defaultConfig { minSdkVersion: 21 </code></pre> <h3>Add permissions for Android (No Location)</h3> <p>In the <strong>android/app/src/main/AndroidManifest.xml</strong> add:</p> <pre><code class="language-xml">&lt;!-- Tell Google Play Store that your app uses Bluetooth LE Set android:required="true" if bluetooth is necessary --&gt; &lt;uses-feature android:name="android.hardware.bluetooth_le" android:required="false" /&gt; &lt;!-- New Bluetooth permissions in Android 12 https://developer.android.com/about/versions/12/features/bluetooth-permissions --&gt; &lt;uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" /&gt; &lt;uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /&gt; &lt;!-- legacy for Android 11 or lower --&gt; &lt;uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /&gt; &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /&gt; &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30"/&gt; &lt;!-- legacy for Android 9 or lower --&gt; &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28" /&gt; </code></pre> <h3>Add permissions for Android (With Fine Location)</h3> <p>If you want to use Bluetooth to determine location, or support iBeacons.</p> <p>In the <strong>android/app/src/main/AndroidManifest.xml</strong> add:</p> <pre><code class="language-xml">&lt;!-- Tell Google Play Store that your app uses Bluetooth LE Set android:required="true" if bluetooth is necessary --&gt; &lt;uses-feature android:name="android.hardware.bluetooth_le" android:required="false" /&gt; &lt;!-- New Bluetooth permissions in Android 12 https://developer.android.com/about/versions/12/features/bluetooth-permissions --&gt; &lt;uses-permission android:name="android.permission.BLUETOOTH_SCAN"/&gt; &lt;uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /&gt; &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt; &lt;!-- legacy for Android 11 or lower --&gt; &lt;uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /&gt; &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /&gt; &lt;!-- legacy for Android 9 or lower --&gt; &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28" /&gt; </code></pre> <p>And set <strong>androidUsesFineLocation</strong> when scanning:</p> <pre><code class="language-dart">// Start scanning flutterBlue.startScan(timeout: Duration(seconds: 4), androidUsesFineLocation: true); </code></pre> <h3>Android Proguard</h3> <p>Add the following line in your <code>project/android/app/proguard-rules.pro</code> file:</p> <pre><code>-keep class com.lib.flutter_blue_plus.* { *; } </code></pre> <p>to avoid seeing the following kind errors in your <code>release</code> builds:</p> <pre><code>PlatformException(startScan, Field androidScanMode_ for m0.e0 not found. Known fields are [private int m0.e0.q, private b3.b0$i m0.e0.r, private boolean m0.e0.s, private static final m0.e0 m0.e0.t, private static volatile b3.a1 m0.e0.u], java.lang.RuntimeException: Field androidScanMode_ for m0.e0 not found </code></pre> <h3>Add permissions for iOS</h3> <p>In the <strong>ios/Runner/Info.plist</strong> let’s add:</p> <pre><code class="language-dart">&lt;dict&gt; &lt;key&gt;NSBluetoothAlwaysUsageDescription&lt;/key&gt; &lt;string&gt;This app needs Bluetooth to function&lt;/string&gt; </code></pre> <p>For location permissions on iOS see more at: <a href="https://developer.apple.com/documentation/corelocation/requesting_authorization_for_location_services">https://developer.apple.com/documentation/corelocation/requesting_authorization_for_location_services</a></p> <h3>Add permissions for macOS</h3> <p>Make sure you have granted access to the Bluetooth hardware:</p> <p><code>Xcode -&gt; Runners -&gt; Targets -&gt; Runner-&gt; Signing &amp; Capabilities -&gt; App Sandbox -&gt; Hardware -&gt; Enable Bluetooth</code></p> <img width="528" alt="Screenshot 2023-12-11 at 10 32 04 AM" src="https://github.com/boskokg/flutter_blue_plus/assets/1863934/554079ef-4627-4dfc-97e3-1f07f84a0f3c"> <h2>Using Ble in App Background</h2> <p><strong>This is an advanced use case</strong>. FlutterBluePlus does not support everything. You may have to fork it. PRs are welcome.</p> <h3>iOS</h3> <p>Documentation: <a href="https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html">https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html</a></p> <p>Add the following to your <code>Info.plist</code></p> <pre><code>&lt;key&gt;UIBackgroundModes&lt;/key&gt; &lt;array&gt; &lt;string&gt;bluetooth-central&lt;/string&gt; &lt;/array&gt; </code></pre> <p>When this key-value pair is included in the app’s Info.plist file, the system wakes up your app to process ble <code>read</code>, <code>write</code>, and <code>subscription</code> events.</p> <p>You may also have to use <a href="https://pub.dev/packages/workmanager">https://pub.dev/packages/workmanager</a></p> <p><strong>Note</strong>: Upon being woken up, an app has around 10 seconds to complete a task. Apps that spend too much time executing in the background can be throttled back by the system or killed.</p> <h3>Android</h3> <p>You can try using <a href="https://pub.dev/packages/flutter_foreground_task">https://pub.dev/packages/flutter_foreground_task</a> or possibly <a href="https://pub.dev/packages/workmanager">https://pub.dev/packages/workmanager</a></p> <h2>Reference</h2> <p>🌀 = Stream ⚡ = synchronous</p> <h3>FlutterBluePlus API</h3> <table> <thead> <tr> <th align="left"></th> <th align="center">Android</th> <th align="center">iOS</th> <th align="center">Throws</th> <th align="left">Description</th> </tr> </thead> <tbody> <tr> <td align="left">setLogLevel</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Configure plugin log level</td> </tr> <tr> <td align="left">setOptions</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Set configurable bluetooth options</td> </tr> <tr> <td align="left">isSupported</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Checks whether the device supports Bluetooth</td> </tr> <tr> <td align="left">turnOn</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"><span>🔥</span></td> <td align="left">Turns on the bluetooth adapter</td> </tr> <tr> <td align="left">adapterStateNow ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Current state of the bluetooth adapter</td> </tr> <tr> <td align="left">adapterState 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of on &amp; off states of the bluetooth adapter</td> </tr> <tr> <td align="left">startScan</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Starts a scan for Ble devices</td> </tr> <tr> <td align="left">stopScan</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Stop an existing scan for Ble devices</td> </tr> <tr> <td align="left">onScanResults 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of live scan results</td> </tr> <tr> <td align="left">scanResults 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of live scan results or previous results</td> </tr> <tr> <td align="left">lastScanResults ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The most recent scan results</td> </tr> <tr> <td align="left">isScanning 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of current scanning state</td> </tr> <tr> <td align="left">isScanningNow ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Is a scan currently running?</td> </tr> <tr> <td align="left">connectedDevices ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">List of devices connected to <em>your app</em></td> </tr> <tr> <td align="left">systemDevices</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">List of devices connected to the system, even by other apps</td> </tr> <tr> <td align="left">getPhySupport</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"><span>🔥</span></td> <td align="left">Get supported bluetooth phy codings</td> </tr> </tbody> </table> <h3>FlutterBluePlus Events API</h3> <table> <thead> <tr> <th align="left"></th> <th align="center">Android</th> <th align="center">iOS</th> <th align="center">Throws</th> <th align="left">Description</th> </tr> </thead> <tbody> <tr> <td align="left">events.onConnectionStateChanged 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of connection changes of <em>all devices</em></td> </tr> <tr> <td align="left">events.onMtuChanged 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of mtu changes of <em>all devices</em></td> </tr> <tr> <td align="left">events.onReadRssi 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of rssi reads of <em>all devices</em></td> </tr> <tr> <td align="left">events.onServicesReset 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of services resets of <em>all devices</em></td> </tr> <tr> <td align="left">events.onDiscoveredServices 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of services discovered of <em>all devices</em></td> </tr> <tr> <td align="left">events.onCharacteristicReceived 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of characteristic value reads of <em>all devices</em></td> </tr> <tr> <td align="left">events.onCharacteristicWritten 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of characteristic value writes of <em>all devices</em></td> </tr> <tr> <td align="left">events.onDescriptorRead 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of descriptor value reads of <em>all devices</em></td> </tr> <tr> <td align="left">events.onDescriptorWritten 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of descriptor value writes of <em>all devices</em></td> </tr> <tr> <td align="left">events.onBondStateChanged 🌀</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"></td> <td align="left">Stream of android bond state changes of <em>all devices</em></td> </tr> <tr> <td align="left">events.onNameChanged 🌀</td> <td align="center"></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of iOS name changes of <em>all devices</em></td> </tr> </tbody> </table> <h3>BluetoothDevice API</h3> <table> <thead> <tr> <th align="left"></th> <th align="center">Android</th> <th align="center">iOS</th> <th align="center">Throws</th> <th align="left">Description</th> </tr> </thead> <tbody> <tr> <td align="left">platformName ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The platform preferred name of the device</td> </tr> <tr> <td align="left">advName ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The advertised name of the device found during scanning</td> </tr> <tr> <td align="left">connect</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Establishes a connection to the device</td> </tr> <tr> <td align="left">disconnect</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Cancels an active or pending connection to the device</td> </tr> <tr> <td align="left">isConnected ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Is this device currently connected to <em>your app</em>?</td> </tr> <tr> <td align="left">isDisonnected ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Is this device currently disconnected from <em>your app</em>?</td> </tr> <tr> <td align="left">connectionState 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of connection changes for the Bluetooth Device</td> </tr> <tr> <td align="left">discoverServices</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Discover services</td> </tr> <tr> <td align="left">servicesList ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The current list of available services</td> </tr> <tr> <td align="left">onServicesReset 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The services changed &amp; must be rediscovered</td> </tr> <tr> <td align="left">mtu 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of current mtu value + changes</td> </tr> <tr> <td align="left">mtuNow ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The current mtu value</td> </tr> <tr> <td align="left">readRssi</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Read RSSI from a connected device</td> </tr> <tr> <td align="left">requestMtu</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"><span>🔥</span></td> <td align="left">Request to change the MTU for the device</td> </tr> <tr> <td align="left">requestConnectionPriority</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"><span>🔥</span></td> <td align="left">Request to update a high priority, low latency connection</td> </tr> <tr> <td align="left">bondState 🌀</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"></td> <td align="left">Stream of device bond state. Can be useful on Android</td> </tr> <tr> <td align="left">createBond</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"><span>🔥</span></td> <td align="left">Force a system pairing dialogue to show, if needed</td> </tr> <tr> <td align="left">removeBond</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"><span>🔥</span></td> <td align="left">Remove Bluetooth Bond of device</td> </tr> <tr> <td align="left">setPreferredPhy</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"><span>🔥</span></td> <td align="left">Set preferred RX and TX phy for connection and phy options</td> </tr> <tr> <td align="left">clearGattCache</td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="center"><span>🔥</span></td> <td align="left">Clear android cache of service discovery results</td> </tr> </tbody> </table> <h3>BluetoothCharacteristic API</h3> <table> <thead> <tr> <th align="left"></th> <th align="center">Android</th> <th align="center">iOS</th> <th align="center">Throws</th> <th align="left">Description</th> </tr> </thead> <tbody> <tr> <td align="left">uuid ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The uuid of characteristic</td> </tr> <tr> <td align="left">read</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Retrieves the value of the characteristic</td> </tr> <tr> <td align="left">write</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Writes the value of the characteristic</td> </tr> <tr> <td align="left">setNotifyValue</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Sets notifications or indications on the characteristic</td> </tr> <tr> <td align="left">isNotifying ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Are notifications or indications currently enabled</td> </tr> <tr> <td align="left">onValueReceived 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of characteristic value updates received from the device</td> </tr> <tr> <td align="left">lastValue ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The most recent value of the characteristic</td> </tr> <tr> <td align="left">lastValueStream 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of onValueReceived + writes</td> </tr> </tbody> </table> <h3>BluetoothDescriptor API</h3> <table> <thead> <tr> <th align="left"></th> <th align="center">Android</th> <th align="center">iOS</th> <th align="center">Throws</th> <th align="left">Description</th> </tr> </thead> <tbody> <tr> <td align="left">uuid ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The uuid of descriptor</td> </tr> <tr> <td align="left">read</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Retrieves the value of the descriptor</td> </tr> <tr> <td align="left">write</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"><span>🔥</span></td> <td align="left">Writes the value of the descriptor</td> </tr> <tr> <td align="left">onValueReceived 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of descriptor value reads &amp; writes</td> </tr> <tr> <td align="left">lastValue ⚡</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">The most recent value of the descriptor</td> </tr> <tr> <td align="left">lastValueStream 🌀</td> <td align="center"><span>✅</span></td> <td align="center"><span>✅</span></td> <td align="center"></td> <td align="left">Stream of onValueReceived + writes</td> </tr> </tbody> </table> <h2>Debugging</h2> <p>The easiest way to debug issues in FlutterBluePlus is to make your own local copy.</p> <pre><code>cd /user/downloads git clone https://github.com/boskokg/flutter_blue_plus.git </code></pre> <p>then in <code>pubspec.yaml</code> add the repo by path:</p> <pre><code> flutter_blue_plus: path: /user/downloads/flutter_blue_plus </code></pre> <p>Now you can edit the FlutterBluePlus code yourself.</p> <h2>Common Problems</h2> <p>Many common problems are easily solved.</p> <p>Adapter:</p> <ul> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#bluetooth-must-be-turned-on">bluetooth must be turned on</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#adapterstate-is-not-on-but-my-bluetooth-is-on">adapterState is not 'on' but my Bluetooth is on</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#adapterstate-is-called-multiple-times">adapterState is called multiple times</a></li> </ul> <p>Scanning:</p> <ul> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#scanning-does-not-find-my-device">Scanning does not find my device</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#scanned-device-never-goes-away">Scanned device never goes away</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#ibeacons-not-showing">iBeacons not showing</a></li> </ul> <p>Connecting:</p> <ul> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#connection-fails">Connection fails</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#connectionstate-is-called-multiple-times">connectionState is called multiple times</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#the-remoteid-is-different-on-android-versus-ios--macos">remoteId is different on Android vs iOS</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#ios-error-the-connection-has-timed-out-unexpectedly">iOS: "[Error] The connection has timed out unexpectedly."</a></li> </ul> <p>Reading &amp; Writing:</p> <ul> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#list-of-bluetooth-gatt-errors">List of Bluetooth GATT Errors</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#characteristic-write-fails">Characteristic write fails</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#characteristic-read-fails">Characteristic read fails</a></li> </ul> <p>Subscriptions:</p> <ul> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#onvaluereceived-is-never-called-or-lastvaluestream">onValueReceived is never called (or lastValueStream)</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#onvaluereceived-data-is-split-up-or-lastvaluestream">onValueReceived data is split up (or lastValueStream)</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#onvaluereceived-is-called-with-duplicate-data-or-lastvaluestream">onValueReceived is called with duplicate data (or lastValueStream)</a></li> </ul> <p>Android Errors:</p> <ul> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#android_specific_error">ANDROID_SPECIFIC_ERROR</a></li> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#android-pairing-popup-appears-twice">android pairing popup appears twice</a></li> </ul> <p>Flutter Errors:</p> <ul> <li><a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#missingpluginexceptionno-implementation-found-for-method-xxxx-">MissingPluginException(No implementation found for method XXXX ...)</a></li> </ul> <hr> <h3>"bluetooth must be turned on"</h3> <p>You need to wait for the bluetooth adapter to fully turn on.</p> <p><code>await FlutterBluePlus.adapterState.where((state) =&gt; state == BluetoothAdapterState.on).first;</code></p> <p>You can also use <code>FlutterBluePlus.adapterState.listen(...)</code>. See <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#usage">Usage</a>.</p> <hr> <h3>adapterState is not 'on' but my Bluetooth is on</h3> <p><strong>For iOS:</strong></p> <p><code>adapterState</code> always starts as <code>unknown</code>. You need to wait longer for the service to initialize. Use this code:</p> <pre><code>// wait for actual adapter state, up to 3 seconds Set&lt;BluetoothAdapterState&gt; inProgress = {BluetoothAdapterState.unknown, BluetoothAdapterState.turningOn}; var adapterState = FlutterBluePlus.adapterState.where((v) =&gt; !inProgress.contains(v)).first; await adapterState.timeout(const Duration(seconds: 3)).onError((error, stackTrace) { throw Exception("Could not determine Bluetooth state. ${FlutterBluePlus.adapterStateNow}"); }); // check adapter state if (FlutterBluePlus.adapterStateNow != BluetoothAdapterState.on) { throw Exception("Bluetooth Is Not On. ${FlutterBluePlus.adapterStateNow}"); } </code></pre> <p>If <code>adapterState</code> is <code>unavailable</code>, you must add access to Bluetooth Hardware in the app's Xcode settings. See <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#getting-started">Getting Started</a>.</p> <p><strong>For Android:</strong></p> <p>Check that your device supports Bluetooth &amp; has permissions.</p> <hr> <h3>adapterState is called multiple times</h3> <p>You are forgetting to cancel the original <code>FlutterBluePlus.adapterState.listen</code> resulting in multiple listeners.</p> <pre><code class="language-dart">// tip: using ??= makes it easy to only make new listener when currently null final subscription ??= FlutterBluePlus.adapterState.listen((value) { // ... }); // also, make sure you cancel the subscription when done! subscription.cancel() </code></pre> <hr> <h3>Scanning does not find my device</h3> <p><strong>1. you're using an emulator</strong></p> <p>Use a physical device.</p> <p><strong>2. try using another ble scanner app</strong></p> <ul> <li><strong>iOS</strong>: <a href="https://apps.apple.com/us/app/nrf-connect-for-mobile/id1054362403">nRF Connect</a></li> <li><strong>Android</strong>: <a href="https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner">BLE Scanner</a></li> </ul> <p>Install a BLE scanner app on your phone. Can it find your device?</p> <p><strong>3. your device uses bluetooth classic, not BLE.</strong></p> <p>Headphones, speakers, keyboards, mice, gamepads, &amp; printers all use Bluetooth Classic.</p> <p>These devices may be found in System Settings, but they cannot be connected to by FlutterBluePlus. FlutterBluePlus only supports Bluetooth Low Energy.</p> <p><strong>4. your device stopped advertising.</strong></p> <ul> <li>you might need to reboot your device</li> <li>you might need to put your device in "discovery mode"</li> <li>your phone may have already connected automatically</li> <li>another app may have already connected to your device</li> <li>another phone may have already connected to your device</li> </ul> <p>Try looking through system devices:</p> <pre><code class="language-dart">// search system devices. i.e. any device connected to by *any* app List&lt;BluetoothDevice&gt; system = await FlutterBluePlus.systemDevices; for (var d in system) { print('${r.device.platformName} already connected to! ${r.device.remoteId}'); if (d.platformName == "myBleDevice") { await r.connect(); // must connect our app } } </code></pre> <p><strong>5. your scan filters are wrong.</strong></p> <ul> <li>try removing all scan filters</li> <li>for <code>withServices</code> to work, your device must actively advertise the serviceUUIDs it supports</li> </ul> <p><strong>6. Android: you're calling startScan too often</strong></p> <p>On Adroid you can only call <code>startScan</code> 5 times per 30 second period. This is a platform restriction.</p> <hr> <h3>Scanned device never goes away</h3> <p>This is expected.</p> <p>You must set the <code>removeIfGone</code> scan option if you want the device to go away when no longer available.</p> <hr> <h3>iBeacons Not Showing</h3> <p><strong>iOS:</strong></p> <p>iOS does not support iBeacons using CoreBluetooth. You must find a plugin meant for CoreLocation.</p> <p><strong>Android:</strong></p> <ol> <li>you need to enable location permissions, see <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#getting-started">Getting Started</a></li> <li>you must pass <code>androidUsesFineLocation:true</code> to the <code>startScan</code> method.</li> </ol> <hr> <h3>Connection fails</h3> <p><strong>1. Your ble device may be low battery</strong></p> <p>Bluetooth can become erratic when your peripheral device is low on battery.</p> <p><strong>2. Your ble device may have refused the connection or have a bug</strong></p> <p>Connection is a two-way process. Your ble device may be misconfigured.</p> <p><strong>3. You may be on the edge of the Bluetooth range.</strong></p> <p>The signal is too weak, or there are a lot of devices causing radio interference.</p> <p><strong>4. Some phones have an issue connecting while scanning.</strong></p> <p>The Huawei P8 Lite is one of the reported phones to have this issue. Try stopping your scanner before connecting.</p> <p><strong>5. Try restarting your phone</strong></p> <p>Bluetooth is a complicated system service, and can enter a bad state.</p> <hr> <h3>connectionState is called multiple times</h3> <p>You are forgetting to cancel the original <code>device.connectionState.listen</code> resulting in multiple listeners.</p> <pre><code class="language-dart">// tip: using ??= makes it easy to only make new listener when currently null final subscription ??= FlutterBluePlus.device.connectionState.listen((value) { // ... }); // also, make sure you cancel the subscription when done! subscription.cancel() </code></pre> <hr> <h3>The remoteId is different on Android versus iOS &amp; macOS</h3> <p>This is expected. There is no way to avoid it.</p> <p>For privacy, iOS &amp; macOS use a randomly generated uuid. This uuid will periodically change.</p> <p>e.g. <code>6920a902-ba0e-4a13-a35f-6bc91161c517</code></p> <p>Android uses the mac address of the bluetooth device. It never changes.</p> <p>e.g. <code>05:A4:22:31:F7:ED</code></p> <hr> <h3>iOS: "[Error] The connection has timed out unexpectedly."</h3> <p>You can google this error. It is a common iOS ble error code.</p> <p>It means your device stopped working. FlutterBluePlus cannot fix it.</p> <hr> <h3>List of Bluetooth GATT Errors</h3> <p>These GATT error codes are part of the BLE Specification.</p> <p><strong>These are <em>responses</em> from your ble device because you are sending an invalid request.</strong></p> <p>FlutterBluePlus cannot fix these errors. You are doing something wrong &amp; your device is responding with an error.</p> <p><strong>GATT errors as they appear on iOS</strong>:</p> <pre><code>apple-code: 1 | The handle is invalid. apple-code: 2 | Reading is not permitted. apple-code: 3 | Writing is not permitted. apple-code: 4 | The command is invalid. apple-code: 6 | The request is not supported. apple-code: 7 | The offset is invalid. apple-code: 8 | Authorization is insufficient. apple-code: 9 | The prepare queue is full. apple-code: 10 | The attribute could not be found. apple-code: 11 | The attribute is not long. apple-code: 12 | The encryption key size is insufficient. apple-code: 13 | The value's length is invalid. apple-code: 14 | Unlikely error. apple-code: 15 | Encryption is insufficient. apple-code: 16 | The group type is unsupported. apple-code: 17 | Resources are insufficient. apple-code: 18 | Unknown ATT error. </code></pre> <p><strong>GATT errors as they appear on Android</strong>:</p> <pre><code>android-code: 1 | GATT_INVALID_HANDLE android-code: 2 | GATT_READ_NOT_PERMITTED android-code: 3 | GATT_WRITE_NOT_PERMITTED android-code: 4 | GATT_INVALID_PDU android-code: 5 | GATT_INSUFFICIENT_AUTHENTICATION android-code: 6 | GATT_REQUEST_NOT_SUPPORTED android-code: 7 | GATT_INVALID_OFFSET android-code: 8 | GATT_INSUFFICIENT_AUTHORIZATION android-code: 9 | GATT_PREPARE_QUEUE_FULL android-code: 10 | GATT_ATTR_NOT_FOUND android-code: 11 | GATT_ATTR_NOT_LONG android-code: 12 | GATT_INSUFFICIENT_KEY_SIZE android-code: 13 | GATT_INVALID_ATTRIBUTE_LENGTH android-code: 14 | GATT_UNLIKELY android-code: 15 | GATT_INSUFFICIENT_ENCRYPTION android-code: 16 | GATT_UNSUPPORTED_GROUP android-code: 17 | GATT_INSUFFICIENT_RESOURCES </code></pre> <p><strong>Descriptions</strong>:</p> <pre><code>1 | Invalid Handle | The attribute handle given was not valid on this server. 2 | Read Not Permitted | The attribute cannot be read. 3 | Write Not Permitted | The attribute cannot be written. 4 | Invalid PDU | The attribute PDU was invalid. 5 | Insufficient Authentication | The attribute requires authentication before it can be read or written. 6 | Request Not Supported | Attribute server does not support the request received from the client. 7 | Invalid Offset | Offset specified was past the end of the attribute. 8 | Insufficient Authorization | The attribute requires an authorization before it can be read or written. 9 | Prepare Queue Full | Too many prepare writes have been queued. 10 | Attribute Not Found | No attribute found within the given attribute handle range. 11 | Attribute Not Long | The attribute cannot be read or written using the Read Blob or Write Blob requests. 12 | Insufficient Key Size | The Encryption Key Size used for encrypting this link is insufficient. 13 | Invalid Attribute Value Length | The attribute value length is invalid for the operation. 14 | Unlikely Error | The request has encountered an unlikely error and cannot be completed. 15 | Insufficient Encryption | The attribute requires encryption before it can be read or written. 16 | Unsupported Group Type | The attribute type is not a supported grouping as defined by a higher layer. 17 | Insufficient Resources | Insufficient Resources to complete the request. </code></pre> <hr> <h3>characteristic write fails</h3> <p>First, check the <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#list-of-bluetooth-gatt-errors">List of Bluetooth GATT Errors</a> for your error.</p> <p><strong>1. your bluetooth device turned off, or is out of range</strong></p> <p>If your device turns off or crashes during a write, it will cause a failure.</p> <p><strong>2. Your Bluetooth device has bugs</strong></p> <p>Maybe your device crashed, or is not sending a response due to software bugs.</p> <p><strong>3. there is radio interference</strong></p> <p>Bluetooth is wireless and will not always work.</p> <hr> <h3>Characteristic read fails</h3> <p>First, check the <a href="https://raw.githubusercontent.com/chipweinberger/flutter_blue_plus/master/#list-of-bluetooth-gatt-errors">List of Bluetooth GATT Errors</a> for your error.</p> <p><strong>1. your bluetooth device turned off, or is out of range</strong></p> <p>If your device turns off or crashes during a read, it will cause a failure.</p> <p><strong>2. Your Bluetooth device has bugs</strong></p> <p>Maybe your device crashed, or is not sending a response due to software bugs.</p> <p><strong>3. there is radio interference</strong></p> <p>Bluetooth is wireless and will not always work.</p> <hr> <h3>onValueReceived is never called (or lastValueStream)</h3> <p><strong>1. you are not calling the right function</strong></p> <p><code>lastValueStream</code> is called for <code>await chr.read()</code> &amp; <code>await chr.write()</code> &amp; <code>await chr.setNotifyValue(true)</code></p> <p><code>onValueReceived</code> is only called for <code>await chr.read()</code> &amp; <code>await chr.setNotifyValue(true)</code></p> <p><strong>2. your device has nothing to send</strong></p> <p>If you are using <code>await chr.setNotifyValue(true)</code>, your <em>device</em> chooses when to send data.</p> <p>Try interacting with your device to get it to send new data.</p> <p><strong>3. your device has bugs</strong></p> <p>Try rebooting your ble device.</p> <p>Some ble devices have buggy software and stop sending data</p> <hr> <h3>onValueReceived data is split up (or lastValueStream)</h3> <p>Verify that the mtu is large enough to hold your message.</p> <pre><code class="language-dart">device.mtu </code></pre> <p>If it still happens, it is a problem with your peripheral device.</p> <hr> <h3>onValueReceived is called with duplicate data (or lastValueStream)</h3> <p>You are probably forgetting to cancel the original <code>chr.onValueReceived.listen</code> resulting in multiple listens.</p> <p>The easiest solution is to use <code>device.cancelWhenDisconnected(subscription)</code> to cancel device subscriptions.</p> <pre><code class="language-dart">final subscription = chr.onValueReceived.listen((value) { // ... }); // make sure you have this line! device.cancelWhenDisconnected(subscription); await characteristic.setNotifyValue(true); </code></pre> <hr> <h3>ANDROID_SPECIFIC_ERROR</h3> <p>There is no 100% solution.</p> <p>FBP already has mitigations for this error, but Android will still fail with this code randomly.</p> <p>The recommended solution is to <code>catch</code> the error, and retry.</p> <hr> <h3>android pairing popup appears twice</h3> <p>This is a bug in android itself.</p> <p>You can call <code>createBond()</code> yourself just after connecting and this will resolve the issue.</p> <hr> <h3>MissingPluginException(No implementation found for method XXXX ...)</h3> <p>If you just added flutter_blue_plus to your pubspec.yaml, a hot reload / hot restart is not enough.</p> <p>You need to fully stop your app and run again so that the native plugins are loaded.</p> <p>Also try <code>flutter clean</code>.</p> + HemantKArya/BloomeeTunes + 2024-08-22T01:29:13Z + tag:github.com,2024-08-22:/HemantKArya/BloomeeTunes + + <p>🌸Bloomee is a cross-platform music app designed to bring you ad-free tunes from various sources. 🌼🎵</p><hr><p><img src="https://raw.githubusercontent.com/HemantKArya/BloomeeTunes/main/assets/docs/bloomeetunes_new_banner.png" alt="BloomeeTunes"> <strong></strong></p> <h1 align="center"><strong>Bloomee🌸</strong></h1> <p></p> <p align="center"><a href="https://github.com/HemantKArya/BloomeeTunes/releases/latest"><img alt="GitHub Downloads (all assets, all releases)" src="https://img.shields.io/github/downloads/HemantKArya/BloomeeTunes/total?style=for-the-badge"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HemantKArya/BloomeeTunes?display_name=release&amp;style=for-the-badge&amp;color=f01d7c"></a> <img alt="GitHub License" src="https://img.shields.io/github/license/HemantKArya/BloomeeTunes?style=for-the-badge&amp;color=1881cc"> <img alt="GitHub Actions Workflow Status" src="https://img.shields.io/github/actions/workflow/status/HemantKArya/BloomeeTunes/checkout.yml?style=for-the-badge"> <img src="https://img.shields.io/badge/Flutter-02569B?style=for-the-badge&amp;logo=flutter&amp;logoColor=white"><br><img src="https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&amp;logo=windows&amp;logoColor=white"> <img src="https://img.shields.io/badge/Android-3DDC84?style=for-the-badge&amp;logo=android&amp;logoColor=white"> <img src="https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&amp;logo=linux&amp;logoColor=black"> </p> <br> Bloomee is experimental cross-platform open Source Music player designed to bring you Ad-free tunes from various sources. Dive into a world of limitless music from platforms like YouTube and Jio Saavn, with more sources blooming soon! 🌼🎵 <p><img src="https://raw.githubusercontent.com/HemantKArya/BloomeeTunes/main/assets/docs/banner2BloomeScrnShot.png" alt="BloomeeTunesScrnShots"></p> <p><img src="https://raw.githubusercontent.com/HemantKArya/BloomeeTunes/main/assets/docs/lyricsscrn.png" alt="BloomeeDesktop"></p> <h3><strong>Why Bloomee?</strong></h3> <p>🌟 <strong>Ad-Free Experience:</strong> Say goodbye to interruptions and enjoy uninterrupted musical bliss.</p> <p>🌍 <strong>Multi-Source Player:</strong> Access your favorite tracks from diverse platforms, with more sources continually joining our melody garden.</p> <p>🚀 <strong>Flutter-Powered Learning:</strong> Bloomee is not just about music; it's about learning and growing with Flutter and BLoC architecture. Explore the intersection of beautiful design and smooth functionality while mastering the art of app development.</p> <h3><strong>Features</strong></h3> <ul> <li><input type="checkbox" checked disabled> 🚫 Ad-Free Music</li> <li><input type="checkbox" checked disabled> 📝 Lyrics Support (Time Synced)</li> <li><input type="checkbox" checked disabled> 🎵 Offline Music Experience</li> <li><input type="checkbox" checked disabled> ⏲️ Sleep Timer</li> <li><input type="checkbox" checked disabled> 🎧 Personalized Playlist Creation and Sharing</li> <li><input type="checkbox" checked disabled> 🌐 Daily Updated Global Charts. (Billboard, Last.fm and more.)</li> <li><input type="checkbox" checked disabled> 🖥️ Support for Android, Windows and Linux.</li> <li><input type="checkbox" checked disabled> 📉 Minimal Data Usage</li> <li><input type="checkbox" checked disabled> 💾 Space Efficient</li> <li><input type="checkbox" checked disabled> 🏃 Lightweight App</li> <li><input type="checkbox" checked disabled> 🔓 Open Source</li> <li><input type="checkbox" disabled> 🍏 Support for iOS</li> <li><input type="checkbox" disabled> 🎼 AI-Generated Playlist</li> <li><input type="checkbox" disabled> 💡 AI-Based Recommendations</li> <li><input type="checkbox" disabled> 🆎 Multi-Language support</li> </ul> <h3 align="center">Download for Android, Windows &amp; Linux(dev) 😍</h3> <p align="center"> <a href="https://sourceforge.net/projects/bloomee/files/latest/download"><img alt="Download BloomeeTunes" src="https://a.fsdn.com/con/app/sf-download-button" width="272" height="44" srcset="https://a.fsdn.com/con/app/sf-download-button?button_size=2x 2x"></a></p> <br> <h3><strong>Contribute to BloomeeTunes! 🎶</strong></h3> <p>🌱 <strong>Every Note Counts:</strong> Your contribution, no matter how small, adds to the richness of Bloomee. Whether you're fixing a bug, enhancing features, or suggesting improvements, your notes in our melody matter. Also I'm new to flutter, So every contribution will help me and this project.</p> <p>🚀 <strong>Learn and Grow:</strong> Contribute to Bloomee and enhance your Flutter and BLoC skills. Every pull request is an opportunity to learn, and we encourage contributors of all levels to join the journey.</p> <p><strong>How to Contribute:</strong></p> <ol> <li> <p><strong>Fork the Repository:</strong> Start your Bloomee journey by forking <strong>main(Branch)</strong>.</p> </li> <li> <p><strong>Clone Locally:</strong> Clone the forked repository to your local machine.</p> </li> <li> <p><strong>Create a Branch:</strong> Create a new branch for your contribution.</p> </li> <li> <p><strong>Make Changes:</strong> Make your contribution - fix a bug, add a feature, or improve the documentation.</p> </li> <li> <p><strong>Push Changes:</strong> Push your changes to your forked repository.</p> </li> <li> <p><strong>Create a Pull Request:</strong> Submit a pull request, and let your notes join the Bloomee Symphony!</p> </li> </ol> <br> <h4 align="center">Get in touch with me at :-</h4> <p align="center"> <a href="https://www.linkedin.com/in/iamhemantindia/"> <img src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&amp;logo=linkedin&amp;logoColor=white"> </a> <a href="https://instagram.com/iamhemantindia/"> <img src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&amp;logo=instagram&amp;logoColor=white"> </a> <a href="https://x.com/iamhemantindia/"> <img src="https://img.shields.io/badge/X-000000?style=for-the-badge&amp;logo=x&amp;logoColor=white"> </a> <a href="mailto:iamhemantindia@protonmail.com/"> <img src="https://img.shields.io/badge/proton%20mail-6D4AFF?style=for-the-badge&amp;logo=protonmail&amp;logoColor=white"> </a> </p> \ No newline at end of file diff --git a/dataweave/daily/index.xml b/dataweave/daily/index.xml index f4bb91eb77c..1346672c0cc 100644 --- a/dataweave/daily/index.xml +++ b/dataweave/daily/index.xml @@ -1,7 +1,7 @@ GitHub DataWeave Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:11Z + 2024-08-22T01:29:11Z Daily Trending of DataWeave in GitHub \ No newline at end of file diff --git a/debian-package-control-file/daily/index.xml b/debian-package-control-file/daily/index.xml index d15b5580b29..092fe1bb10c 100644 --- a/debian-package-control-file/daily/index.xml +++ b/debian-package-control-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub Debian Package Control File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:10Z + 2024-08-22T01:29:10Z Daily Trending of Debian Package Control File in GitHub \ No newline at end of file diff --git a/denizenscript/daily/index.xml b/denizenscript/daily/index.xml index b5d4c7f2388..97827968d8a 100644 --- a/denizenscript/daily/index.xml +++ b/denizenscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub DenizenScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:17Z + 2024-08-22T01:29:18Z Daily Trending of DenizenScript in GitHub \ No newline at end of file diff --git a/desktop/daily/index.xml b/desktop/daily/index.xml index fdcf705fe8b..5337640c8af 100644 --- a/desktop/daily/index.xml +++ b/desktop/daily/index.xml @@ -1,7 +1,7 @@ GitHub desktop Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:17Z + 2024-08-22T01:29:18Z Daily Trending of desktop in GitHub \ No newline at end of file diff --git a/dhall/daily/index.xml b/dhall/daily/index.xml index 1432c3550ce..55a8b76c097 100644 --- a/dhall/daily/index.xml +++ b/dhall/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dhall Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:16Z + 2024-08-22T01:29:18Z Daily Trending of Dhall in GitHub \ No newline at end of file diff --git a/diff/daily/index.xml b/diff/daily/index.xml index 2f30ddad720..574881a9bec 100644 --- a/diff/daily/index.xml +++ b/diff/daily/index.xml @@ -1,7 +1,7 @@ GitHub Diff Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:16Z + 2024-08-22T01:29:17Z Daily Trending of Diff in GitHub \ No newline at end of file diff --git a/digital-command-language/daily/index.xml b/digital-command-language/daily/index.xml index 9d9a4f77d2d..8c11f1f91cf 100644 --- a/digital-command-language/daily/index.xml +++ b/digital-command-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub DIGITAL Command Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:18Z + 2024-08-22T01:29:20Z Daily Trending of DIGITAL Command Language in GitHub \ No newline at end of file diff --git a/dircolors/daily/index.xml b/dircolors/daily/index.xml index ae55c03e02e..ed80f3d65aa 100644 --- a/dircolors/daily/index.xml +++ b/dircolors/daily/index.xml @@ -1,7 +1,7 @@ GitHub dircolors Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:18Z + 2024-08-22T01:29:19Z Daily Trending of dircolors in GitHub \ No newline at end of file diff --git a/directx-3d-file/daily/index.xml b/directx-3d-file/daily/index.xml index 30414808229..1a263cd5815 100644 --- a/directx-3d-file/daily/index.xml +++ b/directx-3d-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub DirectX 3D File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:18Z + 2024-08-22T01:29:19Z Daily Trending of DirectX 3D File in GitHub \ No newline at end of file diff --git a/dm/daily/index.xml b/dm/daily/index.xml index 0590ec4c9af..14448e27c8c 100644 --- a/dm/daily/index.xml +++ b/dm/daily/index.xml @@ -1,7 +1,7 @@ GitHub DM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:19Z + 2024-08-22T01:29:20Z Daily Trending of DM in GitHub \ No newline at end of file diff --git a/dns-zone/daily/index.xml b/dns-zone/daily/index.xml index 7b20e48631b..64616714e20 100644 --- a/dns-zone/daily/index.xml +++ b/dns-zone/daily/index.xml @@ -1,7 +1,7 @@ GitHub DNS Zone Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:19Z + 2024-08-22T01:29:21Z Daily Trending of DNS Zone in GitHub \ No newline at end of file diff --git a/dockerfile/daily/index.xml b/dockerfile/daily/index.xml index 50d9cfa686b..2948dabcae8 100644 --- a/dockerfile/daily/index.xml +++ b/dockerfile/daily/index.xml @@ -1,14 +1,7 @@ GitHub Dockerfile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:21Z + 2024-08-22T01:29:22Z Daily Trending of Dockerfile in GitHub - - youegraillot/lidarr-on-steroids - 2024-08-21T01:29:21Z - tag:github.com,2024-08-21:/youegraillot/lidarr-on-steroids - - <p>Lidarr with some muscles thanks to deemix</p><hr><h1><a href="https://github.com/youegraillot/lidarr-on-steroids/">lidarr-on-steroids</a></h1> <p><code>I'm looking for maintainers, pm me if you're interested !</code></p> <p><a href="https://github.com/youegraillot/lidarr-on-steroids"><img src="https://img.shields.io/github/last-commit/youegraillot/lidarr-on-steroids?style=for-the-badge&amp;logo=github" alt="GitHub last commit"></a> <a href="https://hub.docker.com/r/youegraillot/lidarr-on-steroids"><img src="https://img.shields.io/docker/v/youegraillot/lidarr-on-steroids?style=for-the-badge&amp;logo=docker" alt="Latest tag"></a> <a href="https://hub.docker.com/r/youegraillot/lidarr-on-steroids"><img src="https://img.shields.io/docker/pulls/youegraillot/lidarr-on-steroids?style=for-the-badge&amp;logo=docker" alt="Docker pulls"></a></p> <p>This repository bundles a modded version of Lidarr and Deemix into a docker image featuring :</p> <ul> <li>Native Deemix integration as an indexer and downloader for Lidarr</li> <li>Automatic Lidarr and Deemix configuration</li> <li>Automatic conversion from any format with ffmpeg</li> <li>Podman compatibility with rootless mode</li> </ul> <p>This allows an easy deployment, with the advantage of having a direct control over Deemix indexing and downloader capacities into Lidarr :</p> <p><img src="https://github.com/youegraillot/lidarr-on-steroids/raw/main/.assets/lidarr-indexers.png" alt="&quot;Lidarr indexers&quot;" title="Lidarr indexers"></p> <h2>Usage</h2> <h3>Parameters</h3> <table> <thead> <tr> <th align="center">Parameter</th> <th>Function</th> </tr> </thead> <tbody> <tr> <td align="center"><code>-p 8686</code></td> <td>Lidarr WebUI</td> </tr> <tr> <td align="center"><code>-p 6595</code></td> <td>Deemix WebUI</td> </tr> <tr> <td align="center"><code>-e PUID=1000</code></td> <td>for UserID</td> </tr> <tr> <td align="center"><code>-e PGID=1000</code></td> <td>for GroupID</td> </tr> <tr> <td align="center"><code>-e AUTOCONFIG=true</code></td> <td>Enable automatic configuration - see below for explanation</td> </tr> <tr> <td align="center"><code>-e FLAC2CUSTOM_ARGS=""</code></td> <td>Sets arguments used when calling flac2custom.sh</td> </tr> <tr> <td align="center"><code>-e CLEAN_DOWNLOADS=true</code></td> <td>Enable cleaning empty folders in /downloads</td> </tr> <tr> <td align="center"><code>-v /config</code></td> <td>Configuration files for Lidarr.</td> </tr> <tr> <td align="center"><code>-v /config_deemix</code></td> <td>Configuration files for Deemix.</td> </tr> <tr> <td align="center"><code>-v /downloads</code></td> <td>Path to your download folder for music.</td> </tr> <tr> <td align="center"><code>-v /music</code></td> <td>Music files.</td> </tr> </tbody> </table> <h3>Docker Run</h3> <pre><code class="language-sh">docker run \ --name lidarr \ -p 8686:8686 \ -p 6595:6595 \ -v &lt;path&gt;:/config \ -v &lt;path&gt;:/config_deemix \ -v &lt;path&gt;:/downloads \ -v &lt;path&gt;:/music \ --restart unless-stopped \ youegraillot/lidarr-on-steroids </code></pre> <h3>Docker Compose</h3> <pre><code class="language-yml">version: "3" services: lidarr: image: youegraillot/lidarr-on-steroids restart: unless-stopped ports: - "8686:8686" # Lidarr web UI - "6595:6595" # Deemix web UI volumes: - &lt;path&gt;:/config - &lt;path&gt;:/config_deemix - &lt;path&gt;:/downloads - &lt;path&gt;:/music </code></pre> <h2>Automatic configuration</h2> <p>Deemix comes with optimal settings allowing Lidarr integration, in particular regarding the folder structure ("createCDFolder" is required for this to work). <code>DEEMIX_SINGLE_USER</code> environment variable is also set to <code>true</code> to allow the <code>setup</code> script to read the corresponding ARL.</p> <p>The <code>setup</code> service will install the Deemix plugin. This requires Lidarr to be restarted once.</p> <p>In <code>AUTOCONFIG</code> mode (default), the only manual manipulation you'll only have to fill your Deezer credentials in Deemix web UI (port <a href="http://localhost:6595">6595</a> by default). Once the <code>/config_deemix/login.json</code> is filled with the resulting ARL, the <code>setup</code> will be able to create the following :</p> <ul> <li>/music root folder if no other root folder is configured</li> <li>Delay profile allowing Deemix to be used by automatic search</li> <li>Deemix as an indexer</li> <li>Deemix as a download client</li> <li>Flac2Custom script connection if <code>FLAC2CUSTOM_ARGS</code> is set</li> <li>clean-downloads script connection to keep your downloads folder <em>clean</em> after each imports</li> </ul> <p>In case you don't want the automagical part (which is really the only value of this image), just set <code>AUTOCONFIG</code> environment variable to <code>false</code>.</p> <h2>Audio files conversion</h2> <p>The image uses a modded version of lidarr-flac2mp3 allowing conversion from any format.</p> <p>To enable conversion on Lidarr import, create a new Connection to a Custom Script. You can also provide your own custom conversion script, see <a href="https://github.com/youegraillot/lidarr-flac2mp3">lidarr-flac2mp3</a> for more information.</p> <p>In <code>AUTOCONFIG</code>, if <code>FLAC2CUSTOM_ARGS</code> is set and no other connection to flac2* is found, this step done for you :</p> <p><img src="https://github.com/youegraillot/lidarr-on-steroids/raw/main/.assets/lidarr-custom-script.png" alt="&quot;Lidarr custom script settings&quot;" title="Lidarr custom script settings"></p> <h2>Acknowledgment</h2> <p>This project is just a compilation of various tools made possible by these projects :</p> <ul> <li><a href="https://github.com/Lidarr/Lidarr">Lidarr</a> and especially <a href="https://github.com/ta264">ta264</a> for the plugin integration</li> <li><a href="https://github.com/TheCaptain989/lidarr-flac2mp3">lidarr-flac2mp3</a> for the format conversion script</li> <li><a href="https://deemix.app/">Deemix</a> for the downloader backend</li> <li><a href="https://hotio.dev/">hotio</a> for the base docker image</li> </ul> <p>Alternatively, you could use <a href="https://github.com/TheUltimateC0der/deemixrr">Deemixrr</a> which pretty much offers the same functionalities without the *starr of the various Sonarr forks.</p> - \ No newline at end of file diff --git a/dogescript/daily/index.xml b/dogescript/daily/index.xml index 2727325be2a..90319957c5c 100644 --- a/dogescript/daily/index.xml +++ b/dogescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dogescript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:20Z + 2024-08-22T01:29:21Z Daily Trending of Dogescript in GitHub \ No newline at end of file diff --git a/dtrace/daily/index.xml b/dtrace/daily/index.xml index 7933f045d16..d2ee1554124 100644 --- a/dtrace/daily/index.xml +++ b/dtrace/daily/index.xml @@ -1,7 +1,7 @@ GitHub DTrace Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:24Z + 2024-08-22T01:29:30Z Daily Trending of DTrace in GitHub \ No newline at end of file diff --git a/dylan/daily/index.xml b/dylan/daily/index.xml index 91cf769036f..f8cd7f7769a 100644 --- a/dylan/daily/index.xml +++ b/dylan/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dylan Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:25Z + 2024-08-22T01:29:30Z Daily Trending of Dylan in GitHub \ No newline at end of file diff --git a/e-mail/daily/index.xml b/e-mail/daily/index.xml index eea0a26d156..0359c45633d 100644 --- a/e-mail/daily/index.xml +++ b/e-mail/daily/index.xml @@ -1,7 +1,7 @@ GitHub E-mail Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:24Z + 2024-08-22T01:29:29Z Daily Trending of E-mail in GitHub \ No newline at end of file diff --git a/e/daily/index.xml b/e/daily/index.xml index a0bdcb9b261..6f84552796a 100644 --- a/e/daily/index.xml +++ b/e/daily/index.xml @@ -1,7 +1,7 @@ GitHub E Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:25Z + 2024-08-22T01:29:30Z Daily Trending of E in GitHub \ No newline at end of file diff --git a/eagle/daily/index.xml b/eagle/daily/index.xml index a1182d4998d..424bb1a2e45 100644 --- a/eagle/daily/index.xml +++ b/eagle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Eagle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:26Z + 2024-08-22T01:29:31Z Daily Trending of Eagle in GitHub \ No newline at end of file diff --git a/earthly/daily/index.xml b/earthly/daily/index.xml index 729574be18a..7f0d0885141 100644 --- a/earthly/daily/index.xml +++ b/earthly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Earthly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:26Z + 2024-08-22T01:29:31Z Daily Trending of Earthly in GitHub \ No newline at end of file diff --git a/easybuild/daily/index.xml b/easybuild/daily/index.xml index 3a74b014429..82db29c9be0 100644 --- a/easybuild/daily/index.xml +++ b/easybuild/daily/index.xml @@ -1,7 +1,7 @@ GitHub Easybuild Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:25Z + 2024-08-22T01:29:32Z Daily Trending of Easybuild in GitHub \ No newline at end of file diff --git a/ebnf/daily/index.xml b/ebnf/daily/index.xml index 19d7523a4f5..16eb48061c3 100644 --- a/ebnf/daily/index.xml +++ b/ebnf/daily/index.xml @@ -1,7 +1,7 @@ GitHub EBNF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:26Z + 2024-08-22T01:29:31Z Daily Trending of EBNF in GitHub \ No newline at end of file diff --git a/ec/daily/index.xml b/ec/daily/index.xml index ce4505e47d4..10e45b83434 100644 --- a/ec/daily/index.xml +++ b/ec/daily/index.xml @@ -1,7 +1,7 @@ GitHub eC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:28Z + 2024-08-22T01:29:32Z Daily Trending of eC in GitHub \ No newline at end of file diff --git a/ecere-projects/daily/index.xml b/ecere-projects/daily/index.xml index fe47513dbb9..3e86cd25883 100644 --- a/ecere-projects/daily/index.xml +++ b/ecere-projects/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ecere Projects Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:27Z + 2024-08-22T01:29:32Z Daily Trending of Ecere Projects in GitHub \ No newline at end of file diff --git a/ecl/daily/index.xml b/ecl/daily/index.xml index 6f1873d9773..823882bdc1c 100644 --- a/ecl/daily/index.xml +++ b/ecl/daily/index.xml @@ -1,7 +1,7 @@ GitHub ECL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:27Z + 2024-08-22T01:29:33Z Daily Trending of ECL in GitHub \ No newline at end of file diff --git a/eclipse/daily/index.xml b/eclipse/daily/index.xml index 6378d27482b..274ff64ab01 100644 --- a/eclipse/daily/index.xml +++ b/eclipse/daily/index.xml @@ -1,7 +1,7 @@ GitHub ECLiPSe Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:28Z + 2024-08-22T01:29:33Z Daily Trending of ECLiPSe in GitHub \ No newline at end of file diff --git a/editorconfig/daily/index.xml b/editorconfig/daily/index.xml index b6d0bf30ff3..2fbcda42e9f 100644 --- a/editorconfig/daily/index.xml +++ b/editorconfig/daily/index.xml @@ -1,7 +1,7 @@ GitHub EditorConfig Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:29Z + 2024-08-22T01:29:35Z Daily Trending of EditorConfig in GitHub \ No newline at end of file diff --git a/edje-data-collection/daily/index.xml b/edje-data-collection/daily/index.xml index ff1ac8e8857..3fc8660f987 100644 --- a/edje-data-collection/daily/index.xml +++ b/edje-data-collection/daily/index.xml @@ -1,7 +1,7 @@ GitHub Edje Data Collection Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:30Z + 2024-08-22T01:29:36Z Daily Trending of Edje Data Collection in GitHub \ No newline at end of file diff --git a/edn/daily/index.xml b/edn/daily/index.xml index f51fb8bfdc4..98088b370f1 100644 --- a/edn/daily/index.xml +++ b/edn/daily/index.xml @@ -1,7 +1,7 @@ GitHub edn Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:31Z + 2024-08-22T01:29:35Z Daily Trending of edn in GitHub \ No newline at end of file diff --git a/eiffel/daily/index.xml b/eiffel/daily/index.xml index 9bd4337f94b..397a4f9b6eb 100644 --- a/eiffel/daily/index.xml +++ b/eiffel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Eiffel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:30Z + 2024-08-22T01:29:35Z Daily Trending of Eiffel in GitHub \ No newline at end of file diff --git a/ejs/daily/index.xml b/ejs/daily/index.xml index 5e85506f83d..e1e551c07ac 100644 --- a/ejs/daily/index.xml +++ b/ejs/daily/index.xml @@ -1,7 +1,7 @@ GitHub EJS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:31Z + 2024-08-22T01:29:36Z Daily Trending of EJS in GitHub \ No newline at end of file diff --git a/elixir/daily/index.xml b/elixir/daily/index.xml index 58fb28428e2..e16c23514ac 100644 --- a/elixir/daily/index.xml +++ b/elixir/daily/index.xml @@ -1,7 +1,7 @@ GitHub Elixir Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:32Z + 2024-08-22T01:29:38Z Daily Trending of Elixir in GitHub \ No newline at end of file diff --git a/elm/daily/index.xml b/elm/daily/index.xml index 0f2f5461813..928c2d3e51f 100644 --- a/elm/daily/index.xml +++ b/elm/daily/index.xml @@ -1,7 +1,14 @@ GitHub Elm Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:32Z + 2024-08-22T01:29:37Z Daily Trending of Elm in GitHub + + MTES-MCT/ecobalyse + 2024-08-22T01:29:37Z + tag:github.com,2024-08-22:/MTES-MCT/ecobalyse + + <p>Accélerer la mise en place de l'affichage environnemental</p><hr> + \ No newline at end of file diff --git a/emacs-lisp/daily/index.xml b/emacs-lisp/daily/index.xml index 01dbe9d207e..180bda3b3be 100644 --- a/emacs-lisp/daily/index.xml +++ b/emacs-lisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub Emacs Lisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:35Z + 2024-08-22T01:29:40Z Daily Trending of Emacs Lisp in GitHub \ No newline at end of file diff --git a/emberscript/daily/index.xml b/emberscript/daily/index.xml index 9ddbeb5f5e4..8e59e9f5708 100644 --- a/emberscript/daily/index.xml +++ b/emberscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub EmberScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:33Z + 2024-08-22T01:29:39Z Daily Trending of EmberScript in GitHub \ No newline at end of file diff --git a/eq/daily/index.xml b/eq/daily/index.xml index e10a766e117..2d072787559 100644 --- a/eq/daily/index.xml +++ b/eq/daily/index.xml @@ -1,7 +1,7 @@ GitHub EQ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:33Z + 2024-08-22T01:29:39Z Daily Trending of EQ in GitHub \ No newline at end of file diff --git a/erlang/daily/index.xml b/erlang/daily/index.xml index c99b8ece5b4..629f679a89e 100644 --- a/erlang/daily/index.xml +++ b/erlang/daily/index.xml @@ -1,7 +1,7 @@ GitHub Erlang Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:35Z + 2024-08-22T01:29:40Z Daily Trending of Erlang in GitHub \ No newline at end of file diff --git a/euphoria/daily/index.xml b/euphoria/daily/index.xml index 7a9142b2fc9..d9b11768dda 100644 --- a/euphoria/daily/index.xml +++ b/euphoria/daily/index.xml @@ -1,7 +1,7 @@ GitHub Euphoria Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:40Z + 2024-08-22T01:29:43Z Daily Trending of Euphoria in GitHub \ No newline at end of file diff --git a/f%23/daily/index.xml b/f%23/daily/index.xml index 0412ea2f0a4..8d8844a1244 100644 --- a/f%23/daily/index.xml +++ b/f%23/daily/index.xml @@ -1,7 +1,7 @@ GitHub F# Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:41Z + 2024-08-22T01:29:44Z Daily Trending of F# in GitHub \ No newline at end of file diff --git a/f*/daily/index.xml b/f*/daily/index.xml index 74a23e60bc9..c0da1836c20 100644 --- a/f*/daily/index.xml +++ b/f*/daily/index.xml @@ -1,7 +1,7 @@ GitHub F* Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:40Z + 2024-08-22T01:29:43Z Daily Trending of F* in GitHub \ No newline at end of file diff --git a/factor/daily/index.xml b/factor/daily/index.xml index e7ee21077c3..8d0e147944a 100644 --- a/factor/daily/index.xml +++ b/factor/daily/index.xml @@ -1,7 +1,7 @@ GitHub Factor Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:40Z + 2024-08-22T01:29:44Z Daily Trending of Factor in GitHub \ No newline at end of file diff --git a/fancy/daily/index.xml b/fancy/daily/index.xml index 802197ff005..b12446da64a 100644 --- a/fancy/daily/index.xml +++ b/fancy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fancy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:42Z + 2024-08-22T01:29:45Z Daily Trending of Fancy in GitHub \ No newline at end of file diff --git a/fantom/daily/index.xml b/fantom/daily/index.xml index 942ae69d2be..022269dd935 100644 --- a/fantom/daily/index.xml +++ b/fantom/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fantom Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:42Z + 2024-08-22T01:29:46Z Daily Trending of Fantom in GitHub \ No newline at end of file diff --git a/faust/daily/index.xml b/faust/daily/index.xml index 72a5df2bc5d..aa1270af4b0 100644 --- a/faust/daily/index.xml +++ b/faust/daily/index.xml @@ -1,7 +1,7 @@ GitHub Faust Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:42Z + 2024-08-22T01:29:45Z Daily Trending of Faust in GitHub \ No newline at end of file diff --git a/fennel/daily/index.xml b/fennel/daily/index.xml index ce5a315e9c6..c57d095b3ed 100644 --- a/fennel/daily/index.xml +++ b/fennel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fennel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:43Z + 2024-08-22T01:29:46Z Daily Trending of Fennel in GitHub \ No newline at end of file diff --git a/figlet-font/daily/index.xml b/figlet-font/daily/index.xml index 6fce7fc9fac..2349986107f 100644 --- a/figlet-font/daily/index.xml +++ b/figlet-font/daily/index.xml @@ -1,7 +1,7 @@ GitHub FIGlet Font Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:43Z + 2024-08-22T01:29:47Z Daily Trending of FIGlet Font in GitHub \ No newline at end of file diff --git a/filebench-wml/daily/index.xml b/filebench-wml/daily/index.xml index 9b11796202d..d7cc9801a39 100644 --- a/filebench-wml/daily/index.xml +++ b/filebench-wml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Filebench WML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:44Z + 2024-08-22T01:29:47Z Daily Trending of Filebench WML in GitHub \ No newline at end of file diff --git a/filterscript/daily/index.xml b/filterscript/daily/index.xml index d1ffaafb592..5d7153684b0 100644 --- a/filterscript/daily/index.xml +++ b/filterscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Filterscript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:43Z + 2024-08-22T01:29:47Z Daily Trending of Filterscript in GitHub \ No newline at end of file diff --git a/fish/daily/index.xml b/fish/daily/index.xml index 8834b3a80c7..2acceb35819 100644 --- a/fish/daily/index.xml +++ b/fish/daily/index.xml @@ -1,7 +1,7 @@ GitHub fish Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:45Z + 2024-08-22T01:29:48Z Daily Trending of fish in GitHub \ No newline at end of file diff --git a/fluent/daily/index.xml b/fluent/daily/index.xml index de4379d197a..c858da93f49 100644 --- a/fluent/daily/index.xml +++ b/fluent/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fluent Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:46Z + 2024-08-22T01:29:49Z Daily Trending of Fluent in GitHub \ No newline at end of file diff --git a/flux/daily/index.xml b/flux/daily/index.xml index a40a880117f..f3535d5262b 100644 --- a/flux/daily/index.xml +++ b/flux/daily/index.xml @@ -1,7 +1,7 @@ GitHub FLUX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:45Z + 2024-08-22T01:29:49Z Daily Trending of FLUX in GitHub \ No newline at end of file diff --git a/formatted/daily/index.xml b/formatted/daily/index.xml index 3dec8d22fe6..d7053b70068 100644 --- a/formatted/daily/index.xml +++ b/formatted/daily/index.xml @@ -1,7 +1,7 @@ GitHub Formatted Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:45Z + 2024-08-22T01:29:48Z Daily Trending of Formatted in GitHub \ No newline at end of file diff --git a/forth/daily/index.xml b/forth/daily/index.xml index 111689d1cb1..713cd4d9b7a 100644 --- a/forth/daily/index.xml +++ b/forth/daily/index.xml @@ -1,7 +1,7 @@ GitHub Forth Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:47Z + 2024-08-22T01:29:50Z Daily Trending of Forth in GitHub \ No newline at end of file diff --git a/fortran-free-form/daily/index.xml b/fortran-free-form/daily/index.xml index c645cf06f9b..1d035279d3f 100644 --- a/fortran-free-form/daily/index.xml +++ b/fortran-free-form/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fortran Free Form Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:47Z + 2024-08-22T01:29:50Z Daily Trending of Fortran Free Form in GitHub \ No newline at end of file diff --git a/fortran/daily/index.xml b/fortran/daily/index.xml index b82165640f3..861fcf84c41 100644 --- a/fortran/daily/index.xml +++ b/fortran/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fortran Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:48Z + 2024-08-22T01:29:51Z Daily Trending of Fortran in GitHub \ No newline at end of file diff --git a/freebasic/daily/index.xml b/freebasic/daily/index.xml index ccc004a55eb..4fa220319d1 100644 --- a/freebasic/daily/index.xml +++ b/freebasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub FreeBasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:46Z + 2024-08-22T01:29:50Z Daily Trending of FreeBasic in GitHub \ No newline at end of file diff --git a/freemarker/daily/index.xml b/freemarker/daily/index.xml index e4e56820781..2539d67359c 100644 --- a/freemarker/daily/index.xml +++ b/freemarker/daily/index.xml @@ -1,7 +1,7 @@ GitHub FreeMarker Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:49Z + 2024-08-22T01:29:53Z Daily Trending of FreeMarker in GitHub \ No newline at end of file diff --git a/frege/daily/index.xml b/frege/daily/index.xml index 4084ee9561e..4d9ea705226 100644 --- a/frege/daily/index.xml +++ b/frege/daily/index.xml @@ -1,7 +1,7 @@ GitHub Frege Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:49Z + 2024-08-22T01:29:52Z Daily Trending of Frege in GitHub \ No newline at end of file diff --git a/futhark/daily/index.xml b/futhark/daily/index.xml index 0f26996226c..d10ed4ac628 100644 --- a/futhark/daily/index.xml +++ b/futhark/daily/index.xml @@ -1,7 +1,7 @@ GitHub Futhark Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:48Z + 2024-08-22T01:29:53Z Daily Trending of Futhark in GitHub \ No newline at end of file diff --git a/g-code/daily/index.xml b/g-code/daily/index.xml index 3aeb0422159..e5978b13865 100644 --- a/g-code/daily/index.xml +++ b/g-code/daily/index.xml @@ -1,7 +1,7 @@ GitHub G-code Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:49Z + 2024-08-22T01:29:52Z Daily Trending of G-code in GitHub \ No newline at end of file diff --git a/game-maker-language/daily/index.xml b/game-maker-language/daily/index.xml index a8046f603ee..459c9eb824f 100644 --- a/game-maker-language/daily/index.xml +++ b/game-maker-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Game Maker Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:50Z + 2024-08-22T01:29:54Z Daily Trending of Game Maker Language in GitHub \ No newline at end of file diff --git a/gaml/daily/index.xml b/gaml/daily/index.xml index 3e65c21a87b..0f3f46583a0 100644 --- a/gaml/daily/index.xml +++ b/gaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub GAML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:50Z + 2024-08-22T01:29:54Z Daily Trending of GAML in GitHub \ No newline at end of file diff --git a/gams/daily/index.xml b/gams/daily/index.xml index 042438f7e9c..940b95a3336 100644 --- a/gams/daily/index.xml +++ b/gams/daily/index.xml @@ -1,7 +1,7 @@ GitHub GAMS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:50Z + 2024-08-22T01:29:54Z Daily Trending of GAMS in GitHub \ No newline at end of file diff --git a/gap/daily/index.xml b/gap/daily/index.xml index 59aa22e161b..c330c7c2eec 100644 --- a/gap/daily/index.xml +++ b/gap/daily/index.xml @@ -1,7 +1,7 @@ GitHub GAP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:51Z + 2024-08-22T01:29:53Z Daily Trending of GAP in GitHub \ No newline at end of file diff --git a/gcc-machine-description/daily/index.xml b/gcc-machine-description/daily/index.xml index f4f0e7e5e25..fab75d4df04 100644 --- a/gcc-machine-description/daily/index.xml +++ b/gcc-machine-description/daily/index.xml @@ -1,7 +1,7 @@ GitHub GCC Machine Description Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:52Z + 2024-08-22T01:29:55Z Daily Trending of GCC Machine Description in GitHub \ No newline at end of file diff --git a/gdb/daily/index.xml b/gdb/daily/index.xml index f1365df5e06..ea5c9318bd8 100644 --- a/gdb/daily/index.xml +++ b/gdb/daily/index.xml @@ -1,7 +1,7 @@ GitHub GDB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:51Z + 2024-08-22T01:29:55Z Daily Trending of GDB in GitHub \ No newline at end of file diff --git a/gdscript/daily/index.xml b/gdscript/daily/index.xml index 761b17d3bc3..2f9d8d13ced 100644 --- a/gdscript/daily/index.xml +++ b/gdscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub GDScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:52Z + 2024-08-22T01:29:56Z Daily Trending of GDScript in GitHub \ No newline at end of file diff --git a/gedcom/daily/index.xml b/gedcom/daily/index.xml index 2d1d6c512c6..889d9a9b686 100644 --- a/gedcom/daily/index.xml +++ b/gedcom/daily/index.xml @@ -1,7 +1,7 @@ GitHub GEDCOM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:52Z + 2024-08-22T01:29:55Z Daily Trending of GEDCOM in GitHub \ No newline at end of file diff --git a/gemfile.lock/daily/index.xml b/gemfile.lock/daily/index.xml index 873f6949122..43eb7d05dcd 100644 --- a/gemfile.lock/daily/index.xml +++ b/gemfile.lock/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gemfile.lock Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:54Z + 2024-08-22T01:29:57Z Daily Trending of Gemfile.lock in GitHub \ No newline at end of file diff --git a/genie/daily/index.xml b/genie/daily/index.xml index 66f96208912..2a93389abd3 100644 --- a/genie/daily/index.xml +++ b/genie/daily/index.xml @@ -1,7 +1,7 @@ GitHub Genie Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:56Z + 2024-08-22T01:29:59Z Daily Trending of Genie in GitHub \ No newline at end of file diff --git a/genshi/daily/index.xml b/genshi/daily/index.xml index faf07ad6a4f..af6e2e411c1 100644 --- a/genshi/daily/index.xml +++ b/genshi/daily/index.xml @@ -1,7 +1,7 @@ GitHub Genshi Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:55Z + 2024-08-22T01:29:58Z Daily Trending of Genshi in GitHub \ No newline at end of file diff --git a/gentoo-ebuild/daily/index.xml b/gentoo-ebuild/daily/index.xml index ffb671719a3..d62be4cb459 100644 --- a/gentoo-ebuild/daily/index.xml +++ b/gentoo-ebuild/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gentoo Ebuild Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:55Z + 2024-08-22T01:29:58Z Daily Trending of Gentoo Ebuild in GitHub \ No newline at end of file diff --git a/gentoo-eclass/daily/index.xml b/gentoo-eclass/daily/index.xml index 6b43ce1e624..862601e307f 100644 --- a/gentoo-eclass/daily/index.xml +++ b/gentoo-eclass/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gentoo Eclass Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:55Z + 2024-08-22T01:29:59Z Daily Trending of Gentoo Eclass in GitHub \ No newline at end of file diff --git a/gerber-image/daily/index.xml b/gerber-image/daily/index.xml index 8448701afa6..f2b704d6cbe 100644 --- a/gerber-image/daily/index.xml +++ b/gerber-image/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gerber Image Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:57Z + 2024-08-22T01:30:00Z Daily Trending of Gerber Image in GitHub \ No newline at end of file diff --git a/gettext-catalog/daily/index.xml b/gettext-catalog/daily/index.xml index bcece88193b..e74ab228f45 100644 --- a/gettext-catalog/daily/index.xml +++ b/gettext-catalog/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gettext Catalog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:56Z + 2024-08-22T01:30:01Z Daily Trending of Gettext Catalog in GitHub \ No newline at end of file diff --git a/gherkin/daily/index.xml b/gherkin/daily/index.xml index 50f82f121d4..c321db8d270 100644 --- a/gherkin/daily/index.xml +++ b/gherkin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gherkin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:57Z + 2024-08-22T01:30:00Z Daily Trending of Gherkin in GitHub \ No newline at end of file diff --git a/git-attributes/daily/index.xml b/git-attributes/daily/index.xml index da08957cb80..c62a40cfb6e 100644 --- a/git-attributes/daily/index.xml +++ b/git-attributes/daily/index.xml @@ -1,7 +1,7 @@ GitHub Git Attributes Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:56Z + 2024-08-22T01:30:00Z Daily Trending of Git Attributes in GitHub \ No newline at end of file diff --git a/git-config/daily/index.xml b/git-config/daily/index.xml index 4a010a6aa69..6e834342baf 100644 --- a/git-config/daily/index.xml +++ b/git-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Git Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:58Z + 2024-08-22T01:30:02Z Daily Trending of Git Config in GitHub \ No newline at end of file diff --git a/gleam/daily/index.xml b/gleam/daily/index.xml index 6b35e96c2e2..efab4a03fbd 100644 --- a/gleam/daily/index.xml +++ b/gleam/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gleam Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:58Z + 2024-08-22T01:30:02Z Daily Trending of Gleam in GitHub \ No newline at end of file diff --git a/glsl/daily/index.xml b/glsl/daily/index.xml index b8fa3935e4e..e4a907f78c7 100644 --- a/glsl/daily/index.xml +++ b/glsl/daily/index.xml @@ -1,7 +1,7 @@ GitHub GLSL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:00Z + 2024-08-22T01:30:04Z Daily Trending of GLSL in GitHub \ No newline at end of file diff --git a/glyph-bitmap-distribution-format/daily/index.xml b/glyph-bitmap-distribution-format/daily/index.xml index d5702ca55d3..9db0fa72818 100644 --- a/glyph-bitmap-distribution-format/daily/index.xml +++ b/glyph-bitmap-distribution-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Glyph Bitmap Distribution Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:00Z + 2024-08-22T01:30:03Z Daily Trending of Glyph Bitmap Distribution Format in GitHub \ No newline at end of file diff --git a/glyph/daily/index.xml b/glyph/daily/index.xml index cab9353071d..4daf0b6d439 100644 --- a/glyph/daily/index.xml +++ b/glyph/daily/index.xml @@ -1,7 +1,7 @@ GitHub Glyph Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:00Z + 2024-08-22T01:30:03Z Daily Trending of Glyph in GitHub \ No newline at end of file diff --git a/gn/daily/index.xml b/gn/daily/index.xml index 9f32aae7ddd..a594dc93c64 100644 --- a/gn/daily/index.xml +++ b/gn/daily/index.xml @@ -1,7 +1,7 @@ GitHub GN Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:29:59Z + 2024-08-22T01:30:03Z Daily Trending of GN in GitHub \ No newline at end of file diff --git a/gnuplot/daily/index.xml b/gnuplot/daily/index.xml index a75813ec46e..4ed2813b2fd 100644 --- a/gnuplot/daily/index.xml +++ b/gnuplot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gnuplot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:01Z + 2024-08-22T01:30:04Z Daily Trending of Gnuplot in GitHub \ No newline at end of file diff --git a/go-checksums/daily/index.xml b/go-checksums/daily/index.xml index 111377f3368..2f1112f9276 100644 --- a/go-checksums/daily/index.xml +++ b/go-checksums/daily/index.xml @@ -1,7 +1,7 @@ GitHub Go Checksums Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:01Z + 2024-08-22T01:30:05Z Daily Trending of Go Checksums in GitHub \ No newline at end of file diff --git a/go-module/daily/index.xml b/go-module/daily/index.xml index 0a5a7499e94..ebaf935a545 100644 --- a/go-module/daily/index.xml +++ b/go-module/daily/index.xml @@ -1,7 +1,7 @@ GitHub Go Module Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:02Z + 2024-08-22T01:30:05Z Daily Trending of Go Module in GitHub \ No newline at end of file diff --git a/go/daily/index.xml b/go/daily/index.xml index c09d8bdbb13..343f2640816 100644 --- a/go/daily/index.xml +++ b/go/daily/index.xml @@ -1,7 +1,21 @@ GitHub Go Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:03Z + 2024-08-22T01:30:06Z Daily Trending of Go in GitHub + + sourcegraph/sourcegraph-public-snapshot + 2024-08-22T01:30:06Z + tag:github.com,2024-08-22:/sourcegraph/sourcegraph-public-snapshot + + <p>Code AI platform with Code Search & Cody</p><hr><p align="center"> <a href="https://sourcegraph.com/" target="_blank"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://p21.p4.n0.cdn.getcloudapp.com/items/6qub2y6g/8c25cf68-2715-4f0e-9de6-26292fad604f.svg" width="50%"> <img src="https://p21.p4.n0.cdn.getcloudapp.com/items/12u7NWXL/5e21725d-6e84-4ccd-8300-27bf9a050416.svg?sanitize=true" width="50%"> </picture></a> </p> <p align="center"> <a href="https://sourcegraph.com/docs">Docs</a> • <a href="https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/CONTRIBUTING.md">Contributing</a> • <a href="https://twitter.com/sourcegraph">Twitter</a> • <a href="https://discord.gg/s2qDtYGnAE">Discord</a> <br><br> <a href="https://buildkite.com/sourcegraph/sourcegraph"> <img src="https://badge.buildkite.com/00bbe6fa9986c78b8e8591cffeb0b0f2e8c4bb610d7e339ff6.svg?branch=main" alt="Build status"> </a> <a href="https://api.securityscorecards.dev/projects/github.com/sourcegraph/sourcegraph"> <img src="https://img.shields.io/ossf-scorecard/github.com/sourcegraph/sourcegraph?label=openssf%20scorecard" alt="Scorecard"> </a> <a href="https://github.com/sourcegraph/sourcegraph/releases/"> <img src="https://img.shields.io/github/release/sourcegraph/Sourcegraph.svg?sanitize=true" alt="Latest release"> </a> <a href="https://srcgr.ph/discord"> <img src="https://img.shields.io/discord/969688426372825169?color=5765F2" alt="Discord"> </a> <a href="https://github.com/sourcegraph/sourcegraph/contributors/"> <img src="https://img.shields.io/github/contributors/sourcegraph/Sourcegraph.svg?color=000000" alt="Contributors"> </a> </p> <br> <p><strong>Sourcegraph makes it easy to read, write, and fix code—even in big, complex codebases.</strong></p> <ul> <li><strong>Code search:</strong> Search all of your repositories across all branches and all code hosts.</li> <li><strong>Code intelligence:</strong> Navigate code, find references, see code owners, trace history, and more.</li> <li><strong>Fix and refactor:</strong> Roll out large-scale changes to many repositories at once and track big migrations.</li> </ul> <h2>Getting started</h2> <ul> <li><a href="https://sourcegraph.com/docs/">Use Sourcegraph on the cloud or self-hosted</a></li> <li><a href="https://sourcegraph.com/search">Sourcegraph.com public code search</a></li> </ul> <p><br><br></p> <img src="https://sourcegraph.com/home/banner.png"> <h2>Development</h2> <p>Refer to the <a href="https://docs-legacy.sourcegraph.com/dev">Developing Sourcegraph guide</a> to get started.</p> <h3>Documentation</h3> <p>The <code>doc</code> directory has additional documentation for developing and understanding Sourcegraph:</p> <ul> <li><a href="https://raw.githubusercontent.com/sourcegraph/sourcegraph-public-snapshot/main/doc/dev/background-information/architecture/index.md">Architecture</a>: high-level architecture</li> <li><a href="https://raw.githubusercontent.com/sourcegraph/sourcegraph-public-snapshot/main/doc/dev/background-information/postgresql.md">Database setup</a>: database best practices</li> <li><a href="https://raw.githubusercontent.com/sourcegraph/sourcegraph-public-snapshot/main/doc/dev/background-information/languages/go.md">Go style guide</a></li> <li><a href="https://handbook.sourcegraph.com/engineering/product_documentation">Documentation style guide</a></li> <li><a href="https://raw.githubusercontent.com/sourcegraph/sourcegraph-public-snapshot/main/doc/api/graphql/index.md">GraphQL API</a>: useful tips when modifying the GraphQL API</li> <li><a href="https://raw.githubusercontent.com/sourcegraph/sourcegraph-public-snapshot/main/CONTRIBUTING.md">Contributing</a></li> </ul> <h2>License</h2> <p>This repository contains primarily non-OSS-licensed files. See <a href="https://raw.githubusercontent.com/sourcegraph/sourcegraph-public-snapshot/main/LICENSE">LICENSE</a>.</p> <p>Copyright (c) 2018-present Sourcegraph Inc.</p> + + + adnanh/webhook + 2024-08-22T01:30:06Z + tag:github.com,2024-08-22:/adnanh/webhook + + <p>webhook is a lightweight incoming webhook server to run shell commands</p><hr><h1>What is webhook? <img src="https://github.com/adnanh/webhook/workflows/build/badge.svg?sanitize=true" alt="build-status"></h1> <img src="https://github.com/adnanh/webhook/raw/development/docs/logo/logo-128x128.png" alt="Webhook" align="left"> <p><a href="https://github.com/adnanh/webhook">webhook</a> is a lightweight configurable tool written in Go, that allows you to easily create HTTP endpoints (hooks) on your server, which you can use to execute configured commands. You can also pass data from the HTTP request (such as headers, payload or query variables) to your commands. <a href="https://github.com/adnanh/webhook">webhook</a> also allows you to specify rules which have to be satisfied in order for the hook to be triggered.</p> <p>For example, if you're using Github or Bitbucket, you can use <a href="https://github.com/adnanh/webhook">webhook</a> to set up a hook that runs a redeploy script for your project on your staging server, whenever you push changes to the master branch of your project.</p> <p>If you use Mattermost or Slack, you can set up an "Outgoing webhook integration" or "Slash command" to run various commands on your server, which can then report back directly to you or your channels using the "Incoming webhook integrations", or the appropriate response body.</p> <p><a href="https://github.com/adnanh/webhook">webhook</a> aims to do nothing more than it should do, and that is:</p> <ol> <li>receive the request,</li> <li>parse the headers, payload and query variables,</li> <li>check if the specified rules for the hook are satisfied,</li> <li>and finally, pass the specified arguments to the specified command via command line arguments or via environment variables.</li> </ol> <p>Everything else is the responsibility of the command's author.</p> <h2>Not what you're looking for?</h2> <table> <thead> <tr> <th align="center"><a href="https://www.hookdoo.com/?github"><img src="https://hookdoo.com/img/Hookdoo_Logo_1.png" height="48" alt="hookdoo"></a></th> <th align="center"><a href="https://www.hookdeck.com/?ref=adnanh-webhook"><img src="http://hajdarevic.net/hookdeck-logo.svg?sanitize=true" height="17" alt="hookdeck"></a></th> </tr> </thead> <tbody> <tr> <td align="center">Scriptable webhook gateway to safely run your custom builds, deploys, and proxy scripts on your servers.</td> <td align="center">Inspect, monitor and replay webhooks without the back and forth troubleshooting.</td> </tr> </tbody> </table> <h1>Getting started</h1> <h2>Installation</h2> <h3>Building from source</h3> <p>To get started, first make sure you've properly set up your <a href="http://golang.org/doc/install">Go</a> 1.14 or newer environment and then run</p> <pre><code class="language-bash">$ go build github.com/adnanh/webhook </code></pre> <p>to build the latest version of the <a href="https://github.com/adnanh/webhook">webhook</a>.</p> <h3>Using package manager</h3> <h4>Snap store</h4> <p><a href="https://snapcraft.io/webhook"><img src="https://snapcraft.io/static/images/badges/en/snap-store-white.svg?sanitize=true" alt="Get it from the Snap Store"></a></p> <h4>Ubuntu</h4> <p>If you are using Ubuntu linux (17.04 or later), you can install webhook using <code>sudo apt-get install webhook</code> which will install community packaged version.</p> <h4>Debian</h4> <p>If you are using Debian linux ("stretch" or later), you can install webhook using <code>sudo apt-get install webhook</code> which will install community packaged version (thanks <a href="https://github.com/freeekanayaka">@freeekanayaka</a>) from <a href="https://packages.debian.org/sid/webhook">https://packages.debian.org/sid/webhook</a></p> <h4>FreeBSD</h4> <p>If you are using FreeBSD, you can install webhook using <code>pkg install webhook</code>.</p> <h3>Download prebuilt binaries</h3> <p>Prebuilt binaries for different architectures are available at <a href="https://github.com/adnanh/webhook/releases">GitHub Releases</a>.</p> <h2>Configuration</h2> <p>Next step is to define some hooks you want <a href="https://github.com/adnanh/webhook">webhook</a> to serve. <a href="https://github.com/adnanh/webhook">webhook</a> supports JSON or YAML configuration files, but we'll focus primarily on JSON in the following example. Begin by creating an empty file named <code>hooks.json</code>. This file will contain an array of hooks the <a href="https://github.com/adnanh/webhook">webhook</a> will serve. Check <a href="https://raw.githubusercontent.com/adnanh/webhook/master/docs/Hook-Definition.md">Hook definition page</a> to see the detailed description of what properties a hook can contain, and how to use them.</p> <p>Let's define a simple hook named <code>redeploy-webhook</code> that will run a redeploy script located in <code>/var/scripts/redeploy.sh</code>. Make sure that your bash script has <code>#!/bin/sh</code> shebang on top.</p> <p>Our <code>hooks.json</code> file will now look like this:</p> <pre><code class="language-json">[ { "id": "redeploy-webhook", "execute-command": "/var/scripts/redeploy.sh", "command-working-directory": "/var/webhook" } ] </code></pre> <p><strong>NOTE:</strong> If you prefer YAML, the equivalent <code>hooks.yaml</code> file would be:</p> <pre><code class="language-yaml">- id: redeploy-webhook execute-command: "/var/scripts/redeploy.sh" command-working-directory: "/var/webhook" </code></pre> <p>You can now run <a href="https://github.com/adnanh/webhook">webhook</a> using</p> <pre><code class="language-bash">$ /path/to/webhook -hooks hooks.json -verbose </code></pre> <p>It will start up on default port 9000 and will provide you with one HTTP endpoint</p> <pre><code class="language-http">http://yourserver:9000/hooks/redeploy-webhook </code></pre> <p>Check <a href="https://raw.githubusercontent.com/adnanh/webhook/master/docs/Webhook-Parameters.md">webhook parameters page</a> to see how to override the ip, port and other settings such as hook hotreload, verbose output, etc, when starting the <a href="https://github.com/adnanh/webhook">webhook</a>.</p> <p>By performing a simple HTTP GET or POST request to that endpoint, your specified redeploy script would be executed. Neat!</p> <p>However, hook defined like that could pose a security threat to your system, because anyone who knows your endpoint, can send a request and execute your command. To prevent that, you can use the <code>"trigger-rule"</code> property for your hook, to specify the exact circumstances under which the hook would be triggered. For example, you can use them to add a secret that you must supply as a parameter in order to successfully trigger the hook. Please check out the <a href="https://raw.githubusercontent.com/adnanh/webhook/master/docs/Hook-Rules.md">Hook rules page</a> for detailed list of available rules and their usage.</p> <h2>Multipart Form Data</h2> <p><a href="https://github.com/adnanh/webhook">webhook</a> provides limited support the parsing of multipart form data. Multipart form data can contain two types of parts: values and files. All form <em>values</em> are automatically added to the <code>payload</code> scope. Use the <code>parse-parameters-as-json</code> settings to parse a given value as JSON. All files are ignored unless they match one of the following criteria:</p> <ol> <li>The <code>Content-Type</code> header is <code>application/json</code>.</li> <li>The part is named in the <code>parse-parameters-as-json</code> setting.</li> </ol> <p>In either case, the given file part will be parsed as JSON and added to the <code>payload</code> map.</p> <h2>Templates</h2> <p><a href="https://github.com/adnanh/webhook">webhook</a> can parse the hooks configuration file as a Go template when given the <code>-template</code> <a href="https://raw.githubusercontent.com/adnanh/webhook/master/docs/Webhook-Parameters.md">CLI parameter</a>. See the <a href="https://raw.githubusercontent.com/adnanh/webhook/master/docs/Templates.md">Templates page</a> for more details on template usage.</p> <h2>Using HTTPS</h2> <p><a href="https://github.com/adnanh/webhook">webhook</a> by default serves hooks using http. If you want <a href="https://github.com/adnanh/webhook">webhook</a> to serve secure content using https, you can use the <code>-secure</code> flag while starting <a href="https://github.com/adnanh/webhook">webhook</a>. Files containing a certificate and matching private key for the server must be provided using the <code>-cert /path/to/cert.pem</code> and <code>-key /path/to/key.pem</code> flags. If the certificate is signed by a certificate authority, the cert file should be the concatenation of the server's certificate followed by the CA's certificate.</p> <p>TLS version and cipher suite selection flags are available from the command line. To list available cipher suites, use the <code>-list-cipher-suites</code> flag. The <code>-tls-min-version</code> flag can be used with <code>-list-cipher-suites</code>.</p> <h2>CORS Headers</h2> <p>If you want to set CORS headers, you can use the <code>-header name=value</code> flag while starting <a href="https://github.com/adnanh/webhook">webhook</a> to set the appropriate CORS headers that will be returned with each response.</p> <h2>Interested in running webhook inside of a Docker container?</h2> <p>You can use one of the following Docker images, or create your own (please read <a href="https://github.com/adnanh/webhook/issues/63">this discussion</a>):</p> <ul> <li><a href="https://github.com/almir/docker-webhook">almir/webhook</a></li> <li><a href="https://github.com/Roxedus/docker-webhook">roxedus/webhook</a></li> <li><a href="https://github.com/thecatlady/docker-webhook">thecatlady/webhook</a></li> <li><a href="https://hub.docker.com/r/lwlook/webhook">lwlook/webhook</a> - This setup allows direct access to the Docker host, providing a streamlined and efficient way to manage webhooks.</li> </ul> <h2>Examples</h2> <p>Check out <a href="https://raw.githubusercontent.com/adnanh/webhook/master/docs/Hook-Examples.md">Hook examples page</a> for more complex examples of hooks.</p> <h3>Guides featuring webhook</h3> <ul> <li><a href="https://gitlab.com/-/snippets/1972594">Plex 2 Telegram</a> by <a href="https://github.com/psyhomb">@psyhomb</a></li> <li><a href="https://sites.google.com/site/mrxpalmeiras/more/jira-webhooks">Webhook &amp; JIRA</a> by <a href="https://github.com/perfecto25">@perfecto25</a></li> <li><a href="http://jpmens.net/2017/10/23/trigger-awx-job-runs-on-scm-commit/">Trigger Ansible AWX job runs on SCM (e.g. git) commit</a> by <a href="http://mens.de/">@jpmens</a></li> <li><a href="https://davidauthier.wearemd.com/blog/deploy-using-github-webhooks.html">Deploy using GitHub webhooks</a> by <a href="https://davidauthier.wearemd.com">@awea</a></li> <li><a href="https://willbrowning.me/setting-up-automatic-deployment-and-builds-using-webhooks/">Setting up Automatic Deployment and Builds Using Webhooks</a> by <a href="https://willbrowning.me/about/">Will Browning</a></li> <li><a href="https://webhookrelay.com/blog/2018/07/17/auto-deploy-on-git-push/">Auto deploy your Node.js app on push to GitHub in 3 simple steps</a> by Karolis Rusenas</li> <li><a href="https://www.linode.com/docs/applications/configuration-management/automate-a-static-site-deployment-with-salt/">Automate Static Site Deployments with Salt, Git, and Webhooks</a> by <a href="https://www.linode.com">Linode</a></li> <li><a href="https://blogs.oracle.com/weblogicserver/using-prometheus-to-automatically-scale-weblogic-clusters-on-kubernetes-v5">Using Prometheus to Automatically Scale WebLogic Clusters on Kubernetes</a> by <a href="https://blogs.oracle.com/author/9a4fe754-1cc2-4c64-95fc-360642b62927">Marina Kogan</a></li> <li><a href="https://labs.lacnic.net/a-new-platform-for-lacniclabs/">Github Pages and Jekyll - A New Platform for LACNIC Labs</a> by <a href="https://twitter.com/carlosm3011">Carlos Martínez Cagnazzo</a></li> <li><a href="https://www.alibabacloud.com/blog/how-to-deploy-react-apps-using-webhooks-and-integrating-slack-on-ubuntu_594116">How to Deploy React Apps Using Webhooks and Integrating Slack on Ubuntu</a> by Arslan Ud Din Shafiq</li> <li><a href="https://ihateithe.re/2018/01/private-webhooks/">Private webhooks</a> by <a href="https://ihateithe.re/colophon/">Thomas</a></li> <li><a href="https://medium.com/@draketech/adventures-in-webhooks-2d6584501c62">Adventures in webhooks</a> by <a href="https://medium.com/@draketech">Drake</a></li> <li><a href="http://notes.spencerlyon.com/2016/01/04/github-pro-tips/">GitHub pro tips</a> by <a href="http://notes.spencerlyon.com/">Spencer Lyon</a></li> <li><a href="https://www.instructables.com/id/XiaoMi-Vacuum-Amazon-Button-Dash-Cleaning/">XiaoMi Vacuum + Amazon Button = Dash Cleaning</a> by <a href="https://www.instructables.com/member/c0mmensal/">c0mmensal</a></li> <li><a href="https://maximorlov.com/automated-deployments-from-github-with-webhook/">Set up Automated Deployments From Github With Webhook</a> by <a href="https://twitter.com/_maximization">Maxim Orlov</a></li> <li><a href="https://freebsdfoundation.org/kick-me-now-with-webhooks/">Kick Me Now with Webhooks</a> By Dave Cottlehuber</li> <li>VIDEO: <a href="https://www.youtube.com/watch?v=Qhn-lXjyrZA&amp;feature=youtu.be">Gitlab CI/CD configuration using Docker and adnanh/webhook to deploy on VPS - Tutorial #1</a> by <a href="https://www.youtube.com/channel/UCH4XJf2BZ_52fbf8fOBMF3w">Yes! Let's Learn Software Engineering</a></li> <li><a href="https://anksus.me/blog/integrate-automatic-deployment-in-20-minutes-using-webhooks">Integrate automatic deployment in 20 minutes using webhooks + Nginx setup</a> by <a href="https://github.com/Anksus">Anksus</a></li> <li><a href="https://by.arran.nz/posts/code/webhook-deploy/">Automatically redeploy your static blog with Gitea, Uberspace &amp; Webhook</a> by <a href="https://arran.nz">Arran</a></li> <li><a href="https://osc.garden/blog/updating-site-with-webhook/">Automatically Updating My Zola Site Using a Webhook</a> by <a href="https://osc.garden/">Óscar Fernández</a></li> <li>...</li> <li>Want to add your own? Open an Issue or create a PR :-)</li> </ul> <h2>Community Contributions</h2> <p>See the <a href="https://github.com/adnanh/webhook-contrib">webhook-contrib</a> repository for a collections of tools and helpers related to <a href="https://github.com/adnanh/webhook">webhook</a> that have been contributed by the <a href="https://github.com/adnanh/webhook">webhook</a> community.</p> <h2>Need help?</h2> <p>Check out <a href="https://github.com/adnanh/webhook/issues">existing issues</a> to see if someone else also had the same problem, or <a href="https://github.com/adnanh/webhook/issues/new">open a new one</a>.</p> <h1>Support active development</h1> <h2>Sponsors</h2> <h2><a href="https://www.digitalocean.com/?ref=webhook"><img src="http://www.hajdarevic.net/DO_Logo_Horizontal_Blue.png" alt="DigitalOcean" width="250"></a></h2> <p><a href="https://www.digitalocean.com/?ref=webhook">DigitalOcean</a> is a simple and robust cloud computing platform, designed for developers.</p> <h2><a href="https://www.browserstack.com/?ref=webhook"><img src="http://www.hajdarevic.net/browserstack.svg?sanitize=true" alt="BrowserStack" width="250"></a></h2> <p><a href="https://www.browserstack.com/?ref=webhook">BrowserStack</a> is a cloud-based cross-browser testing tool that enables developers to test their websites across various browsers on different operating systems and mobile devices, without requiring users to install virtual machines, devices or emulators.</p> <hr> <p>Support this project by becoming a sponsor. Your logo will show up here with a link to your website.</p> <p><a href="https://opencollective.com/webhook/sponsor/0/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/0/avatar.svg?sanitize=true"></a> <a href="https://opencollective.com/webhook/sponsor/1/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/1/avatar.svg?sanitize=true"></a> <a href="https://opencollective.com/webhook/sponsor/2/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/2/avatar.svg?sanitize=true"></a> <a href="https://opencollective.com/webhook/sponsor/3/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/3/avatar.svg?sanitize=true"></a> <a href="https://opencollective.com/webhook/sponsor/4/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/4/avatar.svg?sanitize=true"></a> <a href="https://opencollective.com/webhook/sponsor/5/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/5/avatar.svg?sanitize=true"></a> <a href="https://opencollective.com/webhook/sponsor/6/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/6/avatar.svg?sanitize=true"></a> <a href="https://opencollective.com/webhook/sponsor/7/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/7/avatar.svg?sanitize=true"></a> <a href="https://opencollective.com/webhook/sponsor/8/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/8/avatar.svg?sanitize=true"></a> <a href="https://opencollective.com/webhook/sponsor/9/website" target="_blank"><img src="https://opencollective.com/webhook/sponsor/9/avatar.svg?sanitize=true"></a></p> <h2>By contributing</h2> <p>This project exists thanks to all the people who contribute. <a href="https://raw.githubusercontent.com/adnanh/webhook/master/CONTRIBUTING.md">Contribute!</a>. <a href="https://raw.githubusercontent.com/adnanh/webhook/master/graphs/contributors"><img src="https://opencollective.com/webhook/contributors.svg?width=890"></a></p> <h2>By giving money</h2> <ul> <li><a href="https://opencollective.com/webhook#backer">OpenCollective Backer</a></li> <li><a href="https://opencollective.com/webhook#sponsor">OpenCollective Sponsor</a></li> <li><a href="https://paypal.me/hookdoo">PayPal</a></li> <li><a href="https://www.patreon.com/webhook">Patreon</a></li> <li><a href="https://faircode.io/product/webhook?utm_source=badge&amp;utm_medium=badgelarge&amp;utm_campaign=webhook">Faircode</a></li> <li><a href="https://flattr.com/submit/auto?user_id=adnanh&amp;url=https%3A%2F%2Fwww.github.com%2Fadnanh%2Fwebhook">Flattr</a></li> </ul> <hr> <p>Thank you to all our backers!</p> <p><a href="https://opencollective.com/webhook#backers" target="_blank"><img src="https://opencollective.com/webhook/backers.svg?width=890"></a></p> <h1>License</h1> <p>The MIT License (MIT)</p> <p>Copyright (c) 2015 Adnan Hajdarevic <a href="mailto:adnanh@gmail.com">adnanh@gmail.com</a></p> <p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p> <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p> <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p> + \ No newline at end of file diff --git a/golo/daily/index.xml b/golo/daily/index.xml index bd0e16fbeed..0ae7e3ba868 100644 --- a/golo/daily/index.xml +++ b/golo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Golo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:10Z + 2024-08-22T01:30:16Z Daily Trending of Golo in GitHub \ No newline at end of file diff --git a/gosu/daily/index.xml b/gosu/daily/index.xml index 35feb643098..23ace7b54a1 100644 --- a/gosu/daily/index.xml +++ b/gosu/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gosu Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:09Z + 2024-08-22T01:30:17Z Daily Trending of Gosu in GitHub \ No newline at end of file diff --git a/grace/daily/index.xml b/grace/daily/index.xml index 8d8ffacd378..02972e424a0 100644 --- a/grace/daily/index.xml +++ b/grace/daily/index.xml @@ -1,7 +1,7 @@ GitHub Grace Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:11Z + 2024-08-22T01:30:18Z Daily Trending of Grace in GitHub \ No newline at end of file diff --git a/gradle/daily/index.xml b/gradle/daily/index.xml index 9c3858ccf0c..453b5566f89 100644 --- a/gradle/daily/index.xml +++ b/gradle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gradle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:11Z + 2024-08-22T01:30:18Z Daily Trending of Gradle in GitHub \ No newline at end of file diff --git a/grammatical-framework/daily/index.xml b/grammatical-framework/daily/index.xml index 5a9c076078f..d5ef91098c5 100644 --- a/grammatical-framework/daily/index.xml +++ b/grammatical-framework/daily/index.xml @@ -1,7 +1,7 @@ GitHub Grammatical Framework Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:12Z + 2024-08-22T01:30:18Z Daily Trending of Grammatical Framework in GitHub \ No newline at end of file diff --git a/graph-modeling-language/daily/index.xml b/graph-modeling-language/daily/index.xml index 0bd44520eb5..4ddbf1120cd 100644 --- a/graph-modeling-language/daily/index.xml +++ b/graph-modeling-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Graph Modeling Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:12Z + 2024-08-22T01:30:19Z Daily Trending of Graph Modeling Language in GitHub \ No newline at end of file diff --git a/graphql/daily/index.xml b/graphql/daily/index.xml index 6619c79f8da..bfd3c4eb71f 100644 --- a/graphql/daily/index.xml +++ b/graphql/daily/index.xml @@ -1,7 +1,7 @@ GitHub GraphQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:13Z + 2024-08-22T01:30:20Z Daily Trending of GraphQL in GitHub \ No newline at end of file diff --git a/graphviz-(dot)/daily/index.xml b/graphviz-(dot)/daily/index.xml index 795449b461d..67881127933 100644 --- a/graphviz-(dot)/daily/index.xml +++ b/graphviz-(dot)/daily/index.xml @@ -1,7 +1,7 @@ GitHub Graphviz (DOT) Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:13Z + 2024-08-22T01:30:19Z Daily Trending of Graphviz (DOT) in GitHub \ No newline at end of file diff --git a/groovy-server-pages/daily/index.xml b/groovy-server-pages/daily/index.xml index 4b9403b007f..e982b395f66 100644 --- a/groovy-server-pages/daily/index.xml +++ b/groovy-server-pages/daily/index.xml @@ -1,7 +1,7 @@ GitHub Groovy Server Pages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:14Z + 2024-08-22T01:30:21Z Daily Trending of Groovy Server Pages in GitHub \ No newline at end of file diff --git a/groovy/daily/index.xml b/groovy/daily/index.xml index 56bc1287f28..9dc516b705a 100644 --- a/groovy/daily/index.xml +++ b/groovy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Groovy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:13Z + 2024-08-22T01:30:20Z Daily Trending of Groovy in GitHub \ No newline at end of file diff --git a/gsc/daily/index.xml b/gsc/daily/index.xml index 3227dbb08c9..a9b35a7509b 100644 --- a/gsc/daily/index.xml +++ b/gsc/daily/index.xml @@ -1,7 +1,7 @@ GitHub GSC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:15Z + 2024-08-22T01:30:22Z Daily Trending of GSC in GitHub \ No newline at end of file diff --git a/hack/daily/index.xml b/hack/daily/index.xml index ca4d184fa07..d6c9109e0ef 100644 --- a/hack/daily/index.xml +++ b/hack/daily/index.xml @@ -1,7 +1,7 @@ GitHub Hack Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:15Z + 2024-08-22T01:30:22Z Daily Trending of Hack in GitHub \ No newline at end of file diff --git a/haml/daily/index.xml b/haml/daily/index.xml index c6d6f1e750d..51969c745b7 100644 --- a/haml/daily/index.xml +++ b/haml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Haml Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:14Z + 2024-08-22T01:30:21Z Daily Trending of Haml in GitHub \ No newline at end of file diff --git a/handlebars/daily/index.xml b/handlebars/daily/index.xml index 865da34b644..6298ca76ec1 100644 --- a/handlebars/daily/index.xml +++ b/handlebars/daily/index.xml @@ -1,7 +1,7 @@ GitHub Handlebars Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:16Z + 2024-08-22T01:30:23Z Daily Trending of Handlebars in GitHub \ No newline at end of file diff --git a/haproxy/daily/index.xml b/haproxy/daily/index.xml index ab0ae6bca27..9e1970f6c29 100644 --- a/haproxy/daily/index.xml +++ b/haproxy/daily/index.xml @@ -1,7 +1,7 @@ GitHub HAProxy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:16Z + 2024-08-22T01:30:22Z Daily Trending of HAProxy in GitHub \ No newline at end of file diff --git a/harbour/daily/index.xml b/harbour/daily/index.xml index b50ce0852d0..14ffde7d4fb 100644 --- a/harbour/daily/index.xml +++ b/harbour/daily/index.xml @@ -1,7 +1,7 @@ GitHub Harbour Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:16Z + 2024-08-22T01:30:23Z Daily Trending of Harbour in GitHub \ No newline at end of file diff --git a/haskell/daily/index.xml b/haskell/daily/index.xml index aed9cdbe8d7..928c92f68df 100644 --- a/haskell/daily/index.xml +++ b/haskell/daily/index.xml @@ -1,7 +1,14 @@ GitHub Haskell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:18Z + 2024-08-22T01:30:24Z Daily Trending of Haskell in GitHub + + crytic/echidna + 2024-08-22T01:30:24Z + tag:github.com,2024-08-22:/crytic/echidna + + <p>Ethereum smart contract fuzzer</p><hr><h1>Echidna: A Fast Smart Contract Fuzzer <a href="https://raw.githubusercontent.com/crytic/echidna/master/echidna.png"><img src="https://raw.githubusercontent.com/crytic/echidna/master/echidna.png" width="75"></a></h1> <p><img src="https://github.com/crytic/echidna/workflows/CI/badge.svg?sanitize=true" alt="Build Status"></p> <p>Echidna is a weird creature that eats bugs and is highly electrosensitive (with apologies to Jacob Stanley)</p> <p>More seriously, Echidna is a Haskell program designed for fuzzing/property-based testing of Ethereum smart contracts. It uses sophisticated grammar-based fuzzing campaigns based on a <a href="https://solidity.readthedocs.io/en/develop/abi-spec.html">contract ABI</a> to falsify user-defined predicates or <a href="https://solidity.readthedocs.io/en/develop/control-structures.html#id4">Solidity assertions</a>. We designed Echidna with modularity in mind, so it can be easily extended to include new mutations or test specific contracts in specific cases.</p> <h2>Features</h2> <ul> <li>Generates inputs tailored to your actual code</li> <li>Optional corpus collection, mutation and coverage guidance to find deeper bugs</li> <li>Powered by <a href="https://github.com/crytic/slither">Slither</a> to extract useful information before the fuzzing campaign</li> <li>Source code integration to identify which lines are covered after the fuzzing campaign</li> <li>Interactive terminal UI, text-only or JSON output</li> <li>Automatic test case minimization for quick triage</li> <li>Seamless integration into the development workflow</li> <li>Maximum gas usage reporting of the fuzzing campaign</li> <li>Support for a complex contract initialization with <a href="https://github.com/crytic/etheno">Etheno</a> and Truffle</li> </ul> <p>.. and <a href="https://raw.githubusercontent.com/crytic/echidna/master/echidna.png">a beautiful high-resolution handcrafted logo</a>.</p> <p><a href="https://i.imgur.com/saFWti4.png"><img src="https://i.imgur.com/saFWti4.png" width="650"></a></p> <h2>Usage</h2> <h3>Executing the test runner</h3> <p>The core Echidna functionality is an executable called <code>echidna</code>, which takes a contract and a list of invariants (properties that should always remain true) as input. For each invariant, it generates random sequences of calls to the contract and checks if the invariant holds. If it can find some way to falsify the invariant, it prints the call sequence that does so. If it can't, you have some assurance the contract is safe.</p> <h3>Writing invariants</h3> <p>Invariants are expressed as Solidity functions with names that begin with <code>echidna_</code>, have no arguments, and return a boolean. For example, if you have some <code>balance</code> variable that should never go below <code>20</code>, you can write an extra function in your contract like this one:</p> <pre><code class="language-solidity">function echidna_check_balance() public returns (bool) { return(balance &gt;= 20); } </code></pre> <p>To check these invariants, run:</p> <pre><code class="language-sh">$ echidna myContract.sol </code></pre> <p>An example contract with tests can be found <a href="https://raw.githubusercontent.com/crytic/echidna/master/tests/solidity/basic/flags.sol">tests/solidity/basic/flags.sol</a>. To run it, you should execute:</p> <pre><code class="language-sh">$ echidna tests/solidity/basic/flags.sol </code></pre> <p>Echidna should find a call sequence that falsifies <code>echidna_sometimesfalse</code> and should be unable to find a falsifying input for <code>echidna_alwaystrue</code>.</p> <h3>Collecting and visualizing coverage</h3> <p>After finishing a campaign, Echidna can save a coverage maximizing <strong>corpus</strong> in a special directory specified with the <code>corpusDir</code> config option. This directory will contain two entries: (1) a directory named <code>coverage</code> with JSON files that can be replayed by Echidna and (2) a plain-text file named <code>covered.txt</code>, a copy of the source code with coverage annotations.</p> <p>If you run <code>tests/solidity/basic/flags.sol</code> example, Echidna will save a few files serialized transactions in the <code>coverage</code> directory and a <code>covered.$(date +%s).txt</code> file with the following lines:</p> <pre><code class="language-text">*r | function set0(int val) public returns (bool){ * | if (val % 100 == 0) * | flag0 = false; } *r | function set1(int val) public returns (bool){ * | if (val % 10 == 0 &amp;&amp; !flag0) * | flag1 = false; } </code></pre> <p>Our tool signals each execution trace in the corpus with the following "line marker":</p> <ul> <li><code>*</code> if an execution ended with a STOP</li> <li><code>r</code> if an execution ended with a REVERT</li> <li><code>o</code> if an execution ended with an out-of-gas error</li> <li><code>e</code> if an execution ended with any other error (zero division, assertion failure, etc)</li> </ul> <h3>Support for smart contract build systems</h3> <p>Echidna can test contracts compiled with different smart contract build systems, including <a href="https://truffleframework.com/">Truffle</a> or <a href="https://hardhat.org/">hardhat</a> using <a href="https://github.com/crytic/crytic-compile">crytic-compile</a>. To invoke echidna with the current compilation framework, use <code>echidna .</code>.</p> <p>On top of that, Echidna supports two modes of testing complex contracts. Firstly, one can <a href="https://github.com/crytic/building-secure-contracts/raw/master/program-analysis/echidna/end-to-end-testing.md">describe an initialization procedure with Truffle and Etheno</a> and use that as the base state for Echidna. Secondly, Echidna can call into any contract with a known ABI by passing in the corresponding Solidity source in the CLI. Use <code>allContracts: true</code> in your config to turn this on.</p> <h3>Crash course on Echidna</h3> <p>Our <a href="https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/echidna#echidna-tutorial">Building Secure Smart Contracts</a> repository contains a crash course on Echidna, including examples, lessons and exercises.</p> <h3>Using Echidna in a GitHub Actions workflow</h3> <p>There is an Echidna action which can be used to run <code>echidna</code> as part of a GitHub Actions workflow. Please refer to the <a href="https://github.com/crytic/echidna-action">crytic/echidna-action</a> repository for usage instructions and examples.</p> <h3>Configuration options</h3> <p>Echidna's CLI can be used to choose the contract to test and load a configuration file.</p> <pre><code class="language-sh">$ echidna contract.sol --contract TEST --config config.yaml </code></pre> <p>The configuration file allows users to choose EVM and test generation parameters. An example of a complete and annotated config file with the default options can be found at <a href="https://raw.githubusercontent.com/crytic/echidna/master/tests/solidity/basic/default.yaml">tests/solidity/basic/default.yaml</a>. More detailed documentation on the configuration options is available in our <a href="https://github.com/trailofbits/echidna/wiki/Config">wiki</a>.</p> <p>Echidna supports three different output drivers. There is the default <code>text</code> driver, a <code>json</code> driver, and a <code>none</code> driver, which should suppress all <code>stdout</code> output. The JSON driver reports the overall campaign as follows.</p> <pre><code>Campaign = { "success" : bool, "error" : string?, "tests" : [Test], "seed" : number, "coverage" : Coverage, "gas_info" : [GasInfo] } Test = { "contract" : string, "name" : string, "status" : string, "error" : string?, "testType" : string, "transactions" : [Transaction]? } Transaction = { "contract" : string, "function" : string, "arguments" : [string]?, "gas" : number, "gasprice" : number } </code></pre> <p><code>Coverage</code> is a dict describing certain coverage-increasing calls. Each <code>GasInfo</code> entry is a tuple that describes how maximal gas usage was achieved, and is also not too important. These interfaces are subject to change to be slightly more user-friendly at a later date. <code>testType</code> will either be <code>property</code> or <code>assertion</code>, and <code>status</code> always takes on either <code>fuzzing</code>, <code>shrinking</code>, <code>solved</code>, <code>passed</code>, or <code>error</code>.</p> <h3>Debugging Performance Problems</h3> <p>One way to diagnose Echidna's performance issues is to run <code>echidna</code> with profiling on. To run Echidna with basic profiling, add <code>+RTS -p -s</code> to your original <code>echidna</code> command:</p> <pre><code class="language-sh">$ nix develop # alternatively nix-shell $ cabal --enable-profiling run echidna -- ... +RTS -p -s $ less echidna.prof </code></pre> <p>This produces a report file (<code>echidna.prof</code>), that shows which functions take up the most CPU and memory usage.</p> <p>If the basic profiling doesn't help, you can use more <a href="https://input-output-hk.github.io/hs-opt-handbook.github.io/src/Measurement_Observation/Heap_Ghc/eventlog.html">advanced profiling techniques</a>.</p> <p>Common causes for performance issues that we observed:</p> <ul> <li>Costly functions called in hot paths</li> <li>Lazy data constructors that accumulate thunks</li> <li>Inefficient data structures used in hot paths</li> </ul> <p>Checking for these is a good place to start. If you suspect some computation is too lazy and leaks memory, you can use <code>force</code> from <code>Control.DeepSeq</code> to make sure it gets evaluated.</p> <h2>Limitations and known issues</h2> <p>EVM emulation and testing are hard. Echidna has some limitations in the latest release. Some of these are inherited from <a href="https://github.com/ethereum/hevm">hevm</a> while some are results from design/performance decisions or simply bugs in our code. We list them here including their corresponding issue and the status ("wont fix", "on hold", "in review", "fixed"). Issues that are "fixed" are expected to be included in the next Echidna release.</p> <table> <thead> <tr> <th align="left">Description</th> <th align="center">Issue</th> <th align="center">Status</th> </tr> </thead> <tbody> <tr> <td align="left">Vyper support is limited</td> <td align="center"><a href="https://github.com/crytic/echidna/issues/652">#652</a></td> <td align="center"><em>wont fix</em></td> </tr> <tr> <td align="left">Limited library support for testing</td> <td align="center"><a href="https://github.com/crytic/echidna/issues/651">#651</a></td> <td align="center"><em>wont fix</em></td> </tr> </tbody> </table> <h2>Installation</h2> <h3>Precompiled binaries</h3> <p>Before starting, make sure Slither is <a href="https://github.com/crytic/slither">installed</a> (<code>pip3 install slither-analyzer --user</code>). If you want to quickly test Echidna in Linux or MacOS, we provide statically linked Linux binaries built on Ubuntu and mostly static MacOS binaries on our <a href="https://github.com/crytic/echidna/releases">releases page</a>. You can also grab the same type of binaries from our <a href="https://github.com/crytic/echidna/actions?query=workflow%3ACI+branch%3Amaster+event%3Apush">CI pipeline</a>, just click the commit to find binaries for Linux or MacOS.</p> <h3>Homebrew (macOS / Linux)</h3> <p>If you have Homebrew installed on your Mac or Linux machine, you can install Echidna and all of its dependencies (Slither, crytic-compile) by running <code>brew install echidna</code>.</p> <p>You can also compile and install the latest <code>master</code> branch code by running <code>brew install --HEAD echidna</code></p> <p>You can get further information in the <a href="https://formulae.brew.sh/formula/echidna"><code>echidna</code> Homebrew Formula</a> page. The formula itself is maintained as part of the <a href="https://github.com/Homebrew/homebrew-core/raw/HEAD/Formula/e/echidna.rb">homebrew-core repository</a></p> <h3>Docker container</h3> <p>If you prefer to use a pre-built Docker container, check out our <a href="https://github.com/orgs/crytic/packages?repo_name=echidna">docker package</a>, which is auto-built via GitHub Actions. The <code>echidna</code> container is based on <code>ubuntu:focal</code> and it is meant to be a small yet flexible enough image to use Echidna on. It provides a pre-built version of <code>echidna</code>, as well as <code>slither</code>, <code>crytic-compile</code>, <code>solc-select</code> and <code>nvm</code> under 200 MB.</p> <p>Note that the container images currently only build on x86 systems. Running them on ARM devices, such as Mac M1 systems, is not recommended due to the performance loss incurred by the CPU emulation.</p> <p>Different tags are available for the Docker container image:</p> <table> <thead> <tr> <th>Tag</th> <th>Build in tag</th> </tr> </thead> <tbody> <tr> <td><code>vx.y.z</code></td> <td>Build corresponding to release <code>vx.y.z</code></td> </tr> <tr> <td><code>latest</code></td> <td>Latest Echidna tagged release.</td> </tr> <tr> <td><code>edge</code></td> <td>Most recent commit on the default branch.</td> </tr> <tr> <td><code>testing-foo</code></td> <td>Testing build based on the <code>foo</code> branch.</td> </tr> </tbody> </table> <p>To run the container with the latest Echidna version interactively, you can use something like the following command. It will map the current directory as <code>/src</code> inside the container, and give you a shell where you can use <code>echidna</code>:</p> <pre><code class="language-sh">$ docker run --rm -it -v `pwd`:/src ghcr.io/crytic/echidna/echidna </code></pre> <p>Otherwise, if you want to locally build the latest version of Echidna, we recommend using Docker. From within a clone of this repository, run the following command to build the Docker container image:</p> <pre><code class="language-sh">$ docker build -t echidna -f docker/Dockerfile --target final-ubuntu . </code></pre> <p>Then, you can run the <code>echidna</code> image locally. For example, to install solc 0.5.7 and check <code>tests/solidity/basic/flags.sol</code>, you can run:</p> <pre><code class="language-sh">$ docker run -it -v `pwd`:/src echidna bash -c "solc-select install 0.5.7 &amp;&amp; solc-select use 0.5.7 &amp;&amp; echidna /src/tests/solidity/basic/flags.sol" </code></pre> <h3>Building using Stack</h3> <p>If you'd prefer to build from source, use <a href="https://docs.haskellstack.org/en/stable/README/">Stack</a>. <code>stack install</code> should build and compile <code>echidna</code> in <code>~/.local/bin</code>. You will need to link against libreadline and libsecp256k1 (built with recovery enabled), which should be installed with the package manager of your choosing. You also need to install the latest release of <a href="https://github.com/scipr-lab/libff">libff</a>. Refer to our <a href="https://raw.githubusercontent.com/crytic/echidna/master/.github/scripts/install-libff.sh">CI tests</a> for guidance.</p> <p>Some Linux distributions do not ship static libraries for certain things that Haskell needs, e.g. Arch Linux, which will cause <code>stack build</code> to fail with linking errors because we use the <code>-static</code> flag. In that case, use <code>--flag echidna:-static</code> to produce a dynamically linked binary.</p> <p>If you're getting errors building related to linking, try tinkering with <code>--extra-include-dirs</code> and <code>--extra-lib-dirs</code>.</p> <h3>Building using Nix (works natively on Apple M1 systems)</h3> <p><a href="https://nixos.org/download.html">Nix users</a> can install the latest Echidna with:</p> <pre><code class="language-sh">$ nix-env -i -f https://github.com/crytic/echidna/tarball/master </code></pre> <p>With flakes enabled, you can run Echidna straight from this repo:</p> <pre><code class="language-sh">$ nix run github:crytic/echidna # master $ nix run github:crytic/echidna/v2.1.1 # specific ref (tag/branch/commit) </code></pre> <p>To build a standalone release for non-Nix macOS systems, the following will build Echidna in a mostly static binary. This can also be used on Linux systems to produce a fully static binary.</p> <pre><code class="language-sh">$ nix build .#echidna-redistributable </code></pre> <p>Nix will automatically install all the dependencies required for development including <code>crytic-compile</code> and <code>solc</code>. A quick way to start developing Echidna:</p> <pre><code class="language-sh">$ git clone https://github.com/crytic/echidna $ cd echidna $ nix develop # alternatively nix-shell [nix-shell]$ cabal run echidna [nix-shell]$ cabal run tests [nix-shell]$ cabal new-repl </code></pre> <h2>Public use of Echidna</h2> <h3>Property testing suites</h3> <p>This is a partial list of smart contracts projects that use Echidna for testing:</p> <ul> <li><a href="https://github.com/curvance/Curvance-CantinaCompetition/tree/CodeFAQAndAdjustments/tests/fuzzing">Curvance</a></li> <li><a href="https://github.com/primitivefinance/rmm-core/tree/main/contracts/crytic">Primitive</a></li> <li><a href="https://github.com/search?q=org%3AUniswap+echidna&amp;type=commits">Uniswap-v3</a></li> <li><a href="https://github.com/balancer-labs/balancer-core/tree/master/echidna">Balancer</a></li> <li><a href="https://github.com/makerdao/dss-vest/pull/16">MakerDAO vest</a></li> <li><a href="https://github.com/BellwoodStudios/optimism-dai-bridge/raw/master/contracts/test/DaiEchidnaTest.sol">Optimism DAI Bridge</a></li> <li><a href="https://github.com/WETH10/WETH10/tree/main/contracts/fuzzing">WETH10</a></li> <li><a href="https://github.com/yieldprotocol/fyDai/pull/312">Yield</a></li> <li><a href="https://github.com/opynfinance/ConvexityProtocol/tree/dev/contracts/echidna">Convexity Protocol</a></li> <li><a href="https://github.com/aragon/staking/raw/82bf54a3e11ec4e50d470d66048a2dd3154f940b/packages/protocol/contracts/test/lib/EchidnaStaking.sol">Aragon Staking</a></li> <li><a href="https://github.com/centrehq/centre-tokens/tree/master/echidna_tests">Centre Token</a></li> <li><a href="https://github.com/tokencard/contracts/tree/master/tools/echidna">Tokencard</a></li> <li><a href="https://github.com/usmfum/USM/pull/41">Minimalist USD Stablecoin</a></li> </ul> <h3>Security reviews</h3> <p>The following shows public security reviews that used Echidna to uncover vulnerabilities</p> <ul> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/AdvancedBlockchain.pdf">Advanced Blockchain</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/amp.pdf">Amp</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/ampleforth.pdf">Ampleforth</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/2023-03-atlendis-atlendissmartcontracts-securityreview.pdf">Atlendis</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/2021-04-balancer-balancerv2-securityreview.pdf">Balancer</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/basis.pdf">Basis</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/mc-dai.pdf">Dai</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/FraxQ22022.pdf">Frax</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/LiquityProtocolandStabilityPoolFinalReport.pdf">Liquity</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/LooksRare.pdf">LooksRare</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/2022-03-maplefinance-securityreview.pdf">Maple</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/2022-11-optimism-securityreview.pdf">Optimism</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/Opyn.pdf">Opyn</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/OriginDollar.pdf">Origin Dollar</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/origin.pdf">Origin</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/paxos.pdf">Paxos</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/Primitive.pdf">Primitive</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/RocketPool.pdf">RocketPool</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/SeaportProtocol.pdf">Seaport</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/setprotocol.pdf">Set Protocol</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/ShellProtocolv2.pdf">Shell protocol</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/Sherlockv2.pdf">Sherlock</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/pantheon.pdf">Pegasys Pantheon</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/TokenCard.pdf">TokenCard</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/UniswapV3Core.pdf">Uniswap</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/YearnV2Vaults.pdf">Yearn</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/YieldProtocol.pdf">Yield</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/88mph.pdf">88mph</a></li> <li><a href="https://github.com/trailofbits/publications/raw/master/reviews/0x-protocol.pdf">0x</a></li> </ul> <h3>Trophies</h3> <p>The following security vulnerabilities were found by Echidna. If you found a security vulnerability using our tool, please submit a PR with the relevant information.</p> <table> <thead> <tr> <th>Project</th> <th>Vulnerability</th> <th>Date</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/0x-protocol.pdf">0x Protocol</a></td> <td>If an order cannot be filled, then it cannot be canceled</td> <td>Oct 2019</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/0x-protocol.pdf">0x Protocol</a></td> <td>If an order can be partially filled with zero, then it can be partially filled with one token</td> <td>Oct 2019</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/0x-protocol.pdf">0x Protocol</a></td> <td>The cobbdouglas function does not revert when valid input parameters are used</td> <td>Oct 2019</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/BalancerCore.pdf">Balancer Core</a></td> <td>An attacker cannot steal assets from a public pool</td> <td>Jan 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/BalancerCore.pdf">Balancer Core</a></td> <td>An attacker cannot generate free pool tokens with joinPool</td> <td>Jan 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/BalancerCore.pdf">Balancer Core</a></td> <td>Calling joinPool-exitPool does not lead to free pool tokens</td> <td>Jan 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/BalancerCore.pdf">Balancer Core</a></td> <td>Calling exitswapExternAmountOut does not lead to free assets</td> <td>Jan 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/Liquity.pdf">Liquity Dollar</a></td> <td><a href="https://github.com/liquity/dev/raw/echidna_ToB_final/packages/contracts/contracts/TestContracts/E2E.sol#L242-L298">Closing troves require to hold the full amount of LUSD minted</a></td> <td>Dec 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/Liquity.pdf">Liquity Dollar</a></td> <td><a href="https://github.com/liquity/dev/raw/echidna_ToB_final/packages/contracts/contracts/TestContracts/E2E.sol#L242-L298">Troves can be improperly removed</a></td> <td>Dec 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/Liquity.pdf">Liquity Dollar</a></td> <td>Initial redeem can revert unexpectedly</td> <td>Dec 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/Liquity.pdf">Liquity Dollar</a></td> <td>Redeem without redemptions might still return success</td> <td>Dec 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/OriginDollar.pdf">Origin Dollar</a></td> <td>Users are allowed to transfer more tokens that they have</td> <td>Nov 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/OriginDollar.pdf">Origin Dollar</a></td> <td>User balances can be larger than total supply</td> <td>Nov 2020</td> </tr> <tr> <td><a href="https://github.com/trailofbits/publications/raw/master/reviews/YieldProtocol.pdf">Yield Protocol</a></td> <td>Arithmetic computation for buying and selling tokens is imprecise</td> <td>Aug 2020</td> </tr> </tbody> </table> <h3>Research</h3> <p>We can also use Echidna to reproduce research examples from smart contract fuzzing papers to show how quickly it can find the solution. All of these can be solved, in a few seconds to one or two minutes on a laptop computer.</p> <table> <thead> <tr> <th>Source</th> <th>Code</th> </tr> </thead> <tbody> <tr> <td><a href="https://forum.openzeppelin.com/t/using-automatic-analysis-tools-with-makerdao-contracts/1021">Using automatic analysis tools with MakerDAO contracts</a></td> <td><a href="https://github.com/crytic/echidna/raw/master/tests/solidity/research/vera_dschief.sol">SimpleDSChief</a></td> </tr> <tr> <td><a href="https://github.com/b-mueller/sabre#example-2-integer-precision-bug">Integer precision bug in Sigma Prime</a></td> <td><a href="https://github.com/crytic/echidna/raw/master/tests/solidity/research/solcfuzz_funwithnumbers.sol">VerifyFunWithNumbers</a></td> </tr> <tr> <td><a href="https://files.sri.inf.ethz.ch/website/papers/ccs19-ilf.pdf">Learning to Fuzz from Symbolic Execution with Application to Smart Contracts</a></td> <td><a href="https://github.com/crytic/echidna/raw/master/tests/solidity/research/ilf_crowdsale.sol">Crowdsale</a></td> </tr> <tr> <td><a href="https://arxiv.org/abs/1905.06944">Harvey: A Greybox Fuzzer for Smart Contracts</a></td> <td><a href="https://github.com/crytic/echidna/raw/master/test/solidity/research/harvey_foo.sol">Foo</a>, <a href="https://github.com/crytic/echidna/raw/master/tests/solidity/research/harvey_baz.sol">Baz</a></td> </tr> </tbody> </table> <h3>Academic Publications</h3> <table> <thead> <tr> <th>Paper Title</th> <th>Venue</th> <th>Publication Date</th> </tr> </thead> <tbody> <tr> <td><a href="https://agroce.github.io/issta21.pdf">echidna-parade: Diverse multicore smart contract fuzzing</a></td> <td><a href="https://conf.researchr.org/home/issta-2021">ISSTA 2021</a></td> <td>July 2021</td> </tr> <tr> <td><a href="https://agroce.github.io/issta20.pdf">Echidna: Effective, usable, and fast fuzzing for smart contracts</a></td> <td><a href="https://conf.researchr.org/home/issta-2020">ISSTA 2020</a></td> <td>July 2020</td> </tr> <tr> <td><a href="https://raw.githubusercontent.com/crytic/echidna/master/papers/echidna_fc_poster.pdf">Echidna: A Practical Smart Contract Fuzzer</a></td> <td><a href="https://fc20.ifca.ai/program.html">FC 2020</a></td> <td>Feb 2020</td> </tr> </tbody> </table> <p>If you are using Echidna for academic work, consider applying to the <a href="https://blog.trailofbits.com/2019/11/13/announcing-the-crytic-10k-research-prize/">Crytic $10k Research Prize</a>.</p> <h2>Getting help</h2> <p>Feel free to stop by our #ethereum slack channel in <a href="https://slack.empirehacking.nyc/">Empire Hacking</a> for help using or extending Echidna.</p> <ul> <li> <p>Get started by reviewing these simple <a href="https://raw.githubusercontent.com/crytic/echidna/master/tests/solidity/basic/flags.sol">Echidna invariants</a></p> </li> <li> <p>Considering <a href="mailto:echidna-dev@trailofbits.com">emailing</a> the Echidna development team directly for more detailed questions</p> </li> </ul> <h2>License</h2> <p>Echidna is licensed and distributed under the <a href="https://github.com/crytic/echidna/raw/master/LICENSE">AGPLv3 license</a>.</p> + \ No newline at end of file diff --git a/haxe/daily/index.xml b/haxe/daily/index.xml index b8728bc0195..f15cd869dbf 100644 --- a/haxe/daily/index.xml +++ b/haxe/daily/index.xml @@ -1,7 +1,7 @@ GitHub Haxe Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:23Z + 2024-08-22T01:30:29Z Daily Trending of Haxe in GitHub \ No newline at end of file diff --git a/hcl/daily/index.xml b/hcl/daily/index.xml index 97d6dd73b6f..cb27918c2df 100644 --- a/hcl/daily/index.xml +++ b/hcl/daily/index.xml @@ -1,7 +1,7 @@ GitHub HCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:23Z + 2024-08-22T01:30:29Z Daily Trending of HCL in GitHub \ No newline at end of file diff --git a/hiveql/daily/index.xml b/hiveql/daily/index.xml index b1264eaac1c..86e96147ac1 100644 --- a/hiveql/daily/index.xml +++ b/hiveql/daily/index.xml @@ -1,7 +1,7 @@ GitHub HiveQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:21Z + 2024-08-22T01:30:27Z Daily Trending of HiveQL in GitHub \ No newline at end of file diff --git a/hlsl/daily/index.xml b/hlsl/daily/index.xml index 51393b412f3..80ffeb56d8f 100644 --- a/hlsl/daily/index.xml +++ b/hlsl/daily/index.xml @@ -1,7 +1,7 @@ GitHub HLSL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:21Z + 2024-08-22T01:30:28Z Daily Trending of HLSL in GitHub \ No newline at end of file diff --git a/holyc/daily/index.xml b/holyc/daily/index.xml index 8bd53614938..9e8b81be4ed 100644 --- a/holyc/daily/index.xml +++ b/holyc/daily/index.xml @@ -1,7 +1,7 @@ GitHub HolyC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:24Z + 2024-08-22T01:30:30Z Daily Trending of HolyC in GitHub \ No newline at end of file diff --git a/hoon/daily/index.xml b/hoon/daily/index.xml index 3cc9374682a..985e3d6c349 100644 --- a/hoon/daily/index.xml +++ b/hoon/daily/index.xml @@ -1,7 +1,7 @@ GitHub hoon Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:25Z + 2024-08-22T01:30:30Z Daily Trending of hoon in GitHub \ No newline at end of file diff --git a/html+ecr/daily/index.xml b/html+ecr/daily/index.xml index cf99c7c6309..59cda8cbd5a 100644 --- a/html+ecr/daily/index.xml +++ b/html+ecr/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+ECR Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:25Z + 2024-08-22T01:30:31Z Daily Trending of HTML+ECR in GitHub \ No newline at end of file diff --git a/html+eex/daily/index.xml b/html+eex/daily/index.xml index 13c5ed03002..5b4c3c8049a 100644 --- a/html+eex/daily/index.xml +++ b/html+eex/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+EEX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:26Z + 2024-08-22T01:30:31Z Daily Trending of HTML+EEX in GitHub \ No newline at end of file diff --git a/html+erb/daily/index.xml b/html+erb/daily/index.xml index 9a5ad46a165..040dcf881e8 100644 --- a/html+erb/daily/index.xml +++ b/html+erb/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+ERB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:31Z + 2024-08-22T01:30:36Z Daily Trending of HTML+ERB in GitHub \ No newline at end of file diff --git a/html+php/daily/index.xml b/html+php/daily/index.xml index 0d8e4bfce36..247c68a3092 100644 --- a/html+php/daily/index.xml +++ b/html+php/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+PHP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:31Z + 2024-08-22T01:30:37Z Daily Trending of HTML+PHP in GitHub \ No newline at end of file diff --git a/html+razor/daily/index.xml b/html+razor/daily/index.xml index d54a794cfb6..c3e2812909c 100644 --- a/html+razor/daily/index.xml +++ b/html+razor/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+Razor Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:31Z + 2024-08-22T01:30:36Z Daily Trending of HTML+Razor in GitHub \ No newline at end of file diff --git a/html/daily/index.xml b/html/daily/index.xml index 2188c885cb3..11eb19dbc04 100644 --- a/html/daily/index.xml +++ b/html/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:27Z + 2024-08-22T01:30:32Z Daily Trending of HTML in GitHub \ No newline at end of file diff --git a/http/daily/index.xml b/http/daily/index.xml index db7c4dae7fd..5d1723e53a5 100644 --- a/http/daily/index.xml +++ b/http/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTTP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:31Z + 2024-08-22T01:30:36Z Daily Trending of HTTP in GitHub \ No newline at end of file diff --git a/hxml/daily/index.xml b/hxml/daily/index.xml index ac47529e465..af43ad3cf0f 100644 --- a/hxml/daily/index.xml +++ b/hxml/daily/index.xml @@ -1,7 +1,7 @@ GitHub HXML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:32Z + 2024-08-22T01:30:38Z Daily Trending of HXML in GitHub \ No newline at end of file diff --git a/hy/daily/index.xml b/hy/daily/index.xml index a374d6ddff7..953981899fc 100644 --- a/hy/daily/index.xml +++ b/hy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Hy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:32Z + 2024-08-22T01:30:38Z Daily Trending of Hy in GitHub \ No newline at end of file diff --git a/hyphy/daily/index.xml b/hyphy/daily/index.xml index 68c0ecc4234..64d60a5bdb3 100644 --- a/hyphy/daily/index.xml +++ b/hyphy/daily/index.xml @@ -1,7 +1,7 @@ GitHub HyPhy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:33Z + 2024-08-22T01:30:38Z Daily Trending of HyPhy in GitHub \ No newline at end of file diff --git a/idl/daily/index.xml b/idl/daily/index.xml index 5d13c5999cf..f5caf7330c2 100644 --- a/idl/daily/index.xml +++ b/idl/daily/index.xml @@ -1,7 +1,7 @@ GitHub IDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:33Z + 2024-08-22T01:30:37Z Daily Trending of IDL in GitHub \ No newline at end of file diff --git a/idris/daily/index.xml b/idris/daily/index.xml index 389fc3574d9..9ba98a3a516 100644 --- a/idris/daily/index.xml +++ b/idris/daily/index.xml @@ -1,7 +1,7 @@ GitHub Idris Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:34Z + 2024-08-22T01:30:39Z Daily Trending of Idris in GitHub \ No newline at end of file diff --git a/ignore-list/daily/index.xml b/ignore-list/daily/index.xml index 3920ef8171f..c327af5d575 100644 --- a/ignore-list/daily/index.xml +++ b/ignore-list/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ignore List Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:34Z + 2024-08-22T01:30:40Z Daily Trending of Ignore List in GitHub \ No newline at end of file diff --git a/igor-pro/daily/index.xml b/igor-pro/daily/index.xml index 41151159e27..03982758a0d 100644 --- a/igor-pro/daily/index.xml +++ b/igor-pro/daily/index.xml @@ -1,7 +1,7 @@ GitHub IGOR Pro Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:35Z + 2024-08-22T01:30:39Z Daily Trending of IGOR Pro in GitHub \ No newline at end of file diff --git a/imagej-macro/daily/index.xml b/imagej-macro/daily/index.xml index b55d1416c67..3c5c639b761 100644 --- a/imagej-macro/daily/index.xml +++ b/imagej-macro/daily/index.xml @@ -1,7 +1,7 @@ GitHub ImageJ Macro Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:34Z + 2024-08-22T01:30:40Z Daily Trending of ImageJ Macro in GitHub \ No newline at end of file diff --git a/inform-7/daily/index.xml b/inform-7/daily/index.xml index 498ef81c10f..2d2e9b2ab2e 100644 --- a/inform-7/daily/index.xml +++ b/inform-7/daily/index.xml @@ -1,7 +1,7 @@ GitHub Inform 7 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:36Z + 2024-08-22T01:30:41Z Daily Trending of Inform 7 in GitHub \ No newline at end of file diff --git a/ini/daily/index.xml b/ini/daily/index.xml index a34b81b06d3..e0eaf75123c 100644 --- a/ini/daily/index.xml +++ b/ini/daily/index.xml @@ -1,7 +1,7 @@ GitHub INI Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:35Z + 2024-08-22T01:30:40Z Daily Trending of INI in GitHub \ No newline at end of file diff --git a/inno-setup/daily/index.xml b/inno-setup/daily/index.xml index 7238a993909..479814afdfb 100644 --- a/inno-setup/daily/index.xml +++ b/inno-setup/daily/index.xml @@ -1,7 +1,14 @@ GitHub Inno Setup Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:37Z + 2024-08-22T01:30:43Z Daily Trending of Inno Setup in GitHub + + LMS-Community/slimserver-platforms + 2024-08-22T01:30:43Z + tag:github.com,2024-08-22:/LMS-Community/slimserver-platforms + + <p>Platform-specific build tools for Lyrion Music Server</p><hr> + \ No newline at end of file diff --git a/io/daily/index.xml b/io/daily/index.xml index 1de1572ad3c..518e8696ec3 100644 --- a/io/daily/index.xml +++ b/io/daily/index.xml @@ -1,7 +1,7 @@ GitHub Io Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:38Z + 2024-08-22T01:30:43Z Daily Trending of Io in GitHub \ No newline at end of file diff --git a/ioke/daily/index.xml b/ioke/daily/index.xml index 7e65279e392..7028c0ed920 100644 --- a/ioke/daily/index.xml +++ b/ioke/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ioke Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:37Z + 2024-08-22T01:30:42Z Daily Trending of Ioke in GitHub \ No newline at end of file diff --git a/irc-log/daily/index.xml b/irc-log/daily/index.xml index d8325861e56..93facaa6d45 100644 --- a/irc-log/daily/index.xml +++ b/irc-log/daily/index.xml @@ -1,7 +1,7 @@ GitHub IRC log Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:37Z + 2024-08-22T01:30:42Z Daily Trending of IRC log in GitHub \ No newline at end of file diff --git a/isabelle-root/daily/index.xml b/isabelle-root/daily/index.xml index 9332bb2ff6d..34dd9d2761b 100644 --- a/isabelle-root/daily/index.xml +++ b/isabelle-root/daily/index.xml @@ -1,7 +1,7 @@ GitHub Isabelle ROOT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:39Z + 2024-08-22T01:30:44Z Daily Trending of Isabelle ROOT in GitHub \ No newline at end of file diff --git a/isabelle/daily/index.xml b/isabelle/daily/index.xml index 0c47cacaf04..56de31c4bd7 100644 --- a/isabelle/daily/index.xml +++ b/isabelle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Isabelle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:39Z + 2024-08-22T01:30:43Z Daily Trending of Isabelle in GitHub \ No newline at end of file diff --git a/j/daily/index.xml b/j/daily/index.xml index 3a288eb9dfa..4480d61537a 100644 --- a/j/daily/index.xml +++ b/j/daily/index.xml @@ -1,7 +1,7 @@ GitHub J Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:39Z + 2024-08-22T01:30:44Z Daily Trending of J in GitHub \ No newline at end of file diff --git a/janet/daily/index.xml b/janet/daily/index.xml index 2b601e98986..8205e9360a5 100644 --- a/janet/daily/index.xml +++ b/janet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Janet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:38Z + 2024-08-22T01:30:44Z Daily Trending of Janet in GitHub \ No newline at end of file diff --git a/jar-manifest/daily/index.xml b/jar-manifest/daily/index.xml index c4222b60d51..05ef24bc80a 100644 --- a/jar-manifest/daily/index.xml +++ b/jar-manifest/daily/index.xml @@ -1,7 +1,7 @@ GitHub JAR Manifest Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:40Z + 2024-08-22T01:30:45Z Daily Trending of JAR Manifest in GitHub \ No newline at end of file diff --git a/jasmin/daily/index.xml b/jasmin/daily/index.xml index 859d7f8ae99..389a82fbd45 100644 --- a/jasmin/daily/index.xml +++ b/jasmin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jasmin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:40Z + 2024-08-22T01:30:45Z Daily Trending of Jasmin in GitHub \ No newline at end of file diff --git a/java-properties/daily/index.xml b/java-properties/daily/index.xml index 4e358c786c0..43805e838c7 100644 --- a/java-properties/daily/index.xml +++ b/java-properties/daily/index.xml @@ -1,7 +1,7 @@ GitHub Java Properties Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:40Z + 2024-08-22T01:30:45Z Daily Trending of Java Properties in GitHub \ No newline at end of file diff --git a/java-server-pages/daily/index.xml b/java-server-pages/daily/index.xml index 34dcba804ce..be545a9bbda 100644 --- a/java-server-pages/daily/index.xml +++ b/java-server-pages/daily/index.xml @@ -1,7 +1,7 @@ GitHub Java Server Pages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:46Z + 2024-08-22T01:30:52Z Daily Trending of Java Server Pages in GitHub \ No newline at end of file diff --git a/java/daily/index.xml b/java/daily/index.xml index 122d454207d..b6e8caed847 100644 --- a/java/daily/index.xml +++ b/java/daily/index.xml @@ -1,14 +1,14 @@ GitHub Java Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:42Z + 2024-08-22T01:30:47Z Daily Trending of Java in GitHub - DImuthuUpe/AndroidPdfViewer - 2024-08-21T01:30:42Z - tag:github.com,2024-08-21:/DImuthuUpe/AndroidPdfViewer - - <p>Android view for displaying PDFs rendered with PdfiumAndroid</p><hr><h1>Change of ownership and looking for contributors!</h1> <p>The ownership of the project was recently changed and we are actively looking for contributors to bring the project back to track. Please <a href="https://github.com/DImuthuUpe/AndroidPdfViewer/issues/1186">visit</a></p> <h1>Android PdfViewer</h1> <p><strong>AndroidPdfViewer 1.x is available on <a href="https://github.com/barteksc/AndroidPdfViewerV1">AndroidPdfViewerV1</a> repo, where can be developed independently. Version 1.x uses different engine for drawing document on canvas, so if you don't like 2.x version, try 1.x.</strong></p> <p>Library for displaying PDF documents on Android, with <code>animations</code>, <code>gestures</code>, <code>zoom</code> and <code>double tap</code> support. It is based on <a href="https://github.com/barteksc/PdfiumAndroid">PdfiumAndroid</a> for decoding PDF files. Works on API 11 (Android 3.0) and higher. Licensed under Apache License 2.0.</p> <h2>What's new in 3.2.0-beta.1?</h2> <ul> <li>Merge PR #714 with optimized page load</li> <li>Merge PR #776 with fix for max &amp; min zoom level</li> <li>Merge PR #722 with fix for showing right position when view size changed</li> <li>Merge PR #703 with fix for too many threads</li> <li>Merge PR #702 with fix for memory leak</li> <li>Merge PR #689 with possibility to disable long click</li> <li>Merge PR #628 with fix for hiding scroll handle</li> <li>Merge PR #627 with <code>fitEachPage</code> option</li> <li>Merge PR #638 and #406 with fixed NPE</li> <li>Merge PR #780 with README fix</li> <li>Update compile SDK and support library to 28</li> <li>Update Gradle and Gradle Plugin</li> </ul> <h2>Changes in 3.0 API</h2> <ul> <li>Replaced <code>Contants.PRELOAD_COUNT</code> with <code>PRELOAD_OFFSET</code></li> <li>Removed <code>PDFView#fitToWidth()</code> (variant without arguments)</li> <li>Removed <code>Configurator#invalidPageColor(int)</code> method as invalid pages are not rendered</li> <li>Removed page size parameters from <code>OnRenderListener#onInitiallyRendered(int)</code> method, as document may have different page sizes</li> <li>Removed <code>PDFView#setSwipeVertical()</code> method</li> </ul> <h2>Installation</h2> <p>Add to <em>build.gradle</em>:</p> <p><code>implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1'</code></p> <p>or if you want to use more stable version:</p> <p><code>implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'</code></p> <p>Library is available in jcenter repository, probably it'll be in Maven Central soon.</p> <h2>ProGuard</h2> <p>If you are using ProGuard, add following rule to proguard config file:</p> <pre><code class="language-proguard">-keep class com.shockwave.** </code></pre> <h2>Include PDFView in your layout</h2> <pre><code class="language-xml">&lt;com.github.barteksc.pdfviewer.PDFView android:id="@+id/pdfView" android:layout_width="match_parent" android:layout_height="match_parent"/&gt; </code></pre> <h2>Load a PDF file</h2> <p>All available options with default values:</p> <pre><code class="language-java">pdfView.fromUri(Uri) or pdfView.fromFile(File) or pdfView.fromBytes(byte[]) or pdfView.fromStream(InputStream) // stream is written to bytearray - native code cannot use Java Streams or pdfView.fromSource(DocumentSource) or pdfView.fromAsset(String) .pages(0, 2, 1, 3, 3, 3) // all pages are displayed by default .enableSwipe(true) // allows to block changing pages using swipe .swipeHorizontal(false) .enableDoubletap(true) .defaultPage(0) // allows to draw something on the current page, usually visible in the middle of the screen .onDraw(onDrawListener) // allows to draw something on all pages, separately for every page. Called only for visible pages .onDrawAll(onDrawListener) .onLoad(onLoadCompleteListener) // called after document is loaded and starts to be rendered .onPageChange(onPageChangeListener) .onPageScroll(onPageScrollListener) .onError(onErrorListener) .onPageError(onPageErrorListener) .onRender(onRenderListener) // called after document is rendered for the first time // called on single tap, return true if handled, false to toggle scroll handle visibility .onTap(onTapListener) .onLongPress(onLongPressListener) .enableAnnotationRendering(false) // render annotations (such as comments, colors or forms) .password(null) .scrollHandle(null) .enableAntialiasing(true) // improve rendering a little bit on low-res screens // spacing between pages in dp. To define spacing color, set view background .spacing(0) .autoSpacing(false) // add dynamic spacing to fit each page on its own on the screen .linkHandler(DefaultLinkHandler) .pageFitPolicy(FitPolicy.WIDTH) // mode to fit pages in the view .fitEachPage(false) // fit each page to the view, else smaller pages are scaled relative to largest page. .pageSnap(false) // snap pages to screen boundaries .pageFling(false) // make a fling change only a single page like ViewPager .nightMode(false) // toggle night mode .load(); </code></pre> <ul> <li><code>pages</code> is optional, it allows you to filter and order the pages of the PDF as you need</li> </ul> <h2>Scroll handle</h2> <p>Scroll handle is replacement for <strong>ScrollBar</strong> from 1.x branch.</p> <p>From version 2.1.0 putting <strong>PDFView</strong> in <strong>RelativeLayout</strong> to use <strong>ScrollHandle</strong> is not required, you can use any layout.</p> <p>To use scroll handle just register it using method <code>Configurator#scrollHandle()</code>. This method accepts implementations of <strong>ScrollHandle</strong> interface.</p> <p>There is default implementation shipped with AndroidPdfViewer, and you can use it with <code>.scrollHandle(new DefaultScrollHandle(this))</code>. <strong>DefaultScrollHandle</strong> is placed on the right (when scrolling vertically) or on the bottom (when scrolling horizontally). By using constructor with second argument (<code>new DefaultScrollHandle(this, true)</code>), handle can be placed left or top.</p> <p>You can also create custom scroll handles, just implement <strong>ScrollHandle</strong> interface. All methods are documented as Javadoc comments on interface <a href="https://github.com/barteksc/AndroidPdfViewer/tree/master/android-pdf-viewer/src/main/java/com/github/barteksc/pdfviewer/scroll/ScrollHandle.java">source</a>.</p> <h2>Document sources</h2> <p>Version 2.3.0 introduced <em>document sources</em>, which are just providers for PDF documents. Every provider implements <strong>DocumentSource</strong> interface. Predefined providers are available in <strong>com.github.barteksc.pdfviewer.source</strong> package and can be used as samples for creating custom ones.</p> <p>Predefined providers can be used with shorthand methods:</p> <pre><code>pdfView.fromUri(Uri) pdfView.fromFile(File) pdfView.fromBytes(byte[]) pdfView.fromStream(InputStream) pdfView.fromAsset(String) </code></pre> <p>Custom providers may be used with <code>pdfView.fromSource(DocumentSource)</code> method.</p> <h2>Links</h2> <p>Version 3.0.0 introduced support for links in PDF documents. By default, <strong>DefaultLinkHandler</strong> is used and clicking on link that references page in same document causes jump to destination page and clicking on link that targets some URI causes opening it in default application.</p> <p>You can also create custom link handlers, just implement <strong>LinkHandler</strong> interface and set it using <code>Configurator#linkHandler(LinkHandler)</code> method. Take a look at <a href="https://github.com/barteksc/AndroidPdfViewer/tree/master/android-pdf-viewer/src/main/java/com/github/barteksc/pdfviewer/link/DefaultLinkHandler.java">DefaultLinkHandler</a> source to implement custom behavior.</p> <h2>Pages fit policy</h2> <p>Since version 3.0.0, library supports fitting pages into the screen in 3 modes:</p> <ul> <li>WIDTH - width of widest page is equal to screen width</li> <li>HEIGHT - height of highest page is equal to screen height</li> <li>BOTH - based on widest and highest pages, every page is scaled to be fully visible on screen</li> </ul> <p>Apart from selected policy, every page is scaled to have size relative to other pages.</p> <p>Fit policy can be set using <code>Configurator#pageFitPolicy(FitPolicy)</code>. Default policy is <strong>WIDTH</strong>.</p> <h2>Additional options</h2> <h3>Bitmap quality</h3> <p>By default, generated bitmaps are <em>compressed</em> with <code>RGB_565</code> format to reduce memory consumption. Rendering with <code>ARGB_8888</code> can be forced by using <code>pdfView.useBestQuality(true)</code> method.</p> <h3>Double tap zooming</h3> <p>There are three zoom levels: min (default 1), mid (default 1.75) and max (default 3). On first double tap, view is zoomed to mid level, on second to max level, and on third returns to min level. If you are between mid and max levels, double tapping causes zooming to max and so on.</p> <p>Zoom levels can be changed using following methods:</p> <pre><code class="language-java">void setMinZoom(float zoom); void setMidZoom(float zoom); void setMaxZoom(float zoom); </code></pre> <h2>Possible questions</h2> <h3>Why resulting apk is so big?</h3> <p>Android PdfViewer depends on PdfiumAndroid, which is set of native libraries (almost 16 MB) for many architectures. Apk must contain all this libraries to run on every device available on market. Fortunately, Google Play allows us to upload multiple apks, e.g. one per every architecture. There is good article on automatically splitting your application into multiple apks, available <a href="http://ph0b.com/android-studio-gradle-and-ndk-integration/">here</a>. Most important section is <em>Improving multiple APKs creation and versionCode handling with APK Splits</em>, but whole article is worth reading. You only need to do this in your application, no need for forking PdfiumAndroid or so.</p> <h3>Why I cannot open PDF from URL?</h3> <p>Downloading files is long running process which must be aware of Activity lifecycle, must support some configuration, data cleanup and caching, so creating such module will probably end up as new library.</p> <h3>How can I show last opened page after configuration change?</h3> <p>You have to store current page number and then set it with <code>pdfView.defaultPage(page)</code>, refer to sample app</p> <h3>How can I fit document to screen width (eg. on orientation change)?</h3> <p>Use <code>FitPolicy.WIDTH</code> policy or add following snippet when you want to fit desired page in document with different page sizes:</p> <pre><code class="language-java">Configurator.onRender(new OnRenderListener() { @Override public void onInitiallyRendered(int pages, float pageWidth, float pageHeight) { pdfView.fitToWidth(pageIndex); } }); </code></pre> <h3>How can I scroll through single pages like a ViewPager?</h3> <p>You can use a combination of the following settings to get scroll and fling behaviour similar to a ViewPager:</p> <pre><code class="language-java"> .swipeHorizontal(true) .pageSnap(true) .autoSpacing(true) .pageFling(true) </code></pre> <h2>One more thing</h2> <p>If you have any suggestions on making this lib better, write me, create issue or write some code and send pull request.</p> <h2>License</h2> <p>Created with the help of android-pdfview by <a href="http://joanzapata.com/">Joan Zapata</a></p> <pre><code>Copyright 2017 Bartosz Schiller Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </code></pre> + spring-projects/spring-integration + 2024-08-22T01:30:47Z + tag:github.com,2024-08-22:/spring-projects/spring-integration + + <p>Spring Integration provides an extension of the Spring programming model to support the well-known Enterprise Integration Patterns (EIP)</p><hr><img align="right" width="250" height="250" src="https://spring.io/img/projects/spring-integration.svg?v=2"> <h1>Spring Integration</h1> <p><a href="https://github.com/spring-projects/spring-integration/actions/workflows/ci-snapshot.yml"><img src="https://github.com/spring-projects/spring-integration/actions/workflows/ci-snapshot.yml/badge.svg?sanitize=true" alt="Build Status"></a> <a href="https://ge.spring.io/scans?search.rootProjectNames=spring-integration"><img src="https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&amp;labelColor=02303A" alt="Revved up by Develocity"></a></p> <p>Extends the Spring programming model to support the well-known Enterprise Integration Patterns. Spring Integration enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters. Those adapters provide a higher-level of abstraction over Spring’s support for remoting, messaging, and scheduling. Spring Integration’s primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code.</p> <p>Using the Spring Framework encourages developers to code using interfaces and use dependency injection (DI) to provide a Plain Old Java Object (POJO) with the dependencies it needs to perform its tasks. Spring Integration takes this concept one step further, where POJOs are wired together using a messaging paradigm and individual components may not be aware of other components in the application. Such an application is built by assembling fine-grained reusable components to form a higher level of functionality. With careful design, these flows can be modularized and also reused at an even higher level.</p> <p>In addition to wiring together fine-grained components, Spring Integration provides a wide selection of channel adapters and gateways to communicate with external systems. Channel Adapters are used for one-way integration (send or receive); gateways are used for request/reply scenarios (inbound or outbound).</p> <h1>Installation and Getting Started</h1> <p>First, you need dependencies in your POM/Gradle:</p> <pre><code class="language-xml">&lt;dependency&gt; &lt;groupId&gt;org.springframework.integration&lt;/groupId&gt; &lt;artifactId&gt;spring-integration-core&lt;/artifactId&gt; &lt;/dependency&gt; </code></pre> <p>which is also pulled transitively if you deal with target protocol channel adapters. For example for Apache Kafka support you need just this:</p> <pre><code class="language-xml">&lt;dependency&gt; &lt;groupId&gt;org.springframework.integration&lt;/groupId&gt; &lt;artifactId&gt;spring-integration-kafka&lt;/artifactId&gt; &lt;/dependency&gt; </code></pre> <p>For annotations or Java DSL configuration you need to <em>enable</em> Spring Integration in the application context:</p> <pre><code class="language-java">@EnableIntegration @Configuration public class ExampleConfiguration { } </code></pre> <h1>Code of Conduct</h1> <p>Please see our <a href="https://github.com/spring-projects/.github/raw/main/CODE_OF_CONDUCT.md">Code of conduct</a>.</p> <h1>Reporting Security Vulnerabilities</h1> <p>Please see our <a href="https://github.com/spring-projects/spring-integration/security/policy">Security policy</a>.</p> <h1>Documentation</h1> <p>The Spring Integration maintains reference documentation (<a href="https://docs.spring.io/spring-integration/reference/">published</a> and <a href="https://raw.githubusercontent.com/spring-projects/spring-integration/main/src/reference/antora">source</a>), GitHub <a href="https://github.com/spring-projects/spring-integration/wiki">wiki pages</a>, and an <a href="https://docs.spring.io/spring-integration/docs/current/api/">API reference</a>. There are also <a href="https://spring.io/guides">guides and tutorials</a> across Spring projects.</p> <h1>Checking out and Building</h1> <p>To check out the project and build from the source, do the following:</p> <pre><code>git clone git://github.com/spring-projects/spring-integration.git cd spring-integration ./gradlew clean test or ./gradlew clean testAll </code></pre> <p>The latter runs additional tests (those annotated with <code>@LongRunningIntegrationTest</code>); it is a more thorough test but takes quite a lot longer to run.</p> <p>The test results are captured in <code>build/reports/tests/test</code> (or <code>.../testAll</code>) under each module (in HTML format).</p> <p>Add <code>--continue</code> to the command to perform a complete build, even if there are failing tests in some modules; otherwise the build will stop after the current module(s) being built are completed.</p> <p><strong>NOTE:</strong> While Spring Integration runs with Java SE 17 or higher, a Java 17 compiler is required to build the project.</p> <p>To build and install jars into your local Maven cache:</p> <pre><code>./gradlew build publishToMavenLocal </code></pre> <p>To build api Javadoc (results will be in <code>build/api</code>):</p> <pre><code>./gradlew api </code></pre> <p>To build the reference documentation (results will be in <code>build/site</code>):</p> <pre><code>./gradlew antora </code></pre> <p>To build complete distribution including <code>-dist</code>, <code>-docs</code>, and <code>-schema</code> zip files (results will be in <code>build/distributions</code>):</p> <pre><code>./gradlew dist </code></pre> <h1>Using Eclipse or Spring Tool Suite (with BuildShip Plugin)</h1> <p>If you have the BuildShip plugin installed,</p> <p><em>File -&gt; Import -&gt; Gradle -&gt; Existing Gradle Project</em></p> <h1>Using Eclipse or Spring Tool Suite (when the BuildShip Plugin is not installed)</h1> <p>To generate Eclipse metadata (.classpath and .project files, etc.), do the following:</p> <pre><code>./gradlew eclipse </code></pre> <p>Once complete, you may then import the projects into Eclipse as usual:</p> <p><em>File -&gt; Import -&gt; General -&gt; Existing projects into workspace</em></p> <p>Browse to the <em>'spring-integration'</em> root directory. All projects should import free of errors.</p> <h1>Using IntelliJ IDEA</h1> <p>To import the project into IntelliJ IDEA:</p> <p>File -&gt; Open... -&gt; and select build.gradle from spring-integration project root directory</p> <h1>Guidelines</h1> <p>See also <a href="https://github.com/spring-projects/spring-integration/raw/main/CONTRIBUTING.adoc">Contributor Guidelines</a>.</p> <h1>Resources</h1> <p>For more information, please visit the Spring Integration website at: <a href="https://spring.io/projects/spring-integration/">https://spring.io/projects/spring-integration</a></p> \ No newline at end of file diff --git a/javascript+erb/daily/index.xml b/javascript+erb/daily/index.xml index 08d1df34a00..334e9fe3017 100644 --- a/javascript+erb/daily/index.xml +++ b/javascript+erb/daily/index.xml @@ -1,7 +1,7 @@ GitHub JavaScript+ERB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:45Z + 2024-08-22T01:30:51Z Daily Trending of JavaScript+ERB in GitHub \ No newline at end of file diff --git a/javascript/daily/index.xml b/javascript/daily/index.xml index b94db85b1a3..f643e24caf0 100644 --- a/javascript/daily/index.xml +++ b/javascript/daily/index.xml @@ -1,7 +1,14 @@ GitHub JavaScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:47Z + 2024-08-22T01:30:53Z Daily Trending of JavaScript in GitHub + + bluewave-labs/bluewave-uptime + 2024-08-22T01:30:53Z + tag:github.com,2024-08-22:/bluewave-labs/bluewave-uptime + + <p>BlueWave Uptime Monitor application</p><hr><p><img src="https://img.shields.io/github/license/bluewave-labs/bluewave-uptime" alt=""> <img src="https://img.shields.io/github/repo-size/bluewave-labs/bluewave-uptime" alt=""> <img src="https://img.shields.io/github/commit-activity/w/bluewave-labs/bluewave-uptime" alt=""> <img src="https://img.shields.io/github/last-commit/bluewave-labs/bluewave-uptime" alt=""> <img src="https://img.shields.io/github/languages/top/bluewave-labs/bluewave-uptime" alt=""> <img src="https://img.shields.io/github/issues-pr/bluewave-labs/bluewave-uptime" alt=""> <img src="https://img.shields.io/github/issues/bluewave-labs/bluewave-uptime" alt=""></p> <h1 align="center"><a href="https://bluewavelabs.ca" target="_blank">BlueWave Uptime</a></h1> <p align="center"><strong>An open source server monitoring application</strong></p> <p><img src="https://github.com/user-attachments/assets/0f92d7a3-19cf-430c-8b0f-fe13ff46c51b" alt="Dashboard"></p> <p>BlueWave Uptime is an open source server monitoring application used to track the operational status and performance of servers and websites. It regularly checks whether a server/website is accessible and performs optimally, providing real-time alerts and reports on the monitored services' availability, downtime, and response time.</p> <h2>Features</h2> <ul> <li><input type="checkbox" checked disabled> Completely open source, deployable on your servers</li> <li><input type="checkbox" checked disabled> Website monitoring</li> <li><input type="checkbox" checked disabled> Port monitoring</li> <li><input type="checkbox" checked disabled> Ping monitoring</li> <li><input type="checkbox" checked disabled> Incidents at a glance</li> <li><input type="checkbox" checked disabled> Page speed monitoring</li> <li><input type="checkbox" checked disabled> E-mail notifications</li> <li><input type="checkbox" disabled> Scheduled maintenance (in the works)</li> </ul> <p><strong>Roadmap (short term):</strong></p> <ul> <li><input type="checkbox" disabled> Memory, disk and CPU monitoring</li> <li><input type="checkbox" disabled> 3rd party integrations</li> <li><input type="checkbox" disabled> DNS monitoring</li> <li><input type="checkbox" disabled> SSL monitoring</li> </ul> <p><strong>Roadmap (long term):</strong></p> <ul> <li><input type="checkbox" disabled> Status pages</li> </ul> <h2>Tech stack</h2> <ul> <li><a href="https://react.dev/">ReactJs</a></li> <li><a href="https://mui.com/">MUI (React framework)</a></li> <li><a href="https://nodejs.org/en">Node.js</a></li> <li><a href="https://mongodb.com">MongoDB</a></li> </ul> <h2>Contributing</h2> <p>We love contributors. Here's how you can contribute:</p> <ul> <li>Check <a href="https://github.com/bluewave-labs/bluewave-uptime/raw/master/CONTRIBUTING.md">Contributor's guideline</a>.</li> <li>Have a look at our Figma designs <a href="https://www.figma.com/design/RPSfaw66HjzSwzntKcgDUV/Uptime-Genie?node-id=0-1&amp;t=WqOFv9jqNTFGItpL-1">here</a>. We encourage you to copy to your own Figma page, then work on it as it is read-only.</li> <li>Open an issue if you believe you've encountered a bug</li> <li>Make a pull request to add new features/make quality-of-life improvements/fix bugs.</li> </ul> <a href="https://github.com/bluewave-labs/bluewave-uptime/graphs/contributors"> <img src="https://contrib.rocks/image?repo=bluewave-labs/bluewave-uptime"> </a> <p>Made with <a href="https://contrib.rocks">contrib.rocks</a>.</p> <p><img src="https://repobeats.axiom.co/api/embed/c35d999c82dbb31e967427ea4166c14da4172e73.svg?sanitize=true" alt="Alt" title="Repobeats analytics image"></p> <p><a href="https://star-history.com/#bluewave-labs/bluewave-uptime&amp;Date"><img src="https://api.star-history.com/svg?repos=bluewave-labs/bluewave-uptime&amp;type=Date" alt="Star History Chart"></a></p> <p>Also check other developer and contributor-friendly projects of BlueWave:</p> <ul> <li><a href="https://github.com/bluewave-labs/bluewave-hrm">BlueWave HRM</a></li> <li><a href="https://github.com/bluewave-labs/bluewave-onboarding">BlueWave Onboarding</a></li> <li><a href="https://github.com/bluewave-labs/bluewave-dataroom">BlueWave DataRoom</a></li> <li><a href="https://github.com/bluewave-labs/bluewave-chatfabrica">BlueWave ChatFabrica</a></li> </ul> <h2>Getting Started</h2> <ul> <li>Clone this repository to your local machine</li> </ul> <ol> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#dev-quickstart">Quickstart for Developers</a></li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#docker-compose">Docker Compose</a></li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#client">Installation (Client)</a></li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#config-client">Configuration(Client)</a> <ul> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#env-vars-client">Environment</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#server">Getting Started (Server)</a> <ul> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#install-server">Install Server</a></li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#env-vars-server">Environment</a></li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#databases">Database</a> <ul> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#optional-docker-databases">(Optional) Dockerised Databases</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#start-server">Start Server</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#endpoints">Endpoints</a> <h6>Auth</h6> <ul> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-register">/api/v1/auth/register</a></li> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-login">/api/v1/auth/login</a></li> <li><code>PUT</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-auth-user-edit-id">/api/v1/auth/user/{userId}</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-all-users-id">/api/v1/auth/users</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-all-admin-users-id">/api/v1/auth/users/admin</a></li> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-auth-invite-id">/api/v1/auth/invite</a></li> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-auth-invite-verify-id">/api/v1/auth/invite/verify/</a></li> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-auth-recovery-request-id">/api/v1/auth/recovery/request</a></li> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-auth-recovery-validate-id">/api/v1/auth/recovery/validate</a></li> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-auth-recovery-reset-id">/api/v1/auth/recovery/reset</a></li> </ul> <h6>Monitors</h6> <ul> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-monitors">/api/v1/monitors</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-monitor-id">/api/v1/monitors/{monitorId}</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-monitors-user-userid">/api/v1/monitors/user/{userId}?limit</a></li> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-monitors">/api/v1/monitors</a></li> <li><code>PUT</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#put-monitors-id">/api/v1/monitors/{monitorId}</a></li> <li><code>DELETE</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#delete-monitors-id">/api/v1/monitors/{monitorId}</a></li> <li><code>DELETE</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#delete-all-monitors">/api/v1/monitors/all</a></li> </ul> <h6>Checks</h6> <ul> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-checks">/api/v1/checks/{monitorId}</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-checks">/api/v1/checks/{monitorId}</a></li> <li><code>DELETE</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#delete-checks">/api/v1/checks/{monitorId}</a></li> </ul> <h6>Alerts</h6> <ul> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#create-alert">/api/v1/alerts/{monitorId}</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-alerts-user-id">/api/v1/alerts/user/{userId}</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-alerts-monitor-id">/api/v1/alerts/monitor/{monitorId}</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-alert-alert-id">/api/v1/alerts/{alertId}</a></li> <li><code>PUT</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#edit-alert">/api/v1/alerts/{alertId}</a></li> <li><code>DELETE</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#delete-alert">/api/v1/alerts/{alertId}</a></li> </ul> <h6>Page Speed</h6> <ul> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-pagespeed">/api/v1/pagespeed/:monitorId</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-pagespeed">/api/v1/pagespeed/:monitorId</a></li> <li><code>DELETE</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#delete-pagespeed">/api/v1/pagespeed/:monitorId</a></li> </ul> <h6>Maintenance Window</h6> <ul> <li><code>POST</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#post-maintenance-window">/api/v1/maintenance-window/:monitorId</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-maintenance-window-by-userid">/api/v1/maintenance-window/user/:userId</a></li> <li><code>GET</code> <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#get-maintenance-window-by-monitor-id">/api/v1/maintenance-window/monitor/:monitorId</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#error-handling">Error Handling</a></li> <li><a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#contributors">Contributors</a></li> </ol> <hr> <h4><u>Quickstart for Developers</u> <a id="dev-quickstart"></a></h4> <p><span style="color: red; font-weight: bold;">MAKE SURE YOU CD TO THE SPECIFIED DIRECTORIES AS PATHS IN COMMANDS ARE RELATIVE</span></p> <h5>Cloning and Initial Setup</h5> <ol> <li>Clone this repository</li> <li>Checkout the <code>develop</code> branch <code>git checkout develop</code></li> </ol> <h5>Docker Images Setup</h5> <ol start="3"> <li><span style="color: red; font-weight: bold;">CD</span> to the <code>Docker</code> directory</li> <li>Run <code>docker run -d -p 6379:6379 -v $(pwd)/redis/data:/data --name uptime_redis uptime_redis</code></li> <li>Run <code>docker run -d -p 27017:27017 -v $(pwd)/mongo/data:/data/db --name uptime_database_mongo uptime_database_mongo</code></li> </ol> <h5>Server Setup</h5> <ol start="6"> <li><span style="color: red; font-weight: bold;">CD</span> to <code>Server</code> directory, run <code>npm install</code></li> <li>While in <code>Server</code> directory, create a <code>.env</code> file with the <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#env-vars-server">required environmental variables</a></li> <li>While in the <code>Server</code> directory, run <code>npm run dev</code></li> </ol> <h5>Client Setup</h5> <ol start="9"> <li><span style="color: red; font-weight: bold;">CD</span> to <code>Client</code> directory <code>run npm install</code></li> <li>While in the <code>Client</code> directory, create a <code>.env</code> file with the <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#env-vars-client">required environmental variables</a></li> <li>While in the <code>Client</code> cirectory run <code>npm run dev</code></li> </ol> <h5>Access Application</h5> <ol start="12"> <li>Client is running at <code>localhost:5173</code></li> <li>Server is running at <code>localhost:5000</code></li> </ol> <hr> <h4><u>Docker Compose</u> <a id="docker-compose"></a></h4> <p>The fastest way to start the application is to use our Dockerfiles and <a href="https://docs.docker.com/compose/">Docker Compose</a>.</p> <p>To get the application up and running you need to:</p> <ol> <li>In the <code>Docker</code> directory run the build script <code>build_images.sh</code> to build docker images for the client, server, Redis database, and MongoDB database.</li> <li>In the <code>Docker</code> directory, create a <code>server.env</code> file with the <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#env-vars-server">requried environtmental variables</a> for the server. Sample file:</li> </ol> <pre><code>CLIENT_HOST="http://localhost:5173" JWT_SECRET=&lt;jwt_secret&gt; DB_TYPE="MongoDB" DB_CONNECTION_STRING="mongodb://mongodb:27017/uptime_db" REDIS_HOST="redis" REDIS_PORT=6379 TOKEN_TTL="99d" PAGESPEED_API_KEY=&lt;api_key&gt; SYSTEM_EMAIL_HOST="smtp.gmail.com" SYSTEM_EMAIL_PORT=465 SYSTEM_EMAIL_ADDRESS=&lt;system_email&gt; SYSTEM_EMAIL_PASSWORD=&lt;system_email_password&gt; </code></pre> <ol start="3"> <li>In the <code>Client</code> directory, create a <code>client.env</code> file with the <a href="https://raw.githubusercontent.com/bluewave-labs/bluewave-uptime/develop/#env-vars-client">required environtmental variables</a> for the client. Sample file:</li> </ol> <pre><code>VITE_APP_API_BASE_URL="http://localhost:5000/api/v1" VITE_APP_API_LOG_LEVEL="debug" </code></pre> <ol start="4"> <li>In the <code>Docker</code> directory run <code>docker compose up</code> to run the <code>docker-compose.yaml</code> file and start all four images.</li> </ol> <p>That's it, the application is ready to use on port 80. <br></p> <h3>Client</h3> <h4><u>Installation</u></h4> <ol> <li>Change directory to the <code>Client</code> directory</li> <li>Install all dependencies by running <code>npm install</code></li> </ol> <br> <h4><u>Configuration</u> <a id="config-client"></a></h4> <h5>Environmental Variables <a id="env-vars-client"></a></h5> <table> <thead> <tr> <th>ENV Variable Name</th> <th>Required/Optional</th> <th>Type</th> <th>Description</th> <th>Accepted Values</th> </tr> </thead> <tbody> <tr> <td>VITE_APP_API_BASE_URL</td> <td>Required</td> <td><code>string</code></td> <td>Base URL of server</td> <td>{host}/api/v1</td> </tr> <tr> <td>VITE_APP_LOG_LEVEL</td> <td>Optional</td> <td><code>string</code></td> <td>Log level</td> <td><code>"none"</code>|<code>"error"</code> | <code>"warn"</code> |</td> </tr> </tbody> </table> <br> <h4><u>Starting Development Server</u></h4> <ol> <li>Run <code>npm run dev</code> to start the development server.</li> </ol> <hr> <h3>Getting Started (Server) <a id="server"></a></h3> <h4><u>Manual Install</u> <a id="manual-install"></a></h4> <h5>Install Server <a id="install-server"></a></h5> <ol> <li>Change directory to the <code>Server</code> directory</li> <li>Install all dependencies by running <code>npm install</code></li> </ol> <br> <h5>Environmental Variables <a id="env-vars-server"></a></h5> <p>Configure the server with the following environmental variables:</p> <table> <thead> <tr> <th>ENV Variable Name</th> <th>Required/Optional</th> <th>Type</th> <th>Description</th> <th>Accepted Values</th> </tr> </thead> <tbody> <tr> <td>CLIENT_HOST</td> <td>Required</td> <td><code>string</code></td> <td>Frontend Host</td> <td></td> </tr> <tr> <td>JWT_SECRET</td> <td>Required</td> <td><code>string</code></td> <td>JWT secret</td> <td></td> </tr> <tr> <td>DB_TYPE</td> <td>Optional</td> <td><code>string</code></td> <td>Specify DB to use</td> <td><code>MongoDB | FakeDB</code></td> </tr> <tr> <td>DB_CONNECTION_STRING</td> <td>Required</td> <td><code>string</code></td> <td>Specifies URL for MongoDB Database</td> <td></td> </tr> <tr> <td>PORT</td> <td>Optional</td> <td><code>integer</code></td> <td>Specifies Port for Server</td> <td></td> </tr> <tr> <td>LOGIN_PAGE_URL</td> <td>Required</td> <td><code>string</code></td> <td>Login url to be used in emailing service</td> <td></td> </tr> <tr> <td>REDIS_HOST</td> <td>Required</td> <td><code>string</code></td> <td>Host address for Redis database</td> <td></td> </tr> <tr> <td>REDIS_PORT</td> <td>Required</td> <td><code>integer</code></td> <td>Port for Redis database</td> <td></td> </tr> <tr> <td>TOKEN_TTL</td> <td>Optional</td> <td><code>string</code></td> <td>Time for token to live</td> <td>In vercel/ms format <a href="https://github.com/vercel/ms">https://github.com/vercel/ms</a></td> </tr> <tr> <td>PAGESPEED_API_KEY</td> <td>Optional</td> <td><code>string</code></td> <td>API Key for PageSpeed requests</td> <td></td> </tr> <tr> <td>SYSTEM_EMAIL_HOST</td> <td>Required</td> <td><code>string</code></td> <td>Host to send System Emails From</td> <td></td> </tr> <tr> <td>SYSTEM_EMAIL_PORT</td> <td>Required</td> <td><code>number</code></td> <td>Port for System Email Host</td> <td></td> </tr> <tr> <td>SYSTEM_EMAIL_ADDRESS</td> <td>Required</td> <td><code>string</code></td> <td>System Email Address</td> <td></td> </tr> <tr> <td>SYSTEM_EMAIL_PASSWORD</td> <td>Required</td> <td><code>string</code></td> <td>System Email Password</td> <td></td> </tr> </tbody> </table> <br> <h5>Databases <a id="databases"></a></h5> <p>This project requires a number of databases to run:</p> <ol> <li>Main database for the application. This project includes an implementation for a MongoDB database as well as a MongoDB Docker image.</li> <li>A Redis database is required for the Queue implementation in the PingService. This project includes a Redis docker image.</li> </ol> <p>You may use the included Dockerfiles to spin up databases quickly if you wish.</p> <h6>(Optional) Dockerised Databases <a id="optional-docker-databases"></a></h6> <p>Dockerfiles for the server and databases are located in the <code>Docker</code> directory</p> <details> <summary><b>MongoDB Image</b></summary> <p>Location: <code>Docker/mongoDB.Dockerfile</code></p> <p>The <code>Docker/mongo/data</code> directory should be mounted to the MongoDB container in order to persist data.</p> <p>From the <code>Docker</code> directory run</p> <ol> <li>Build the image: <code>docker build -f mongoDB.Dockerfile -t uptime_database_mongo .</code></li> <li>Run the docker image: <code>docker run -d -p 27017:27017 -v $(pwd)/mongo/data:/data/db --name uptime_database_mongo uptime_database_mongo</code></li> </ol> </details> <details> <summary><b>Redis Image</b></summary> <p>Location <code>Docker/redis.Dockerfile</code></p> <p>the <code>Docker/redis/data</code> directory should be mounted to the Redis container in order to persist data.</p> <p>From the <code>Docker</code> directory run</p> <ol> <li>Build the image: <code>docker build -f redis.Dockerfile -t uptime_redis .</code></li> <li>Run the image: <code>docker run -d -p 6379:6379 -v $(pwd)/redis/data:/data --name uptime_redis uptime_redis</code></li> </ol> </details> <br> <h5>Starting the Development Server <a id="start-server"></a></h5> <ul> <li>run <code>npm run dev</code> to start the development server</li> </ul> <p>OR</p> <ul> <li>run <code>node index.js</code> to start server</li> </ul> <hr> <h4>Endpoints</h4> <p>All endpoints return a response in this format:</p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>success</td> <td><code>boolean</code></td> <td>Success or failure of request</td> </tr> <tr> <td>msg</td> <td><code>string</code></td> <td>Message describing response</td> </tr> <tr> <td>data</td> <td><code>Object</code></td> <td>Arbitrary Payload</td> </tr> </tbody> </table> <p>Example:</p> <pre><code>{success: true, msg: "Successful Request", data: {test: testData}} </code></pre> <hr> <h5>Data Types</h5> <details> <summary><code>User</code></summary> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>firstname</td> <td><code>string</code></td> <td>First name</td> </tr> <tr> <td>lastname</td> <td><code>string</code></td> <td>Last name</td> </tr> <tr> <td>email</td> <td><code>string</code></td> <td>User's email</td> </tr> <tr> <td>profilePicUrl</td> <td><code>string</code></td> <td>URL to User's picture</td> </tr> <tr> <td>isActive</td> <td><code>boolean</code></td> <td>Default to <code>true</code></td> </tr> <tr> <td>isVerified</td> <td><code>boolean</code></td> <td>Default to <code>false</code></td> </tr> <tr> <td>updated_at</td> <td><code>Date</code></td> <td>Last update time</td> </tr> <tr> <td>created_at</td> <td><code>Date</code></td> <td>Time created at</td> </tr> </tbody> </table> </details> <details> <summary><code>Monitor</code></summary> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>userId</td> <td><code>string</code></td> <td>Unique ID identifying monitor creator</td> </tr> <tr> <td>name</td> <td><code>string</code></td> <td>Name of the monitor</td> </tr> <tr> <td>description</td> <td><code>string</code></td> <td>Description of the monitor</td> </tr> <tr> <td>url</td> <td><code>string</code></td> <td>Url the monitor will ping</td> </tr> <tr> <td>isActive</td> <td><code>boolean</code></td> <td>Whether or not the monitor is active</td> </tr> <tr> <td>interval</td> <td><code>integer</code></td> <td>Interval with which to ping monitor (ms)</td> </tr> <tr> <td>updatedAt</td> <td><code>Date</code></td> <td>Last time the monitor was updated</td> </tr> <tr> <td>CreatedAt</td> <td><code>Date</code></td> <td>When the monitor was updated</td> </tr> </tbody> </table> </details> <details> <summary><code>Check</code></summary> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>monitorId</td> <td><code>string</code></td> <td>Unique ID for the monitor</td> </tr> <tr> <td>status</td> <td><code>boolean</code></td> <td>Indicates the service is Up or Down</td> </tr> <tr> <td>responseTime</td> <td><code>integer</code></td> <td>Indicates the response time of the service (ms)</td> </tr> <tr> <td>statusCode</td> <td><code>integer</code></td> <td>Status Code returned from the service</td> </tr> <tr> <td>message</td> <td><code>string</code></td> <td>Message returned from the service</td> </tr> <tr> <td>updatedAt</td> <td><code>Date</code></td> <td>Last time the check was updated</td> </tr> <tr> <td>CreatedAt</td> <td><code>Date</code></td> <td>When the check was created</td> </tr> </tbody> </table> </details> <details> <summary><code>Alert</code></summary> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>checkId</td> <td><code>string</code></td> <td>Unique ID for the associated check</td> </tr> <tr> <td>monitorId</td> <td><code>string</code></td> <td>Unique ID for the associated monitor</td> </tr> <tr> <td>userId</td> <td><code>string</code></td> <td>Unique ID for the associated user</td> </tr> <tr> <td>status</td> <td><code>boolean</code></td> <td>Indicates the service is Up or Down</td> </tr> <tr> <td>message</td> <td><code>string</code></td> <td>Message for the user about the down service</td> </tr> <tr> <td>notifiedStatus</td> <td><code>boolean</code></td> <td>Indicates whether the user is notified</td> </tr> <tr> <td>acknowledgeStatus</td> <td><code>boolean</code></td> <td>Indicates whether the user acknowledged the alert</td> </tr> <tr> <td>updatedAt</td> <td><code>Date</code></td> <td>Last time the alert was updated</td> </tr> <tr> <td>CreatedAt</td> <td><code>Date</code></td> <td>When the alert was created</td> </tr> </tbody> </table> </details> <hr> <h6>Auth</h6> <details> <summary id="post-register"><code>POST</code> <b>/api/v1/auth/register</b></summary> <h5>Method/Headers</h5> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> <tr> <td>content-type</td> <td>multipart/form-data</td> </tr> </tbody> </table> </blockquote> <h5>Form</h5> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>firstName</td> <td><code>string</code></td> <td></td> </tr> <tr> <td>lastName</td> <td><code>string</code></td> <td></td> </tr> <tr> <td>email</td> <td><code>string</code></td> <td>Valid email address</td> </tr> <tr> <td>password</td> <td><code>string</code></td> <td>Min 8 chars, One Upper, one number, one special</td> </tr> <tr> <td>role</td> <td><code>Array&lt;string&gt;</code></td> <td>Array of user roles</td> </tr> </tbody> </table> </blockquote> <h5>Response Payload</h5> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>User</td> <td>User data</td> </tr> <tr> <td>JWT</td> <td>JSON web token</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/auth/register \ --header 'Content-Type: multipart/form-data' \ --form firstName=Alex \ --form lastName=Hollidaty \ --form email=ajhollid@gmail.com \ --form 'password=Testtest1!' \ --form 'role[]=admin' </code></pre> <h5>Sample Response</h5> <pre><code class="language-json">{ "success": true, "msg": "User created successfully", "data": { "user": { "_id": "66a1425b873da2207443f192", "firstName": "First Name", "lastName": "Last Name", "email": "name@gmail.com", "isActive": true, "isVerified": false, "role": ["admin"], "createdAt": "2024-07-24T18:05:15.852Z", "updatedAt": "2024-07-24T18:05:15.852Z", "__v": 0 }, "token": "&lt;token&gt;" } } </code></pre> </details> <details> <summary id="post-login"><code>POST</code> <b>/api/v1/auth/login</b></summary> <h5>Method/Headers</h5> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h5>Body</h5> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>email</td> <td><code>string</code></td> <td>Valid email address</td> </tr> <tr> <td>password</td> <td><code>string</code></td> <td></td> </tr> </tbody> </table> </blockquote> <h5>Response Payload</h5> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>User</td> <td>User data</td> </tr> <tr> <td>JWT</td> <td>JSON web token</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/auth/login \ --header 'Authorization: Bearer undefined' \ --header 'Content-Type: application/json' \ --data '{ "email" : "name@gmail.com", "password": "Testtest1!" }' </code></pre> <h5>Sample response</h5> <pre><code class="language-json">{ { "success": true, "msg": "User logged in successfully", "data": { "user": { "_id": "66a1425b873da2207443f192", "firstName": "First Name", "lastName": "Last Name", "email": "name@gmail.com", "isActive": true, "isVerified": false, "role": ["admin"], "createdAt": "2024-07-24T18:05:15.852Z", "updatedAt": "2024-07-24T18:05:15.852Z", "__v": 0 }, "token": "&lt;token&gt;" } } } </code></pre> </details> <details> <summary id="post-auth-user-edit-id"><code>POST</code><b>/api/v1/auth/user/{userId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> <tr> <td>content-type</td> <td>multipart/form-data</td> </tr> </tbody> </table> </blockquote> <h5>Form</h5> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>firstName</td> <td><code>string</code></td> <td>Optional</td> </tr> <tr> <td>lastName</td> <td><code>string</code></td> <td>Optional</td> </tr> <tr> <td>profileIame</td> <td><code>file</code></td> <td>Optional</td> </tr> <tr> <td>password</td> <td><code>string</code></td> <td>Required to change password</td> </tr> <tr> <td>newPassword</td> <td><code>string</code></td> <td>Required to change password</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>User</code></td> <td>Returns the updated user</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/auth/user/66a1425b873da2207443f192 \ --header 'Authorization: &lt;bearer_token&gt;' \ --header 'Content-Type: multipart/form-data' \ --form firstName=Test \ --form lastName=Test \ --form profileImage=@/home/user/Desktop/cat.jpg \ --form 'newPassword=Testtest1!' \ --form 'password=Testtest2!' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "User updated successfully", "data": { "_id": "66a1425b873da2207443f192", "firstName": "First name", "lastName": "Last name", "email": "name@gmail.com", "isActive": true, "isVerified": false, "role": ["admin"], "createdAt": "2024-07-24T18:05:15.852Z", "updatedAt": "2024-07-24T18:31:32.314Z", "__v": 0, "avatarImage": "&lt;Base64 Image&gt;" } } </code></pre> </details> <details> <summary id="#get-all-users-id"><code>GET</code><b>/api/v1/auth/users</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Array&lt;User&gt;</code></td> <td>Returns an array containing all users</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/auth/users \ --header 'Authorization: &lt;bearer_token&gt;\ </code></pre> <h5>Sample Resonse</h5> <pre><code class="language-json">{ "success": true, "msg": "Got all users", "data": [ { "_id": "669e90072d5663d25808bc7b", "firstName": "First name", "lastName": "Last name", "email": "name@gmail.com", "isActive": true, "isVerified": false, "role": ["admin"], "createdAt": "2024-07-22T16:59:51.695Z", "updatedAt": "2024-07-22T16:59:51.695Z", "__v": 0 } ] } </code></pre> </details> <details> <summary id="post-auth-recovery-request-id"><code>POST</code><b>/api/v1/auth/recovery/request</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h5>Body</h5> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>email</td> <td><code>string</code></td> <td>User's email</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>RecoveryToken</code></td> <td>Returns a recovery token if email found</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/auth/recovery/request \ --header 'Content-Type: application/json' \ --data '{ "email" : "name@gmail.com" }' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Created recovery token", "data": { "email": "name@gmail.com", "token": "f519da5e4a9be40cfc3c0fde97e60c0e6d17bdaa613f5ba537a45073f3865193", "_id": "6668878263587f30748e968e", "expiry": "2024-06-11T17:21:06.984Z", "createdAt": "2024-06-11T17:21:06.985Z", "updatedAt": "2024-06-11T17:21:06.985Z", "__v": 0 } } </code></pre> </details> <details> <summary id="post-auth-recovery-validate-id"><code>POST</code><b>/api/v1/auth/recovery/validate</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h5>Body</h5> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>recoveryToken</td> <td><code>string</code></td> <td>Token issued in <code>/recovery/request</code></td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>RecoveryToken</code></td> <td>Returns the recovery token</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/auth/recovery/validate \ --header 'Content-Type: application/json' \ --data '{ "recoveryToken" : "f519da5e4a9be40cfc3c0fde97e60c0e6d17bdaa613f5ba537a45073f3865193" }' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Token is valid", "data": { "_id": "6668894263587f30748e969a", "email": "name@gmail.com", "token": "457d9926b24dedf613f120eeb524ef00ac45b3f0fc5c70bd25b1cc8aa83a64a0", "expiry": "2024-06-11T17:28:34.349Z", "createdAt": "2024-06-11T17:28:34.349Z", "updatedAt": "2024-06-11T17:28:34.349Z", "__v": 0 } } </code></pre> </details> <details> <summary id="post-auth-recovery-reset-id"><code>POST</code><b>/api/v1/auth/recovery/reset</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h5>Body</h5> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>recoveryToken</td> <td><code>string</code></td> <td>Token issued returned by <code>/recovery/validate</code></td> </tr> <tr> <td>password</td> <td><code>string</code></td> <td>User's new password`</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>User</code></td> <td>Returns the updated user</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/auth/recovery/reset \ --header 'Content-Type: application/json' \ --data '{ "recoveryToken" : "f519da5e4a9be40cfc3c0fde97e60c0e6d17bdaa613f5ba537a45073f3865193", "password": "testtest" }' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Password reset", "data": { "_id": "66675891cb17336d84c25d9f", "firstname": "First Name", "lastname": "Last Name", "email": "name@gmail.com", "isActive": true, "isVerified": false, "createdAt": "2024-06-10T19:48:33.863Z", "updatedAt": "2024-06-11T17:21:22.289Z", "__v": 0 } } </code></pre> </details> <hr> <h6>Monitors</h6> <details> <summary id="get-monitors"><code>GET</code> <b>/api/v1/monitors</b></summary> <h5>Method/Headers</h5> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h5>Response Payload</h5> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Array&lt;Monitor&gt;</code></td> <td>Array of all monitors</td> </tr> </tbody> </table> </blockquote> <h6>Sample cURL Request</h6> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/monitors \ --header '&lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Monitors found", "data": [ { "_id": "664d070786e62625ac612ca1", "userId": "6645079aae0b439371913972", "name": "Wha3", "description": "Description", "url": "https://monitor0.com", "isActive": true, "interval": 60000, "createdAt": "2024-05-21T20:41:43.051Z", "updatedAt": "2024-05-21T20:45:10.496Z", "__v": 0 }, { "_id": "664e5ccf189c864800debc16", "userId": "6645079aae0b439371913972", "name": "Inserting a new Monitor", "description": "Description", "url": "https://monitor0.com", "isActive": true, "interval": 60000, "createdAt": "2024-05-22T20:59:59.295Z", "updatedAt": "2024-05-22T20:59:59.295Z", "__v": 0 } ] } </code></pre> </details> <details> <summary id="get-monitor-id"><code>GET</code> <b>/api/v1/monitor/{id}?status</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h6>Query Params</h6> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Required</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>status</td> <td><code>boolean</code></td> <td>Optional</td> <td>Check status</td> </tr> <tr> <td>limit</td> <td><code>number</code></td> <td>Optional</td> <td>Number of checks to return</td> </tr> <tr> <td>sortOrder</td> <td><code>string</code></td> <td>Optional</td> <td><code>desc</code>:Newest -&gt; Oldest, <code>asc</code>: Oldest -&gt; Newest</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Monitor</code></td> <td>Single monitor with the id in the request parameter</td> </tr> </tbody> </table> </blockquote> <h6>Sample cURL Request</h6> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/monitors/664d070786e62625ac612ca1?status=true?limit=0 \ --header '&lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Got monitor by Id successfully", "data": { "_id": "6671eb54f7040ece47892f53", "userId": "666c9146c9bfa20db790b1df", "name": "Google Monitor", "description": "Google", "type": "http", "url": "https://www.google.com/404", "isActive": true, "interval": 10000, "createdAt": "2024-06-18T20:17:24.112Z", "updatedAt": "2024-06-18T20:17:24.112Z", "__v": 0, "checks": [ { "_id": "6671eb5af7040ece47892f61", "monitorId": "6671eb54f7040ece47892f53", "status": false, "responseTime": 145, "expiry": "2024-06-18T20:17:30.246Z", "statusCode": 404, "createdAt": "2024-06-18T20:17:30.246Z", "updatedAt": "2024-06-18T20:17:30.246Z", "__v": 0 }, { "_id": "6671eb64f7040ece47892f6b", "monitorId": "6671eb54f7040ece47892f53", "status": false, "responseTime": 170, "expiry": "2024-06-18T20:17:40.209Z", "statusCode": 404, "createdAt": "2024-06-18T20:17:40.210Z", "updatedAt": "2024-06-18T20:17:40.210Z", "__v": 0 } ] } } </code></pre> </details> <details> <summary id="get-monitors-user-userid"><code>GET</code> <b>/api/v1/monitors/user/{userId}?limit</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h6>Query Params</h6> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Required</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>status</td> <td><code>boolean</code></td> <td>Optional</td> <td>Check status</td> </tr> <tr> <td>type</td> <td><code>string</code></td> <td>Optional</td> <td>Multiple allowed: <code>http</code> | <code>ping</code> | <code>pagespeed</code></td> </tr> <tr> <td>limit</td> <td><code>number</code></td> <td>Optional</td> <td>Monitor status</td> </tr> <tr> <td>sortOrder</td> <td><code>string</code></td> <td>Optional</td> <td><code>desc</code>:Newest -&gt; Oldest, <code>asc</code>: Oldest -&gt; Newest</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Array&lt;Monitor&gt;</code></td> <td>Array of monitors created by user with specified UserID</td> </tr> </tbody> </table> </blockquote> <h6>Sample cURL Request</h6> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/monitors/user/6645079aae0b439371913972?limit=25 \ --header '&lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Got monitor for 666c9146c9bfa20db790b1df successfully\"", "data": [ { "_id": "6671eb54f7040ece47892f53", "userId": "666c9146c9bfa20db790b1df", "name": "Google Monitor", "description": "Google", "type": "http", "url": "https://www.google.com/404", "isActive": true, "interval": 10000, "createdAt": "2024-06-18T20:17:24.112Z", "updatedAt": "2024-06-18T20:17:24.112Z", "__v": 0, "checks": [ { "_id": "6671eb5af7040ece47892f61", "monitorId": "6671eb54f7040ece47892f53", "status": false, "responseTime": 145, "expiry": "2024-06-18T20:17:30.246Z", "statusCode": 404, "createdAt": "2024-06-18T20:17:30.246Z", "updatedAt": "2024-06-18T20:17:30.246Z", "__v": 0 } ] } ] } </code></pre> </details> <details> <summary id="post-monitors"><code>POST</code><b>/api/v1/monitors</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h5>Body</h5> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> <th>Accepted Values</th> </tr> </thead> <tbody> <tr> <td>userId</td> <td><code>string</code></td> <td>UserId of current user</td> <td></td> </tr> <tr> <td>name</td> <td><code>string</code></td> <td>Monitor name</td> <td></td> </tr> <tr> <td>description</td> <td><code>string</code></td> <td>Monitor Description</td> <td></td> </tr> <tr> <td>type</td> <td><code>string</code></td> <td>Valid email address</td> <td><code>"ping"</code>|<code>"http"</code>|<code>pagespeed</code></td> </tr> <tr> <td>url</td> <td><code>string</code></td> <td>URL of service or IP</td> <td></td> </tr> <tr> <td>isActive</td> <td><code>boolean</code></td> <td></td> <td></td> </tr> <tr> <td>interval</td> <td><code>number</code></td> <td>In ms</td> <td></td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Monitor</code></td> <td>Returns newly created <code>Monitor</code></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/monitors \ --header &lt;bearer_token&gt; \ --header 'Content-Type: application/json' \ --data '{ "userId": "66675891cb17336d84c25d9f", "name": "Ping Google", "description": "Google", "type": "ping", "url": "8.8.8.8", "isActive": true, "interval": 5000}' </code></pre> <h5>Sample Response</h5> <pre><code class="language-json">{ "success": true, "msg": "Monitor created", "data": { "userId": "6645079aae0b439371913972", "name": "Inserting a new Monitor", "description": "Description", "url": "https://monitor0.com", "isActive": true, "interval": 60000, "_id": "664e5ccf189c864800debc16", "createdAt": "2024-05-22T20:59:59.295Z", "updatedAt": "2024-05-22T20:59:59.295Z", "__v": 0 } } </code></pre> </details> <details> <summary id="post-monitors-del-id"><code>POST</code><b>/api/v1/monitors/delete/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>None</td> <td>No payload returned</td> </tr> </tbody> </table> </blockquote> <h6>Sample CURL request</h6> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/monitors/delete/664e632a7a3ee9d620761938 \ --header '&lt;bearer_token&gt;' \ --header 'Content-Type: application/json' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Monitor deleted" } </code></pre> <h2></h2> </details> <details> <summary id="post-monitors-edit-id"><code>POST</code><b>/api/v1/monitors/edit/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> <tr> <td>content-type</td> <td>application/json</td> </tr> </tbody> </table> </blockquote> <h5>Body</h5> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> <th>Accepted Values</th> </tr> </thead> <tbody> <tr> <td>name</td> <td><code>string</code></td> <td>Monitor name</td> <td></td> </tr> <tr> <td>description</td> <td><code>string</code></td> <td>Monitor Description</td> <td></td> </tr> <tr> <td>interval</td> <td><code>number</code></td> <td>In ms</td> <td></td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Monitor</code></td> <td>Returns the updated monitor</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/monitors/edit/664e5ccf189c864800debc16 \ --header '&lt;bearer_token' \ --header 'Content-Type: application/json' \ --data ' { "name": "Edited monitor", "description": "Description", "interval": 60000 }' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Monitor edited", "data": { "_id": "664e5ccf189c864800debc16", "userId": "6645079aae0b439371913972", "name": "Edited monitor", "description": "Description", "url": "https://monitor0.com", "isActive": true, "interval": 60000, "createdAt": "2024-05-22T20:59:59.295Z", "updatedAt": "2024-05-22T21:34:33.893Z", "__v": 0 } } </code></pre> </details> <hr> <h6>Checks</h6> <details> <summary id="post-checks"><code>POST</code><b>/api/v1/checks/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Check</code></td> <td>Returns newly created check</td> </tr> </tbody> </table> </blockquote> <h6>Body</h6> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>monitorId</td> <td><code>string</code></td> <td>Monitor associated with Check</td> </tr> <tr> <td>status</td> <td><code>boolean</code></td> <td><code>true</code> for up and <code>false</code> for down</td> </tr> <tr> <td>responseTime</td> <td><code>number</code></td> <td>How long it took the server to respond</td> </tr> <tr> <td>statusCode</td> <td><code>number</code></td> <td>HTTP Status code of response</td> </tr> <tr> <td>message</td> <td><code>string</code></td> <td></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/checks/66562414035c4ce6a8a610ac \ --header 'Authorization: &lt;bearer_token&gt;' \ --header 'Content-Type: application/json' \ --data '{ "monitorId": "66562414035c4ce6a8a610ac", "status": true, "responseTime": 1, "statusCode": 200, "message": "good" }' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Check created", "data": { "monitorId": "66562414035c4ce6a8a610ac", "status": true, "responseTime": 1, "statusCode": 200, "message": "good", "_id": "66576decba9f70148ea1f354", "createdAt": "2024-05-29T18:03:24.445Z", "updatedAt": "2024-05-29T18:03:24.445Z", "__v": 0 } } </code></pre> </details> <details> <summary id="get-checks"><code>GET</code><b>/api/v1/checks/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Array&lt;Checks&gt;</code></td> <td>Array of <code>Check</code> objects</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/checks/66562414035c4ce6a8a610ac \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Checks retrieved", "data": [ { "_id": "66576c0194e11c0d4409d3c1", "monitorId": "66562414035c4ce6a8a610ac", "status": true, "responseTime": 1, "statusCode": 200, "message": "good", "createdAt": "2024-05-29T17:55:13.581Z", "updatedAt": "2024-05-29T17:55:13.581Z", "__v": 0 }, { "_id": "66576c0994e11c0d4409d3c5", "monitorId": "66562414035c4ce6a8a610ac", "status": true, "responseTime": 2, "statusCode": 200, "message": "good", "createdAt": "2024-05-29T17:55:21.127Z", "updatedAt": "2024-05-29T17:55:21.127Z", "__v": 0 } ] } </code></pre> </details> <details> <summary id="delete-checks"><code>POST</code><b>/api/v1/checks/delete/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Object</code></td> <td><code>{deletedCount: n}</code> Returns an object showing how many items deleted</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/checks/delete/66562414035c4ce6a8a610ac \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Checks deleted", "data": { "deletedCount": 3 } } </code></pre> </details> <hr> <h6>Alerts</h6> <details> <summary id="create-alert"><code>POST</code><b>/api/v1/alerts/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Alert</code></td> <td>Returns newly created <code>Alert</code></td> </tr> </tbody> </table> </blockquote> <h6>Body</h6> <pre><code>"checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": "false", "acknowledgeStatus": false </code></pre> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>checkId</td> <td><code>string</code></td> <td>Id of <code>Check</code> associated with <code>Alert</code></td> </tr> <tr> <td>monitorId</td> <td><code>string</code></td> <td>Id of <code>Monitor</code> associated with <code>Alert</code></td> </tr> <tr> <td>userId</td> <td><code>string</code></td> <td>Id of <code>User</code> associated with <code>Alert</code></td> </tr> <tr> <td>status</td> <td><code>boolean</code></td> <td>Status of <code>Alert</code></td> </tr> <tr> <td>message</td> <td><code>string</code></td> <td><code>Alert</code> message</td> </tr> <tr> <td>notifiedStatus</td> <td><code>boolean</code></td> <td></td> </tr> <tr> <td>acknowledgeStatus</td> <td><code>boolean</code></td> <td></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code> </code></pre> <h6>Sample Response</h6> <pre><code class="language-json"> </code></pre> </details> <details> <summary id="get-alerts-user-id"><code>GET</code><b>/api/v1/alerts/user/{userId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Array&lt;Alert&gt;</code></td> <td>Returns all <code>Alert</code> created by a <code>User</code></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/alerts/user/6654d1a2634754f789e1f115 \ --header 'Authorization: &lt;bearer_token&gt;' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Got alerts", "data": [ { "_id": "6657813d809adfded891a6b7", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": false, "createdAt": "2024-05-29T19:25:49.317Z", "updatedAt": "2024-05-29T19:25:49.317Z", "__v": 0 } ] } </code></pre> </details> <details> <summary id="get-alerts-monitor-id"><code>GET</code><b>/api/v1/alerts/monitor/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Array&lt;Alert&gt;</code></td> <td>Returns an array of <code>Alert</code> belonging to a specified <code>Monitor</code></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/alerts/monitor/6657789ebf6766ee8e2d2edb \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Got alerts by Monitor", "data": [ { "_id": "6657813d809adfded891a6b7", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": false, "createdAt": "2024-05-29T19:25:49.317Z", "updatedAt": "2024-05-29T19:25:49.317Z", "__v": 0 } ] } </code></pre> </details> <details> <summary id="get-alert-alert-id"><code>GET</code><b>/api/v1/alerts/{alertId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Alert</code></td> <td>Returns specified <code>Alert</code></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/alerts/66577ddae5ff3c91437d0887 \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Got Alert By alertID", "data": { "_id": "66577ddae5ff3c91437d0887", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": false, "createdAt": "2024-05-29T19:11:22.205Z", "updatedAt": "2024-05-29T19:11:22.205Z", "__v": 0 } } </code></pre> </details> <details> <summary id="edit-alert"><code>POST</code><b>/api/v1/alerts/edit/{alertId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Alert</code></td> <td>Returns edited <code>Alert</code></td> </tr> </tbody> </table> </blockquote> <h6>Body</h6> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>checkId</td> <td><code>string</code></td> <td>ID of <code>Check</code> associated with <code>Alert</code></td> </tr> <tr> <td>monitorId</td> <td><code>string</code></td> <td>ID of <code>Monitor</code> id associated with <code>Alert</code></td> </tr> <tr> <td>userId</td> <td><code>string</code></td> <td>ID of <code>User</code> associated with <code>Alert</code></td> </tr> <tr> <td>status</td> <td><code>boolean</code></td> <td>Alert status</td> </tr> <tr> <td>message</td> <td><code>string</code></td> <td>Alert message</td> </tr> <tr> <td>notifiedStatus</td> <td><code>boolean</code></td> <td></td> </tr> <tr> <td>acknowledgeStatus</td> <td><code>boolean</code></td> <td></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/alerts/edit/66577ddae5ff3c91437d0887 \ --header 'Authorization: &lt;bearer_token&gt;' \ --header 'Content-Type: application/json' \ --data '{ "acknowledgeStatus": true }' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Edited alert", "data": { "_id": "66577ddae5ff3c91437d0887", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": true, "createdAt": "2024-05-29T19:11:22.205Z", "updatedAt": "2024-05-29T19:12:23.951Z", "__v": 0 } } </code></pre> </details> <details> <summary id="delete-alert"><code>POST</code><b>/api/v1/alerts/delete/{alertId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Alert</code></td> <td>Returns the deleted <code>Alert</code></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/alerts/delete/66577ddae5ff3c91437d0887 \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Deleted alert", "data": { "_id": "66577ddae5ff3c91437d0887", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": true, "createdAt": "2024-05-29T19:11:22.205Z", "updatedAt": "2024-05-29T19:12:23.951Z", "__v": 0 } } </code></pre> </details> <hr> <h6>Checks</h6> <details> <summary id="post-checks"><code>POST</code><b>/api/v1/checks/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Check</code></td> <td>Returns newly created check</td> </tr> </tbody> </table> </blockquote> <h6>Body</h6> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>monitorId</td> <td><code>string</code></td> <td>Monitor associated with Check</td> </tr> <tr> <td>status</td> <td><code>boolean</code></td> <td><code>true</code> for up and <code>false</code> for down</td> </tr> <tr> <td>responseTime</td> <td><code>number</code></td> <td>How long it took the server to respond</td> </tr> <tr> <td>statusCode</td> <td><code>number</code></td> <td>HTTP Status code of response</td> </tr> <tr> <td>message</td> <td><code>string</code></td> <td></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/checks/66562414035c4ce6a8a610ac \ --header 'Authorization: &lt;bearer_token&gt;' \ --header 'Content-Type: application/json' \ --data '{ "monitorId": "66562414035c4ce6a8a610ac", "status": true, "responseTime": 1, "statusCode": 200, "message": "good" }' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Check created", "data": { "monitorId": "66562414035c4ce6a8a610ac", "status": true, "responseTime": 1, "statusCode": 200, "message": "good", "_id": "66576decba9f70148ea1f354", "createdAt": "2024-05-29T18:03:24.445Z", "updatedAt": "2024-05-29T18:03:24.445Z", "__v": 0 } } </code></pre> </details> <details> <summary id="get-checks"><code>GET</code><b>/api/v1/checks/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Array&lt;Checks&gt;</code></td> <td>Array of <code>Check</code> objects</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/checks/66562414035c4ce6a8a610ac \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Checks retrieved", "data": [ { "_id": "66576c0194e11c0d4409d3c1", "monitorId": "66562414035c4ce6a8a610ac", "status": true, "responseTime": 1, "statusCode": 200, "message": "good", "createdAt": "2024-05-29T17:55:13.581Z", "updatedAt": "2024-05-29T17:55:13.581Z", "__v": 0 }, { "_id": "66576c0994e11c0d4409d3c5", "monitorId": "66562414035c4ce6a8a610ac", "status": true, "responseTime": 2, "statusCode": 200, "message": "good", "createdAt": "2024-05-29T17:55:21.127Z", "updatedAt": "2024-05-29T17:55:21.127Z", "__v": 0 } ] } </code></pre> </details> <details> <summary id="delete-checks"><code>POST</code><b>/api/v1/checks/delete/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Object</code></td> <td><code>{deletedCount: n}</code> Returns an object showing how many items deleted</td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/checks/delete/66562414035c4ce6a8a610ac \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Checks deleted", "data": { "deletedCount": 3 } } </code></pre> </details> <hr> <h6>Alerts</h6> <details> <summary id="create-alert"><code>POST</code><b>/api/v1/alerts/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Alert</code></td> <td>Returns newly created <code>Alert</code></td> </tr> </tbody> </table> </blockquote> <h6>Body</h6> <pre><code>"checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": "false", "acknowledgeStatus": false </code></pre> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>checkId</td> <td><code>string</code></td> <td>Id of <code>Check</code> associated with <code>Alert</code></td> </tr> <tr> <td>monitorId</td> <td><code>string</code></td> <td>Id of <code>Monitor</code> associated with <code>Alert</code></td> </tr> <tr> <td>userId</td> <td><code>string</code></td> <td>Id of <code>User</code> associated with <code>Alert</code></td> </tr> <tr> <td>status</td> <td><code>boolean</code></td> <td>Status of <code>Alert</code></td> </tr> <tr> <td>message</td> <td><code>string</code></td> <td><code>Alert</code> message</td> </tr> <tr> <td>notifiedStatus</td> <td><code>boolean</code></td> <td></td> </tr> <tr> <td>acknowledgeStatus</td> <td><code>boolean</code></td> <td></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code> </code></pre> <h6>Sample Response</h6> <pre><code class="language-json"> </code></pre> </details> <details> <summary id="get-alerts-user-id"><code>GET</code><b>/api/v1/alerts/user/{userId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Array&lt;Alert&gt;</code></td> <td>Returns all <code>Alert</code> created by a <code>User</code></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/alerts/user/6654d1a2634754f789e1f115 \ --header 'Authorization: &lt;bearer_token&gt;' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Got alerts", "data": [ { "_id": "6657813d809adfded891a6b7", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": false, "createdAt": "2024-05-29T19:25:49.317Z", "updatedAt": "2024-05-29T19:25:49.317Z", "__v": 0 } ] } </code></pre> </details> <details> <summary id="get-alerts-monitor-id"><code>GET</code><b>/api/v1/alerts/monitor/{monitorId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Array&lt;Alert&gt;</code></td> <td>Returns an array of <code>Alert</code> belonging to a specified <code>Monitor</code></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/alerts/monitor/6657789ebf6766ee8e2d2edb \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Got alerts by Monitor", "data": [ { "_id": "6657813d809adfded891a6b7", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": false, "createdAt": "2024-05-29T19:25:49.317Z", "updatedAt": "2024-05-29T19:25:49.317Z", "__v": 0 } ] } </code></pre> </details> <details> <summary id="get-alert-alert-id"><code>GET</code><b>/api/v1/alerts/{alertId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>GET</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Alert</code></td> <td>Returns specified <code>Alert</code></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request GET \ --url http://localhost:5000/api/v1/alerts/66577ddae5ff3c91437d0887 \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Got Alert By alertID", "data": { "_id": "66577ddae5ff3c91437d0887", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": false, "createdAt": "2024-05-29T19:11:22.205Z", "updatedAt": "2024-05-29T19:11:22.205Z", "__v": 0 } } </code></pre> </details> <details> <summary id="edit-alert"><code>POST</code><b>/api/v1/alerts/edit/{alertId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Alert</code></td> <td>Returns edited <code>Alert</code></td> </tr> </tbody> </table> </blockquote> <h6>Body</h6> <blockquote> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>checkId</td> <td><code>string</code></td> <td>ID of <code>Check</code> associated with <code>Alert</code></td> </tr> <tr> <td>monitorId</td> <td><code>string</code></td> <td>ID of <code>Monitor</code> id associated with <code>Alert</code></td> </tr> <tr> <td>userId</td> <td><code>string</code></td> <td>ID of <code>User</code> associated with <code>Alert</code></td> </tr> <tr> <td>status</td> <td><code>boolean</code></td> <td>Alert status</td> </tr> <tr> <td>message</td> <td><code>string</code></td> <td>Alert message</td> </tr> <tr> <td>notifiedStatus</td> <td><code>boolean</code></td> <td></td> </tr> <tr> <td>acknowledgeStatus</td> <td><code>boolean</code></td> <td></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/alerts/edit/66577ddae5ff3c91437d0887 \ --header 'Authorization: &lt;bearer_token&gt;' \ --header 'Content-Type: application/json' \ --data '{ "acknowledgeStatus": true }' </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Edited alert", "data": { "_id": "66577ddae5ff3c91437d0887", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": true, "createdAt": "2024-05-29T19:11:22.205Z", "updatedAt": "2024-05-29T19:12:23.951Z", "__v": 0 } } </code></pre> </details> <details> <summary id="delete-alert"><code>POST</code><b>/api/v1/alerts/delete/{alertId}</b></summary> <h6>Method/Headers</h6> <blockquote> <table> <thead> <tr> <th>Method/Headers</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Method</td> <td>POST</td> </tr> </tbody> </table> </blockquote> <h6>Response Payload</h6> <blockquote> <table> <thead> <tr> <th>Type</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>Alert</code></td> <td>Returns the deleted <code>Alert</code></td> </tr> </tbody> </table> </blockquote> <h5>Sample CURL request</h5> <pre><code>curl --request POST \ --url http://localhost:5000/api/v1/alerts/delete/66577ddae5ff3c91437d0887 \ --header 'Authorization: &lt;bearer_token&gt;' \ </code></pre> <h6>Sample Response</h6> <pre><code class="language-json">{ "success": true, "msg": "Deleted alert", "data": { "_id": "66577ddae5ff3c91437d0887", "checkId": "66577a3fd16dcf7c1ce35148", "monitorId": "6657789ebf6766ee8e2d2edb", "userId": "6654d1a2634754f789e1f115", "status": false, "message": "This is a test alert", "notifiedStatus": false, "acknowledgeStatus": true, "createdAt": "2024-05-29T19:11:22.205Z", "updatedAt": "2024-05-29T19:12:23.951Z", "__v": 0 } } </code></pre> </details> <hr> <h3>Error handling</h3> <p>Errors are returned in a standard format:</p> <p><code>{"success": false, "msg": "No token provided"}</code></p> <p>Errors are handled by error handling middleware and should be thrown with the following parameters</p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Default</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>status</td> <td><code>integer</code></td> <td>500</td> <td>Standard HTTP codes</td> </tr> <tr> <td>message</td> <td><code>string</code></td> <td>"Something went wrong"</td> <td>An error message</td> </tr> <tr> <td>service</td> <td><code>string</code></td> <td>"Unknown Service"</td> <td>Name of service that threw the error</td> </tr> </tbody> </table> <p>Example:</p> <pre><code>const myRoute = async(req, res, next) =&gt; { try{ const result = myRiskyOperationHere(); } catch(error){ error.status = 404 error.message = "Resource not found" error.service = service name next(error) return; } } </code></pre> <p>Errors should not be handled at the controller level and should be left to the middleware to handle.</p> + \ No newline at end of file diff --git a/jest-snapshot/daily/index.xml b/jest-snapshot/daily/index.xml index 07da558b611..94eb32da5f2 100644 --- a/jest-snapshot/daily/index.xml +++ b/jest-snapshot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jest Snapshot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:54Z + 2024-08-22T01:31:00Z Daily Trending of Jest Snapshot in GitHub \ No newline at end of file diff --git a/jflex/daily/index.xml b/jflex/daily/index.xml index 923846c7fd0..e8853678c6f 100644 --- a/jflex/daily/index.xml +++ b/jflex/daily/index.xml @@ -1,7 +1,7 @@ GitHub JFlex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:53Z + 2024-08-22T01:31:00Z Daily Trending of JFlex in GitHub \ No newline at end of file diff --git a/jinja/daily/index.xml b/jinja/daily/index.xml index 040ea8bd203..80cb46bc1fc 100644 --- a/jinja/daily/index.xml +++ b/jinja/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jinja Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:26Z + 2024-08-22T01:30:31Z Daily Trending of Jinja in GitHub \ No newline at end of file diff --git a/jison-lex/daily/index.xml b/jison-lex/daily/index.xml index 22de103eecc..b14b9af523f 100644 --- a/jison-lex/daily/index.xml +++ b/jison-lex/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jison Lex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:55Z + 2024-08-22T01:31:01Z Daily Trending of Jison Lex in GitHub \ No newline at end of file diff --git a/jison/daily/index.xml b/jison/daily/index.xml index 352f72f0a5b..8abf0fe29b5 100644 --- a/jison/daily/index.xml +++ b/jison/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jison Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:53Z + 2024-08-22T01:31:00Z Daily Trending of Jison in GitHub \ No newline at end of file diff --git a/jolie/daily/index.xml b/jolie/daily/index.xml index 2c226d08a84..f4851b7e053 100644 --- a/jolie/daily/index.xml +++ b/jolie/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jolie Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:55Z + 2024-08-22T01:31:02Z Daily Trending of Jolie in GitHub \ No newline at end of file diff --git a/jq/daily/index.xml b/jq/daily/index.xml index 9d116921020..36d97d14971 100644 --- a/jq/daily/index.xml +++ b/jq/daily/index.xml @@ -1,7 +1,7 @@ GitHub jq Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:54Z + 2024-08-22T01:31:02Z Daily Trending of jq in GitHub \ No newline at end of file diff --git a/json-with-comments/daily/index.xml b/json-with-comments/daily/index.xml index 44de1bb7dfd..28d1d070707 100644 --- a/json-with-comments/daily/index.xml +++ b/json-with-comments/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSON with Comments Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:57Z + 2024-08-22T01:31:03Z Daily Trending of JSON with Comments in GitHub \ No newline at end of file diff --git a/json/daily/index.xml b/json/daily/index.xml index 0326c455fb2..02623c0d5af 100644 --- a/json/daily/index.xml +++ b/json/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:56Z + 2024-08-22T01:31:02Z Daily Trending of JSON in GitHub \ No newline at end of file diff --git a/json5/daily/index.xml b/json5/daily/index.xml index d5fab7f9ca2..05f90bc6bd8 100644 --- a/json5/daily/index.xml +++ b/json5/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSON5 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:57Z + 2024-08-22T01:31:04Z Daily Trending of JSON5 in GitHub \ No newline at end of file diff --git a/jsoniq/daily/index.xml b/jsoniq/daily/index.xml index bd92435b3d5..c1651f539d7 100644 --- a/jsoniq/daily/index.xml +++ b/jsoniq/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSONiq Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:56Z + 2024-08-22T01:31:03Z Daily Trending of JSONiq in GitHub \ No newline at end of file diff --git a/jsonld/daily/index.xml b/jsonld/daily/index.xml index 838f02fd098..753975f0f8b 100644 --- a/jsonld/daily/index.xml +++ b/jsonld/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSONLD Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:57Z + 2024-08-22T01:31:03Z Daily Trending of JSONLD in GitHub \ No newline at end of file diff --git a/jsonnet/daily/index.xml b/jsonnet/daily/index.xml index bd56c321a16..c810816aced 100644 --- a/jsonnet/daily/index.xml +++ b/jsonnet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jsonnet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:58Z + 2024-08-22T01:31:05Z Daily Trending of Jsonnet in GitHub \ No newline at end of file diff --git a/julia/daily/index.xml b/julia/daily/index.xml index 77a579366c0..8a9e212daad 100644 --- a/julia/daily/index.xml +++ b/julia/daily/index.xml @@ -1,7 +1,14 @@ GitHub Julia Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:30:59Z + 2024-08-22T01:31:06Z Daily Trending of Julia in GitHub + + ReactiveBayes/GraphPPL.jl + 2024-08-22T01:31:06Z + tag:github.com,2024-08-22:/ReactiveBayes/GraphPPL.jl + + <p>DSL for probabilistic models specification and probabilistic programming.</p><hr> + \ No newline at end of file diff --git a/jupyter-notebook/daily/index.xml b/jupyter-notebook/daily/index.xml deleted file mode 100644 index 95adf515b67..00000000000 --- a/jupyter-notebook/daily/index.xml +++ /dev/null @@ -1,14 +0,0 @@ - - GitHub Jupyter Notebook Daily Trending - http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:01Z - Daily Trending of Jupyter Notebook in GitHub - - - anthropics/prompt-eng-interactive-tutorial - 2024-08-21T01:31:01Z - tag:github.com,2024-08-21:/anthropics/prompt-eng-interactive-tutorial - - <p>Anthropic's Interactive Prompt Engineering Tutorial</p><hr><h1>Welcome to Anthropic's Prompt Engineering Interactive Tutorial</h1> <h2>Course introduction and goals</h2> <p>This course is intended to provide you with a comprehensive step-by-step understanding of how to engineer optimal prompts within Claude.</p> <p><strong>After completing this course, you will be able to</strong>:</p> <ul> <li>Master the basic structure of a good prompt</li> <li>Recognize common failure modes and learn the '80/20' techniques to address them</li> <li>Understand Claude's strengths and weaknesses</li> <li>Build strong prompts from scratch for common use cases</li> </ul> <h2>Course structure and content</h2> <p>This course is structured to allow you many chances to practice writing and troubleshooting prompts yourself. The course is broken up into <strong>9 chapters with accompanying exercises</strong>, as well as an appendix of even more advanced methods. It is intended for you to <strong>work through the course in chapter order</strong>.</p> <p><strong>Each lesson has an "Example Playground" area</strong> at the bottom where you are free to experiment with the examples in the lesson and see for yourself how changing prompts can change Claude's responses. There is also an <a href="https://docs.google.com/spreadsheets/d/1jIxjzUWG-6xBVIa2ay6yDpLyeuOh_hR_ZB75a47KX_E/edit?usp=sharing">answer key</a>.</p> <p>Note: This tutorial uses our smallest, fastest, and cheapest model, Claude 3 Haiku. Anthropic has <a href="https://docs.anthropic.com/claude/docs/models-overview">two other models</a>, Claude 3 Sonnet and Claude 3 Opus, which are more intelligent than Haiku, with Opus being the most intelligent.</p> <p><em>This tutorial also exists on <a href="https://docs.google.com/spreadsheets/d/19jzLgRruG9kjUQNKtCg1ZjdD6l6weA6qRXG5zLIAhC8/edit?usp=sharing">Google Sheets using Anthropic's Claude for Sheets extension</a>. We recommend using that version as it is more user friendly.</em></p> <p>When you are ready to begin, go to <code>01_Basic Prompt Structure</code> to proceed.</p> <h2>Table of Contents</h2> <p>Each chapter consists of a lesson and a set of exercises.</p> <h3>Beginner</h3> <ul> <li> <p><strong>Chapter 1:</strong> Basic Prompt Structure</p> </li> <li> <p><strong>Chapter 2:</strong> Being Clear and Direct</p> </li> <li> <p><strong>Chapter 3:</strong> Assigning Roles</p> </li> </ul> <h3>Intermediate</h3> <ul> <li> <p><strong>Chapter 4:</strong> Separating Data from Instructions</p> </li> <li> <p><strong>Chapter 5:</strong> Formatting Output &amp; Speaking for Claude</p> </li> <li> <p><strong>Chapter 6:</strong> Precognition (Thinking Step by Step)</p> </li> <li> <p><strong>Chapter 7:</strong> Using Examples</p> </li> </ul> <h3>Advanced</h3> <ul> <li> <p><strong>Chapter 8:</strong> Avoiding Hallucinations</p> </li> <li> <p><strong>Chapter 9:</strong> Building Complex Prompts (Industry Use Cases)</p> <ul> <li>Complex Prompts from Scratch - Chatbot</li> <li>Complex Prompts for Legal Services</li> <li><strong>Exercise:</strong> Complex Prompts for Financial Services</li> <li><strong>Exercise:</strong> Complex Prompts for Coding</li> <li>Congratulations &amp; Next Steps</li> </ul> </li> <li> <p><strong>Appendix:</strong> Beyond Standard Prompting</p> <ul> <li>Chaining Prompts</li> <li>Tool Use</li> <li>Search &amp; Retrieval</li> </ul> </li> </ul> - - \ No newline at end of file diff --git a/kaitai-struct/daily/index.xml b/kaitai-struct/daily/index.xml index e6165820e71..17710d18d7e 100644 --- a/kaitai-struct/daily/index.xml +++ b/kaitai-struct/daily/index.xml @@ -1,7 +1,7 @@ GitHub Kaitai Struct Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:07Z + 2024-08-22T01:31:16Z Daily Trending of Kaitai Struct in GitHub \ No newline at end of file diff --git a/kakounescript/daily/index.xml b/kakounescript/daily/index.xml index 919ee3ebe55..4f78e8a5c1d 100644 --- a/kakounescript/daily/index.xml +++ b/kakounescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub KakouneScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:06Z + 2024-08-22T01:31:16Z Daily Trending of KakouneScript in GitHub \ No newline at end of file diff --git a/kicad-layout/daily/index.xml b/kicad-layout/daily/index.xml index 4cc3a5ff1e5..c5fc3e24862 100644 --- a/kicad-layout/daily/index.xml +++ b/kicad-layout/daily/index.xml @@ -1,7 +1,7 @@ GitHub KiCad Layout Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:07Z + 2024-08-22T01:31:15Z Daily Trending of KiCad Layout in GitHub \ No newline at end of file diff --git a/kicad-legacy-layout/daily/index.xml b/kicad-legacy-layout/daily/index.xml index 3d9fd6df050..94180219b02 100644 --- a/kicad-legacy-layout/daily/index.xml +++ b/kicad-legacy-layout/daily/index.xml @@ -1,7 +1,7 @@ GitHub KiCad Legacy Layout Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:08Z + 2024-08-22T01:31:17Z Daily Trending of KiCad Legacy Layout in GitHub \ No newline at end of file diff --git a/kicad-schematic/daily/index.xml b/kicad-schematic/daily/index.xml index 0a3c218ace3..a3b11253ab5 100644 --- a/kicad-schematic/daily/index.xml +++ b/kicad-schematic/daily/index.xml @@ -1,7 +1,7 @@ GitHub KiCad Schematic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:09Z + 2024-08-22T01:31:17Z Daily Trending of KiCad Schematic in GitHub \ No newline at end of file diff --git a/kit/daily/index.xml b/kit/daily/index.xml index e9636db79d2..e8663ce5ded 100644 --- a/kit/daily/index.xml +++ b/kit/daily/index.xml @@ -1,7 +1,7 @@ GitHub Kit Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:08Z + 2024-08-22T01:31:18Z Daily Trending of Kit in GitHub \ No newline at end of file diff --git a/kotlin/daily/index.xml b/kotlin/daily/index.xml index 4ac8031ca31..991b37770ba 100644 --- a/kotlin/daily/index.xml +++ b/kotlin/daily/index.xml @@ -1,7 +1,14 @@ GitHub Kotlin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:11Z + 2024-08-22T01:31:20Z Daily Trending of Kotlin in GitHub + + Kotlin/anko + 2024-08-22T01:31:20Z + tag:github.com,2024-08-22:/Kotlin/anko + + <p>Pleasant Android application development</p><hr><p><a href="https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub"><img src="https://jb.gg/badges/obsolete.svg?sanitize=true" alt="obsolete JetBrains project"></a> <a href="https://bintray.com/jetbrains/anko/anko/_latestVersion"><img src="https://api.bintray.com/packages/jetbrains/anko/anko/images/download.svg?sanitize=true" alt="Download"> </a> <a href="https://www.apache.org/licenses/LICENSE-2.0"><img src="https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat" alt="GitHub license"></a></p> <img src="https://raw.githubusercontent.com/Kotlin/anko/master/doc/logo.png" alt="Anko logo" height="101" width="220"> <p><span>⚠</span> Anko is deprecated. Please see <a href="https://raw.githubusercontent.com/Kotlin/anko/master/GOODBYE.md">this page</a> for more information.</p> <hr> <p>Anko is a <a href="https://www.kotlinlang.org/">Kotlin</a> library which makes Android application development faster and easier. It makes your code clean and easy to read, and lets you forget about rough edges of the Android SDK for Java.</p> <p>Anko consists of several parts:</p> <ul> <li><em>Anko Commons</em>: a lightweight library full of helpers for intents, dialogs, logging and so on;</li> <li><em>Anko Layouts</em>: a fast and type-safe way to write dynamic Android layouts;</li> <li><em>Anko SQLite</em>: a query DSL and parser collection for Android SQLite;</li> <li><em>Anko Coroutines</em>: utilities based on the <a href="https://github.com/Kotlin/kotlinx.coroutines">kotlinx.coroutines</a> library.</li> </ul> <h2>Anko Commons</h2> <p><em>Anko Commons</em> is a "toolbox" for Kotlin Android developer. The library contains a lot of helpers for Android SDK, including, but not limited to:</p> <ul> <li>Intents (<a href="https://github.com/Kotlin/anko/wiki/Anko-Commons-%E2%80%93-Intents">wiki</a>);</li> <li>Dialogs and toasts (<a href="https://github.com/Kotlin/anko/wiki/Anko-Commons-%E2%80%93-Dialogs">wiki</a>);</li> <li>Logging (<a href="https://github.com/Kotlin/anko/wiki/Anko-Commons-%E2%80%93-Logging">wiki</a>);</li> <li>Resources and dimensions (<a href="https://github.com/Kotlin/anko/wiki/Anko-Commons-%E2%80%93-Misc">wiki</a>).</li> </ul> <h2>Anko Layouts (<a href="https://github.com/Kotlin/anko/wiki/Anko-Layouts">wiki</a>)</h2> <p><em>Anko Layouts</em> is a DSL for writing dynamic Android layouts. Here is a simple UI written with Anko DSL:</p> <pre><code class="language-kotlin">verticalLayout { val name = editText() button("Say Hello") { onClick { toast("Hello, ${name.text}!") } } } </code></pre> <p>The code above creates a button inside a <code>LinearLayout</code> and attaches an <code>OnClickListener</code> to that button. Moreover, <code>onClick</code> accepts a <a href="https://kotlinlang.org/docs/reference/coroutines.html"><code>suspend</code> lambda</a>, so you can write your asynchronous code right inside the listener!</p> <p>Note that this is the complete layout code. No XML is required!</p> <p>Anko has a <a href="https://github.com/Kotlin/anko/wiki/ConstraintLayout">DSL for ConstraintLayout</a> since v0.10.4</p> <img src="https://raw.githubusercontent.com/Kotlin/anko/master/doc/helloworld.png" alt="Hello world" height="90" width="373"> <p>There is also a <a href="https://github.com/Kotlin/anko/wiki/Anko-Layouts#anko-support-plugin">plugin</a> for Android Studio that supports previewing Anko DSL layouts.</p> <h2>Anko SQLite (<a href="https://github.com/Kotlin/anko/wiki/Anko-SQLite">wiki</a>)</h2> <p>Have you ever been tired of parsing SQLite query results using Android cursors? <em>Anko SQLite</em> provides lots of helpers to simplify working with SQLite databases.</p> <p>For example, here is how you can fetch the list of users with a particular name:</p> <pre><code class="language-kotlin">fun getUsers(db: ManagedSQLiteOpenHelper): List&lt;User&gt; = db.use { db.select("Users") .whereSimple("family_name = ?", "John") .doExec() .parseList(UserParser) } </code></pre> <h2>Anko Coroutines (<a href="https://github.com/Kotlin/anko/wiki/Anko-Coroutines">wiki</a>)</h2> <p><em>Anko Coroutines</em> is based on the <a href="https://github.com/kotlin/kotlinx.coroutines"><code>kotlinx.coroutines</code></a> library and provides:</p> <ul> <li><a href="https://github.com/Kotlin/anko/wiki/Anko-Coroutines#bg"><code>bg()</code></a> function that executes your code in a common pool.</li> <li><a href="https://github.com/Kotlin/anko/wiki/Anko-Coroutines#asreference"><code>asReference()</code></a> function which creates a weak reference wrapper. By default, a coroutine holds references to captured objects until it is finished or canceled. If your asynchronous framework does not support cancellation, the values you use inside the asynchronous block can be leaked. <code>asReference()</code> protects you from this.</li> </ul> <h2>Using Anko</h2> <h3>Gradle-based project</h3> <p>Anko has a meta-dependency which plugs in all available features (including Commons, Layouts, SQLite) into your project at once:</p> <pre><code class="language-gradle">dependencies { implementation "org.jetbrains.anko:anko:$anko_version" } </code></pre> <p>Make sure that you have the <code>$anko_version</code> settled in your gradle file at the project level:</p> <pre><code>ext.anko_version='0.10.8' </code></pre> <p>If you only need some of the features, you can reference any of Anko's parts:</p> <pre><code class="language-gradle">dependencies { // Anko Commons implementation "org.jetbrains.anko:anko-commons:$anko_version" // Anko Layouts implementation "org.jetbrains.anko:anko-sdk25:$anko_version" // sdk15, sdk19, sdk21, sdk23 are also available implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version" // Coroutine listeners for Anko Layouts implementation "org.jetbrains.anko:anko-sdk25-coroutines:$anko_version" implementation "org.jetbrains.anko:anko-appcompat-v7-coroutines:$anko_version" // Anko SQLite implementation "org.jetbrains.anko:anko-sqlite:$anko_version" } </code></pre> <p>There are also a number of artifacts for the Android support libraries:</p> <pre><code class="language-gradle">dependencies { // Appcompat-v7 (only Anko Commons) implementation "org.jetbrains.anko:anko-appcompat-v7-commons:$anko_version" // Appcompat-v7 (Anko Layouts) implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version" implementation "org.jetbrains.anko:anko-coroutines:$anko_version" // CardView-v7 implementation "org.jetbrains.anko:anko-cardview-v7:$anko_version" // Design implementation "org.jetbrains.anko:anko-design:$anko_version" implementation "org.jetbrains.anko:anko-design-coroutines:$anko_version" // GridLayout-v7 implementation "org.jetbrains.anko:anko-gridlayout-v7:$anko_version" // Percent implementation "org.jetbrains.anko:anko-percent:$anko_version" // RecyclerView-v7 implementation "org.jetbrains.anko:anko-recyclerview-v7:$anko_version" implementation "org.jetbrains.anko:anko-recyclerview-v7-coroutines:$anko_version" // Support-v4 (only Anko Commons) implementation "org.jetbrains.anko:anko-support-v4-commons:$anko_version" // Support-v4 (Anko Layouts) implementation "org.jetbrains.anko:anko-support-v4:$anko_version" // ConstraintLayout implementation "org.jetbrains.anko:anko-constraint-layout:$anko_version" } </code></pre> <p>There is an <a href="https://github.com/kotlin/anko-example">example project</a> showing how to include Anko library into your Android Gradle project.</p> <h3>IntelliJ IDEA project</h3> <p>If your project is not based on Gradle, just attach the required JARs from the <a href="https://jcenter.bintray.com/org/jetbrains/anko/">jcenter repository</a> as the library dependencies and that's it.</p> <h2>Contributing</h2> <p>The best way to submit a patch is to send us a <a href="https://help.github.com/articles/about-pull-requests/">pull request</a>. Before submitting the pull request, make sure all existing tests are passing, and add the new test if it is required.</p> <p>If you want to add new functionality, please file a new <em>proposal</em> issue first to make sure that it is not in progress already. If you have any questions, feel free to create a <em>question</em> issue.</p> <p>Instructions for building Anko are available in the <a href="https://github.com/Kotlin/anko/wiki/Building-Anko">Wiki</a>.</p> + \ No newline at end of file diff --git a/krl/daily/index.xml b/krl/daily/index.xml index a32ae4b0dd8..d04f593abb0 100644 --- a/krl/daily/index.xml +++ b/krl/daily/index.xml @@ -1,7 +1,7 @@ GitHub KRL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:09Z + 2024-08-22T01:31:19Z Daily Trending of KRL in GitHub \ No newline at end of file diff --git a/kusto/daily/index.xml b/kusto/daily/index.xml index 618b0c320bc..79612c42d5f 100644 --- a/kusto/daily/index.xml +++ b/kusto/daily/index.xml @@ -1,7 +1,7 @@ GitHub Kusto Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:10Z + 2024-08-22T01:31:18Z Daily Trending of Kusto in GitHub \ No newline at end of file diff --git a/kvlang/daily/index.xml b/kvlang/daily/index.xml index 922f9cbcd32..1db114d8512 100644 --- a/kvlang/daily/index.xml +++ b/kvlang/daily/index.xml @@ -1,7 +1,7 @@ GitHub kvlang Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:09Z + 2024-08-22T01:31:19Z Daily Trending of kvlang in GitHub \ No newline at end of file diff --git a/labview/daily/index.xml b/labview/daily/index.xml index 48f83dd3ed1..dd509cfbe64 100644 --- a/labview/daily/index.xml +++ b/labview/daily/index.xml @@ -1,7 +1,7 @@ GitHub LabVIEW Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:14Z + 2024-08-22T01:31:23Z Daily Trending of LabVIEW in GitHub \ No newline at end of file diff --git a/lark/daily/index.xml b/lark/daily/index.xml index 3f0d9bf4afc..cdeda27b2a8 100644 --- a/lark/daily/index.xml +++ b/lark/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lark Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:14Z + 2024-08-22T01:31:23Z Daily Trending of Lark in GitHub \ No newline at end of file diff --git a/lasso/daily/index.xml b/lasso/daily/index.xml index 7630ba0f006..823217d5b2b 100644 --- a/lasso/daily/index.xml +++ b/lasso/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lasso Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:13Z + 2024-08-22T01:31:24Z Daily Trending of Lasso in GitHub \ No newline at end of file diff --git a/latte/daily/index.xml b/latte/daily/index.xml index 336a24dd27e..ec58e338e11 100644 --- a/latte/daily/index.xml +++ b/latte/daily/index.xml @@ -1,7 +1,7 @@ GitHub Latte Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:13Z + 2024-08-22T01:31:24Z Daily Trending of Latte in GitHub \ No newline at end of file diff --git a/lean/daily/index.xml b/lean/daily/index.xml index 46cf55dbe4b..43d20cc8f1e 100644 --- a/lean/daily/index.xml +++ b/lean/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lean Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:16Z + 2024-08-22T01:31:26Z Daily Trending of Lean in GitHub \ No newline at end of file diff --git a/less/daily/index.xml b/less/daily/index.xml index 6e8fd218409..faaef9f54bc 100644 --- a/less/daily/index.xml +++ b/less/daily/index.xml @@ -1,7 +1,7 @@ GitHub Less Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:15Z + 2024-08-22T01:31:25Z Daily Trending of Less in GitHub \ No newline at end of file diff --git a/lex/daily/index.xml b/lex/daily/index.xml index 15fe7c64b5f..543aab49b31 100644 --- a/lex/daily/index.xml +++ b/lex/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:15Z + 2024-08-22T01:31:25Z Daily Trending of Lex in GitHub \ No newline at end of file diff --git a/lfe/daily/index.xml b/lfe/daily/index.xml index 9380f4bd7b7..e9010fdbec6 100644 --- a/lfe/daily/index.xml +++ b/lfe/daily/index.xml @@ -1,7 +1,7 @@ GitHub LFE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:16Z + 2024-08-22T01:31:27Z Daily Trending of LFE in GitHub \ No newline at end of file diff --git a/ligolang/daily/index.xml b/ligolang/daily/index.xml index a0af1e74e1f..87312f7fcc2 100644 --- a/ligolang/daily/index.xml +++ b/ligolang/daily/index.xml @@ -1,7 +1,7 @@ GitHub LigoLANG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:17Z + 2024-08-22T01:31:27Z Daily Trending of LigoLANG in GitHub \ No newline at end of file diff --git a/lilypond/daily/index.xml b/lilypond/daily/index.xml index 084878ae2f2..ced88b6dd47 100644 --- a/lilypond/daily/index.xml +++ b/lilypond/daily/index.xml @@ -1,7 +1,7 @@ GitHub LilyPond Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:17Z + 2024-08-22T01:31:27Z Daily Trending of LilyPond in GitHub \ No newline at end of file diff --git a/limbo/daily/index.xml b/limbo/daily/index.xml index e61635026af..ca19aec3c6c 100644 --- a/limbo/daily/index.xml +++ b/limbo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Limbo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:17Z + 2024-08-22T01:31:26Z Daily Trending of Limbo in GitHub \ No newline at end of file diff --git a/linker-script/daily/index.xml b/linker-script/daily/index.xml index fec869f1af7..21e01f1691d 100644 --- a/linker-script/daily/index.xml +++ b/linker-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Linker Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:18Z + 2024-08-22T01:31:28Z Daily Trending of Linker Script in GitHub \ No newline at end of file diff --git a/linux-kernel-module/daily/index.xml b/linux-kernel-module/daily/index.xml index 36082e89e87..465e1d2f588 100644 --- a/linux-kernel-module/daily/index.xml +++ b/linux-kernel-module/daily/index.xml @@ -1,7 +1,7 @@ GitHub Linux Kernel Module Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:18Z + 2024-08-22T01:31:28Z Daily Trending of Linux Kernel Module in GitHub \ No newline at end of file diff --git a/liquid/daily/index.xml b/liquid/daily/index.xml index 3558b501074..51ee6840d57 100644 --- a/liquid/daily/index.xml +++ b/liquid/daily/index.xml @@ -1,7 +1,7 @@ GitHub Liquid Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:19Z + 2024-08-22T01:31:29Z Daily Trending of Liquid in GitHub \ No newline at end of file diff --git a/literate-agda/daily/index.xml b/literate-agda/daily/index.xml index ff88447b182..ecfd2038e74 100644 --- a/literate-agda/daily/index.xml +++ b/literate-agda/daily/index.xml @@ -1,7 +1,7 @@ GitHub Literate Agda Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:18Z + 2024-08-22T01:31:28Z Daily Trending of Literate Agda in GitHub \ No newline at end of file diff --git a/literate-coffeescript/daily/index.xml b/literate-coffeescript/daily/index.xml index 108865a3b46..52ee049d00f 100644 --- a/literate-coffeescript/daily/index.xml +++ b/literate-coffeescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Literate CoffeeScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:20Z + 2024-08-22T01:31:30Z Daily Trending of Literate CoffeeScript in GitHub \ No newline at end of file diff --git a/literate-haskell/daily/index.xml b/literate-haskell/daily/index.xml index 45a5fb4616c..d160826f37e 100644 --- a/literate-haskell/daily/index.xml +++ b/literate-haskell/daily/index.xml @@ -1,7 +1,7 @@ GitHub Literate Haskell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:20Z + 2024-08-22T01:31:29Z Daily Trending of Literate Haskell in GitHub \ No newline at end of file diff --git a/livescript/daily/index.xml b/livescript/daily/index.xml index 682f76a1c52..56d7307d780 100644 --- a/livescript/daily/index.xml +++ b/livescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub LiveScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:19Z + 2024-08-22T01:31:30Z Daily Trending of LiveScript in GitHub \ No newline at end of file diff --git a/llvm/daily/index.xml b/llvm/daily/index.xml index f35175f8035..ec712634de7 100644 --- a/llvm/daily/index.xml +++ b/llvm/daily/index.xml @@ -1,7 +1,7 @@ GitHub LLVM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:21Z + 2024-08-22T01:31:36Z Daily Trending of LLVM in GitHub \ No newline at end of file diff --git a/logos/daily/index.xml b/logos/daily/index.xml index 2ee74e3ff26..eb1bc019204 100644 --- a/logos/daily/index.xml +++ b/logos/daily/index.xml @@ -1,7 +1,7 @@ GitHub Logos Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:22Z + 2024-08-22T01:31:38Z Daily Trending of Logos in GitHub \ No newline at end of file diff --git a/logtalk/daily/index.xml b/logtalk/daily/index.xml index b42872bd70d..14092ada585 100644 --- a/logtalk/daily/index.xml +++ b/logtalk/daily/index.xml @@ -1,7 +1,7 @@ GitHub Logtalk Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:21Z + 2024-08-22T01:31:37Z Daily Trending of Logtalk in GitHub \ No newline at end of file diff --git a/lolcode/daily/index.xml b/lolcode/daily/index.xml index f3330fe2c1d..63940b5cc5f 100644 --- a/lolcode/daily/index.xml +++ b/lolcode/daily/index.xml @@ -1,7 +1,7 @@ GitHub LOLCODE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:22Z + 2024-08-22T01:31:37Z Daily Trending of LOLCODE in GitHub \ No newline at end of file diff --git a/lookml/daily/index.xml b/lookml/daily/index.xml index 9bbe80c7091..8795213e78d 100644 --- a/lookml/daily/index.xml +++ b/lookml/daily/index.xml @@ -1,7 +1,7 @@ GitHub LookML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:22Z + 2024-08-22T01:31:37Z Daily Trending of LookML in GitHub \ No newline at end of file diff --git a/loomscript/daily/index.xml b/loomscript/daily/index.xml index b96cd1c18bc..02fc6a0a19a 100644 --- a/loomscript/daily/index.xml +++ b/loomscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub LoomScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:23Z + 2024-08-22T01:31:39Z Daily Trending of LoomScript in GitHub \ No newline at end of file diff --git a/lsl/daily/index.xml b/lsl/daily/index.xml index a1597435628..e236398495a 100644 --- a/lsl/daily/index.xml +++ b/lsl/daily/index.xml @@ -1,7 +1,7 @@ GitHub LSL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:24Z + 2024-08-22T01:31:38Z Daily Trending of LSL in GitHub \ No newline at end of file diff --git a/ltspice-symbol/daily/index.xml b/ltspice-symbol/daily/index.xml index b4f2d8a9f16..95a9efc51d2 100644 --- a/ltspice-symbol/daily/index.xml +++ b/ltspice-symbol/daily/index.xml @@ -1,7 +1,7 @@ GitHub LTspice Symbol Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:23Z + 2024-08-22T01:31:39Z Daily Trending of LTspice Symbol in GitHub \ No newline at end of file diff --git a/lua/daily/index.xml b/lua/daily/index.xml deleted file mode 100644 index cfbd80f771e..00000000000 --- a/lua/daily/index.xml +++ /dev/null @@ -1,14 +0,0 @@ - - GitHub Lua Daily Trending - http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:25Z - Daily Trending of Lua in GitHub - - - MathIsFun0/Cryptid - 2024-08-21T01:31:25Z - tag:github.com,2024-08-21:/MathIsFun0/Cryptid - - <p>An unbalanced Balatro mod</p><hr><h1>Cryptid</h1> <p>An unbalanced Balatro mod. Note that this is currently a heavy work in progress.</p> <p>Note: Cryptid requires <a href="https://github.com/Steamopollys/Steamodded/archive/refs/heads/main.zip">Steamodded <strong>1.0.0-Alpha</strong></a> and <a href="https://github.com/MathIsFun0/Talisman/releases/latest">Talisman</a>.</p> <p>Cryptid currently adds:</p> <ul> <li>107 new jokers</li> <li>43 new decks</li> <li>24 new stakes</li> <li>20 new boss blinds</li> <li>18 new code cards</li> <li>18 new vouchers</li> <li>9 new spectral cards</li> <li>9 new tags</li> <li>7 new challenges</li> <li>5 new editions</li> <li>4 new planet cards</li> <li>4 new booster packs</li> <li>2 new joker rarities</li> <li>2 new tarot cards</li> <li>1 new consumable type</li> <li>1 new enhancement</li> <li>1 new seal</li> </ul> <h3><a href="https://discord.gg/eUf9Ur6RyB">Official Discord</a></h3> <h3><a href="https://www.youtube.com/watch?v=aUr0gXE77rk">Video Installation Guide</a></h3> - - \ No newline at end of file diff --git a/m/daily/index.xml b/m/daily/index.xml index 6dcc296b632..22632a7501e 100644 --- a/m/daily/index.xml +++ b/m/daily/index.xml @@ -1,7 +1,7 @@ GitHub M Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:29Z + 2024-08-22T01:31:46Z Daily Trending of M in GitHub \ No newline at end of file diff --git a/m4/daily/index.xml b/m4/daily/index.xml index a9c5250add2..92c55cf0735 100644 --- a/m4/daily/index.xml +++ b/m4/daily/index.xml @@ -1,7 +1,7 @@ GitHub M4 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:30Z + 2024-08-22T01:31:46Z Daily Trending of M4 in GitHub \ No newline at end of file diff --git a/m4sugar/daily/index.xml b/m4sugar/daily/index.xml index 859ae38d5e8..c8fb9612318 100644 --- a/m4sugar/daily/index.xml +++ b/m4sugar/daily/index.xml @@ -1,7 +1,7 @@ GitHub M4Sugar Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:29Z + 2024-08-22T01:31:46Z Daily Trending of M4Sugar in GitHub \ No newline at end of file diff --git a/macaulay2/daily/index.xml b/macaulay2/daily/index.xml index ba43abc2cee..2f526447207 100644 --- a/macaulay2/daily/index.xml +++ b/macaulay2/daily/index.xml @@ -1,7 +1,7 @@ GitHub Macaulay2 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:31Z + 2024-08-22T01:31:48Z Daily Trending of Macaulay2 in GitHub \ No newline at end of file diff --git a/makefile/daily/index.xml b/makefile/daily/index.xml index 0863a74cb77..56d38b4d227 100644 --- a/makefile/daily/index.xml +++ b/makefile/daily/index.xml @@ -1,14 +1,14 @@ GitHub Makefile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:33Z + 2024-08-22T01:31:48Z Daily Trending of Makefile in GitHub - OP-TEE/build - 2024-08-21T01:31:33Z - tag:github.com,2024-08-21:/OP-TEE/build - - <p>Makefiles to use OP-TEE on various platforms</p><hr> + cilium/cilium-cli + 2024-08-22T01:31:48Z + tag:github.com,2024-08-22:/cilium/cilium-cli + + <p>CLI to install, manage & troubleshoot Kubernetes clusters running Cilium</p><hr> \ No newline at end of file diff --git a/mako/daily/index.xml b/mako/daily/index.xml index 7be649c5198..1a14e6924bf 100644 --- a/mako/daily/index.xml +++ b/mako/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mako Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:31Z + 2024-08-22T01:31:47Z Daily Trending of Mako in GitHub \ No newline at end of file diff --git a/markdown/daily/index.xml b/markdown/daily/index.xml index 5e54d220dc0..207f9e357b1 100644 --- a/markdown/daily/index.xml +++ b/markdown/daily/index.xml @@ -1,7 +1,7 @@ GitHub Markdown Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:41Z + 2024-08-22T01:31:57Z Daily Trending of Markdown in GitHub \ No newline at end of file diff --git a/marko/daily/index.xml b/marko/daily/index.xml index 62f4d481c20..617e2cbd6a6 100644 --- a/marko/daily/index.xml +++ b/marko/daily/index.xml @@ -1,7 +1,7 @@ GitHub Marko Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:42Z + 2024-08-22T01:31:58Z Daily Trending of Marko in GitHub \ No newline at end of file diff --git a/mask/daily/index.xml b/mask/daily/index.xml index f0b748c9952..2d07e124a5f 100644 --- a/mask/daily/index.xml +++ b/mask/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mask Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:41Z + 2024-08-22T01:31:58Z Daily Trending of Mask in GitHub \ No newline at end of file diff --git a/mathematica/daily/index.xml b/mathematica/daily/index.xml index 8c90d09184c..6d0c68973f2 100644 --- a/mathematica/daily/index.xml +++ b/mathematica/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mathematica Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:42Z + 2024-08-22T01:31:58Z Daily Trending of Mathematica in GitHub \ No newline at end of file diff --git a/matlab/daily/index.xml b/matlab/daily/index.xml index e9a52a0b5b8..f19ec0d7a5a 100644 --- a/matlab/daily/index.xml +++ b/matlab/daily/index.xml @@ -1,7 +1,7 @@ GitHub MATLAB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:42Z + 2024-08-22T01:31:59Z Daily Trending of MATLAB in GitHub \ No newline at end of file diff --git a/maven-pom/daily/index.xml b/maven-pom/daily/index.xml index ced23bc4259..4ac71ee929b 100644 --- a/maven-pom/daily/index.xml +++ b/maven-pom/daily/index.xml @@ -1,7 +1,7 @@ GitHub Maven POM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:44Z + 2024-08-22T01:31:59Z Daily Trending of Maven POM in GitHub \ No newline at end of file diff --git a/max/daily/index.xml b/max/daily/index.xml index bfa7eb26393..3a07edb4031 100644 --- a/max/daily/index.xml +++ b/max/daily/index.xml @@ -1,7 +1,7 @@ GitHub Max Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:43Z + 2024-08-22T01:31:59Z Daily Trending of Max in GitHub \ No newline at end of file diff --git a/maxscript/daily/index.xml b/maxscript/daily/index.xml index df9b34b04bf..f3e6532b593 100644 --- a/maxscript/daily/index.xml +++ b/maxscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub MAXScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:43Z + 2024-08-22T01:32:00Z Daily Trending of MAXScript in GitHub \ No newline at end of file diff --git a/mcfunction/daily/index.xml b/mcfunction/daily/index.xml index 3dafa28bb8f..c42565fa713 100644 --- a/mcfunction/daily/index.xml +++ b/mcfunction/daily/index.xml @@ -1,7 +1,7 @@ GitHub mcfunction Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:44Z + 2024-08-22T01:32:00Z Daily Trending of mcfunction in GitHub \ No newline at end of file diff --git a/mercury/daily/index.xml b/mercury/daily/index.xml index 6d60d6907a9..2553741a060 100644 --- a/mercury/daily/index.xml +++ b/mercury/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mercury Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:45Z + 2024-08-22T01:32:01Z Daily Trending of Mercury in GitHub \ No newline at end of file diff --git a/meson/daily/index.xml b/meson/daily/index.xml index e630c90141e..04e6a39d1cc 100644 --- a/meson/daily/index.xml +++ b/meson/daily/index.xml @@ -1,7 +1,7 @@ GitHub Meson Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:49Z + 2024-08-22T01:32:05Z Daily Trending of Meson in GitHub \ No newline at end of file diff --git a/metal/daily/index.xml b/metal/daily/index.xml index 73840816a64..10f47dbd45b 100644 --- a/metal/daily/index.xml +++ b/metal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Metal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:48Z + 2024-08-22T01:32:04Z Daily Trending of Metal in GitHub \ No newline at end of file diff --git a/microsoft-developer-studio-project/daily/index.xml b/microsoft-developer-studio-project/daily/index.xml index 50a4c371545..0667e256fa6 100644 --- a/microsoft-developer-studio-project/daily/index.xml +++ b/microsoft-developer-studio-project/daily/index.xml @@ -1,7 +1,7 @@ GitHub Microsoft Developer Studio Project Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:49Z + 2024-08-22T01:32:05Z Daily Trending of Microsoft Developer Studio Project in GitHub \ No newline at end of file diff --git a/microsoft-visual-studio-solution/daily/index.xml b/microsoft-visual-studio-solution/daily/index.xml index 441fe0f420d..04d923003d4 100644 --- a/microsoft-visual-studio-solution/daily/index.xml +++ b/microsoft-visual-studio-solution/daily/index.xml @@ -1,7 +1,7 @@ GitHub Microsoft Visual Studio Solution Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:48Z + 2024-08-22T01:32:05Z Daily Trending of Microsoft Visual Studio Solution in GitHub \ No newline at end of file diff --git a/minid/daily/index.xml b/minid/daily/index.xml index 2cb80560325..1a957a951fb 100644 --- a/minid/daily/index.xml +++ b/minid/daily/index.xml @@ -1,7 +1,7 @@ GitHub MiniD Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:50Z + 2024-08-22T01:32:06Z Daily Trending of MiniD in GitHub \ No newline at end of file diff --git a/mint/daily/index.xml b/mint/daily/index.xml index 2daf12abe25..3cc89426e7b 100644 --- a/mint/daily/index.xml +++ b/mint/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mint Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:50Z + 2024-08-22T01:32:06Z Daily Trending of Mint in GitHub \ No newline at end of file diff --git a/mirah/daily/index.xml b/mirah/daily/index.xml index efa70544c04..8c533254f35 100644 --- a/mirah/daily/index.xml +++ b/mirah/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mirah Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:50Z + 2024-08-22T01:32:06Z Daily Trending of Mirah in GitHub \ No newline at end of file diff --git a/mirc-script/daily/index.xml b/mirc-script/daily/index.xml index aa40a9b9c99..e7f1d247125 100644 --- a/mirc-script/daily/index.xml +++ b/mirc-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub mIRC Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:51Z + 2024-08-22T01:32:08Z Daily Trending of mIRC Script in GitHub \ No newline at end of file diff --git a/mlir/daily/index.xml b/mlir/daily/index.xml index e4fe0df6c61..f313fe92402 100644 --- a/mlir/daily/index.xml +++ b/mlir/daily/index.xml @@ -1,7 +1,7 @@ GitHub MLIR Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:52Z + 2024-08-22T01:32:07Z Daily Trending of MLIR in GitHub \ No newline at end of file diff --git a/modelica/daily/index.xml b/modelica/daily/index.xml index c408e4eb74f..bb486942db8 100644 --- a/modelica/daily/index.xml +++ b/modelica/daily/index.xml @@ -1,7 +1,7 @@ GitHub Modelica Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:51Z + 2024-08-22T01:32:08Z Daily Trending of Modelica in GitHub \ No newline at end of file diff --git a/modula-2/daily/index.xml b/modula-2/daily/index.xml index 28d06f7c9e5..25632b68132 100644 --- a/modula-2/daily/index.xml +++ b/modula-2/daily/index.xml @@ -1,7 +1,7 @@ GitHub Modula-2 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:52Z + 2024-08-22T01:32:08Z Daily Trending of Modula-2 in GitHub \ No newline at end of file diff --git a/modula-3/daily/index.xml b/modula-3/daily/index.xml index ac66adc97d3..3b2cad39ca6 100644 --- a/modula-3/daily/index.xml +++ b/modula-3/daily/index.xml @@ -1,7 +1,7 @@ GitHub Modula-3 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:53Z + 2024-08-22T01:32:09Z Daily Trending of Modula-3 in GitHub \ No newline at end of file diff --git a/module-management-system/daily/index.xml b/module-management-system/daily/index.xml index 9771f73730c..dc2b068c147 100644 --- a/module-management-system/daily/index.xml +++ b/module-management-system/daily/index.xml @@ -1,7 +1,7 @@ GitHub Module Management System Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:53Z + 2024-08-22T01:32:09Z Daily Trending of Module Management System in GitHub \ No newline at end of file diff --git a/monkey-c/daily/index.xml b/monkey-c/daily/index.xml index edc5cd0fc24..30fd3804c53 100644 --- a/monkey-c/daily/index.xml +++ b/monkey-c/daily/index.xml @@ -1,7 +1,7 @@ GitHub Monkey C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:55Z + 2024-08-22T01:32:11Z Daily Trending of Monkey C in GitHub \ No newline at end of file diff --git a/monkey/daily/index.xml b/monkey/daily/index.xml index a049f030a1c..86696c39087 100644 --- a/monkey/daily/index.xml +++ b/monkey/daily/index.xml @@ -1,7 +1,7 @@ GitHub Monkey Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:53Z + 2024-08-22T01:32:09Z Daily Trending of Monkey in GitHub \ No newline at end of file diff --git a/moocode/daily/index.xml b/moocode/daily/index.xml index 913d0fb4ab1..07805746c2e 100644 --- a/moocode/daily/index.xml +++ b/moocode/daily/index.xml @@ -1,7 +1,7 @@ GitHub Moocode Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:54Z + 2024-08-22T01:32:11Z Daily Trending of Moocode in GitHub \ No newline at end of file diff --git a/moonscript/daily/index.xml b/moonscript/daily/index.xml index bfb1306f8e8..e7037b26f6f 100644 --- a/moonscript/daily/index.xml +++ b/moonscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub MoonScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:54Z + 2024-08-22T01:32:11Z Daily Trending of MoonScript in GitHub \ No newline at end of file diff --git a/motoko/daily/index.xml b/motoko/daily/index.xml index bc284239a7c..efe8b92f5a4 100644 --- a/motoko/daily/index.xml +++ b/motoko/daily/index.xml @@ -1,7 +1,7 @@ GitHub Motoko Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:55Z + 2024-08-22T01:32:10Z Daily Trending of Motoko in GitHub \ No newline at end of file diff --git a/motorola-68k-assembly/daily/index.xml b/motorola-68k-assembly/daily/index.xml index c4fed4fae04..112c11ef795 100644 --- a/motorola-68k-assembly/daily/index.xml +++ b/motorola-68k-assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Motorola 68K Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:56Z + 2024-08-22T01:32:12Z Daily Trending of Motorola 68K Assembly in GitHub \ No newline at end of file diff --git a/mql4/daily/index.xml b/mql4/daily/index.xml index 64d6237c613..37694666e8b 100644 --- a/mql4/daily/index.xml +++ b/mql4/daily/index.xml @@ -1,7 +1,7 @@ GitHub MQL4 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:56Z + 2024-08-22T01:32:12Z Daily Trending of MQL4 in GitHub \ No newline at end of file diff --git a/mql5/daily/index.xml b/mql5/daily/index.xml index 66d21d87c0d..aee94ee68a5 100644 --- a/mql5/daily/index.xml +++ b/mql5/daily/index.xml @@ -1,7 +1,7 @@ GitHub MQL5 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:56Z + 2024-08-22T01:32:12Z Daily Trending of MQL5 in GitHub \ No newline at end of file diff --git a/mtml/daily/index.xml b/mtml/daily/index.xml index 5c01d114283..f82abea560f 100644 --- a/mtml/daily/index.xml +++ b/mtml/daily/index.xml @@ -1,7 +1,7 @@ GitHub MTML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:58Z + 2024-08-22T01:32:13Z Daily Trending of MTML in GitHub \ No newline at end of file diff --git a/muf/daily/index.xml b/muf/daily/index.xml index 7004ba07dc3..94bf7d865e0 100644 --- a/muf/daily/index.xml +++ b/muf/daily/index.xml @@ -1,7 +1,7 @@ GitHub MUF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:57Z + 2024-08-22T01:32:14Z Daily Trending of MUF in GitHub \ No newline at end of file diff --git a/mupad/daily/index.xml b/mupad/daily/index.xml index 44489184de8..da1455e5a70 100644 --- a/mupad/daily/index.xml +++ b/mupad/daily/index.xml @@ -1,7 +1,7 @@ GitHub mupad Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:57Z + 2024-08-22T01:32:14Z Daily Trending of mupad in GitHub \ No newline at end of file diff --git a/muse/daily/index.xml b/muse/daily/index.xml index 5fb484b04f3..426e956d4d2 100644 --- a/muse/daily/index.xml +++ b/muse/daily/index.xml @@ -1,7 +1,7 @@ GitHub Muse Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:58Z + 2024-08-22T01:32:13Z Daily Trending of Muse in GitHub \ No newline at end of file diff --git a/mustache/daily/index.xml b/mustache/daily/index.xml index 3a4530c1cb1..05d778bbcf1 100644 --- a/mustache/daily/index.xml +++ b/mustache/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mustache Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:01Z + 2024-08-22T01:32:17Z Daily Trending of Mustache in GitHub \ No newline at end of file diff --git a/myghty/daily/index.xml b/myghty/daily/index.xml index e67425daa7a..22df0090ca7 100644 --- a/myghty/daily/index.xml +++ b/myghty/daily/index.xml @@ -1,7 +1,7 @@ GitHub Myghty Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:59Z + 2024-08-22T01:32:15Z Daily Trending of Myghty in GitHub \ No newline at end of file diff --git a/nanorc/daily/index.xml b/nanorc/daily/index.xml index 2dbce4f98af..465e7fa899d 100644 --- a/nanorc/daily/index.xml +++ b/nanorc/daily/index.xml @@ -1,7 +1,7 @@ GitHub nanorc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:59Z + 2024-08-22T01:32:15Z Daily Trending of nanorc in GitHub \ No newline at end of file diff --git a/nasl/daily/index.xml b/nasl/daily/index.xml index 1ecf4dda81c..b860cfbdf5d 100644 --- a/nasl/daily/index.xml +++ b/nasl/daily/index.xml @@ -1,7 +1,7 @@ GitHub NASL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:02Z + 2024-08-22T01:32:18Z Daily Trending of NASL in GitHub \ No newline at end of file diff --git a/ncl/daily/index.xml b/ncl/daily/index.xml index ff8c6da3226..743b12d7a3d 100644 --- a/ncl/daily/index.xml +++ b/ncl/daily/index.xml @@ -1,7 +1,7 @@ GitHub NCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:02Z + 2024-08-22T01:32:18Z Daily Trending of NCL in GitHub \ No newline at end of file diff --git a/nearley/daily/index.xml b/nearley/daily/index.xml index 87c8d41e24b..0133127ad8f 100644 --- a/nearley/daily/index.xml +++ b/nearley/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nearley Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:01Z + 2024-08-22T01:32:19Z Daily Trending of Nearley in GitHub \ No newline at end of file diff --git a/nemerle/daily/index.xml b/nemerle/daily/index.xml index 7206c2f0069..64ac969c1ae 100644 --- a/nemerle/daily/index.xml +++ b/nemerle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nemerle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:02Z + 2024-08-22T01:32:18Z Daily Trending of Nemerle in GitHub \ No newline at end of file diff --git a/neon/daily/index.xml b/neon/daily/index.xml index aed6d7d8dd1..6531e5ffffd 100644 --- a/neon/daily/index.xml +++ b/neon/daily/index.xml @@ -1,7 +1,7 @@ GitHub NEON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:03Z + 2024-08-22T01:32:20Z Daily Trending of NEON in GitHub \ No newline at end of file diff --git a/nesc/daily/index.xml b/nesc/daily/index.xml index 5619834a5f1..4a373c94260 100644 --- a/nesc/daily/index.xml +++ b/nesc/daily/index.xml @@ -1,7 +1,7 @@ GitHub nesC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:04Z + 2024-08-22T01:32:20Z Daily Trending of nesC in GitHub \ No newline at end of file diff --git a/netlinx+erb/daily/index.xml b/netlinx+erb/daily/index.xml index 0a096a58cb7..ebfd5a52de1 100644 --- a/netlinx+erb/daily/index.xml +++ b/netlinx+erb/daily/index.xml @@ -1,7 +1,7 @@ GitHub NetLinx+ERB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:03Z + 2024-08-22T01:32:19Z Daily Trending of NetLinx+ERB in GitHub \ No newline at end of file diff --git a/netlinx/daily/index.xml b/netlinx/daily/index.xml index ce9285d9b57..92df3771d76 100644 --- a/netlinx/daily/index.xml +++ b/netlinx/daily/index.xml @@ -1,7 +1,7 @@ GitHub NetLinx Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:03Z + 2024-08-22T01:32:19Z Daily Trending of NetLinx in GitHub \ No newline at end of file diff --git a/netlogo/daily/index.xml b/netlogo/daily/index.xml index 67848b1086f..12dd6541608 100644 --- a/netlogo/daily/index.xml +++ b/netlogo/daily/index.xml @@ -1,7 +1,7 @@ GitHub NetLogo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:04Z + 2024-08-22T01:32:21Z Daily Trending of NetLogo in GitHub \ No newline at end of file diff --git a/newlisp/daily/index.xml b/newlisp/daily/index.xml index 8aeb0946b5c..de94fc9e6f7 100644 --- a/newlisp/daily/index.xml +++ b/newlisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub NewLisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:05Z + 2024-08-22T01:32:21Z Daily Trending of NewLisp in GitHub \ No newline at end of file diff --git a/nextflow/daily/index.xml b/nextflow/daily/index.xml index 5dc4b36c20f..e173abdd573 100644 --- a/nextflow/daily/index.xml +++ b/nextflow/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nextflow Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:05Z + 2024-08-22T01:32:22Z Daily Trending of Nextflow in GitHub \ No newline at end of file diff --git a/nginx/daily/index.xml b/nginx/daily/index.xml index 8a31c499347..a614fd67e70 100644 --- a/nginx/daily/index.xml +++ b/nginx/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nginx Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:05Z + 2024-08-22T01:32:21Z Daily Trending of Nginx in GitHub \ No newline at end of file diff --git a/nim/daily/index.xml b/nim/daily/index.xml index 4bc7eefff41..dde51c4217e 100644 --- a/nim/daily/index.xml +++ b/nim/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nim Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:07Z + 2024-08-22T01:32:23Z Daily Trending of Nim in GitHub \ No newline at end of file diff --git a/ninja/daily/index.xml b/ninja/daily/index.xml index a0e435ba7e1..c902c247656 100644 --- a/ninja/daily/index.xml +++ b/ninja/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ninja Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:06Z + 2024-08-22T01:32:22Z Daily Trending of Ninja in GitHub \ No newline at end of file diff --git a/nit/daily/index.xml b/nit/daily/index.xml index f30c0c68154..b539b9d1e57 100644 --- a/nit/daily/index.xml +++ b/nit/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nit Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:06Z + 2024-08-22T01:32:22Z Daily Trending of Nit in GitHub \ No newline at end of file diff --git a/nix/daily/index.xml b/nix/daily/index.xml index 5938577333b..83205d55de5 100644 --- a/nix/daily/index.xml +++ b/nix/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nix Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:07Z + 2024-08-22T01:32:26Z Daily Trending of Nix in GitHub \ No newline at end of file diff --git a/nl/daily/index.xml b/nl/daily/index.xml index cd437ced193..b3a75979f4c 100644 --- a/nl/daily/index.xml +++ b/nl/daily/index.xml @@ -1,7 +1,7 @@ GitHub NL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:08Z + 2024-08-22T01:32:26Z Daily Trending of NL in GitHub \ No newline at end of file diff --git a/npm-config/daily/index.xml b/npm-config/daily/index.xml index 9854f53c6b0..af677b88a53 100644 --- a/npm-config/daily/index.xml +++ b/npm-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub NPM Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:09Z + 2024-08-22T01:32:27Z Daily Trending of NPM Config in GitHub \ No newline at end of file diff --git a/nsis/daily/index.xml b/nsis/daily/index.xml index fc4846a9a76..2395a60d7b0 100644 --- a/nsis/daily/index.xml +++ b/nsis/daily/index.xml @@ -1,7 +1,7 @@ GitHub NSIS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:09Z + 2024-08-22T01:32:27Z Daily Trending of NSIS in GitHub \ No newline at end of file diff --git a/nu/daily/index.xml b/nu/daily/index.xml index 442ae2246cd..7dd7e1057e3 100644 --- a/nu/daily/index.xml +++ b/nu/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nu Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:09Z + 2024-08-22T01:32:28Z Daily Trending of Nu in GitHub \ No newline at end of file diff --git a/numpy/daily/index.xml b/numpy/daily/index.xml index 7ef5d10eede..0a603ac7f10 100644 --- a/numpy/daily/index.xml +++ b/numpy/daily/index.xml @@ -1,7 +1,7 @@ GitHub NumPy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:10Z + 2024-08-22T01:32:28Z Daily Trending of NumPy in GitHub \ No newline at end of file diff --git a/nunjucks/daily/index.xml b/nunjucks/daily/index.xml index cbc625c2dfa..576698fc991 100644 --- a/nunjucks/daily/index.xml +++ b/nunjucks/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nunjucks Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:10Z + 2024-08-22T01:32:29Z Daily Trending of Nunjucks in GitHub \ No newline at end of file diff --git a/nwscript/daily/index.xml b/nwscript/daily/index.xml index a192cfee5e5..f32b8855a0f 100644 --- a/nwscript/daily/index.xml +++ b/nwscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub NWScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:11Z + 2024-08-22T01:32:30Z Daily Trending of NWScript in GitHub \ No newline at end of file diff --git a/objdump/daily/index.xml b/objdump/daily/index.xml index fccd259db40..0c724ae5e77 100644 --- a/objdump/daily/index.xml +++ b/objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:13Z + 2024-08-22T01:32:31Z Daily Trending of ObjDump in GitHub \ No newline at end of file diff --git a/object-data-instance-notation/daily/index.xml b/object-data-instance-notation/daily/index.xml index 9d8a008e4df..3975ad46651 100644 --- a/object-data-instance-notation/daily/index.xml +++ b/object-data-instance-notation/daily/index.xml @@ -1,7 +1,7 @@ GitHub Object Data Instance Notation Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:13Z + 2024-08-22T01:32:31Z Daily Trending of Object Data Instance Notation in GitHub \ No newline at end of file diff --git a/objective-c++/daily/index.xml b/objective-c++/daily/index.xml index b64c350c3bd..ee283288a7a 100644 --- a/objective-c++/daily/index.xml +++ b/objective-c++/daily/index.xml @@ -1,7 +1,7 @@ GitHub Objective-C++ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:16Z + 2024-08-22T01:32:33Z Daily Trending of Objective-C++ in GitHub \ No newline at end of file diff --git a/objective-c/daily/index.xml b/objective-c/daily/index.xml index 7c1c5006475..fb2558c863b 100644 --- a/objective-c/daily/index.xml +++ b/objective-c/daily/index.xml @@ -1,7 +1,7 @@ GitHub Objective-C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:16Z + 2024-08-22T01:32:34Z Daily Trending of Objective-C in GitHub \ No newline at end of file diff --git a/objective-j/daily/index.xml b/objective-j/daily/index.xml index 849ca572635..c787cc79476 100644 --- a/objective-j/daily/index.xml +++ b/objective-j/daily/index.xml @@ -1,7 +1,7 @@ GitHub Objective-J Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:14Z + 2024-08-22T01:32:32Z Daily Trending of Objective-J in GitHub \ No newline at end of file diff --git a/objectscript/daily/index.xml b/objectscript/daily/index.xml index aedf57ba0d2..c7366d94f5a 100644 --- a/objectscript/daily/index.xml +++ b/objectscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ObjectScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:14Z + 2024-08-22T01:32:33Z Daily Trending of ObjectScript in GitHub \ No newline at end of file diff --git a/ocaml/daily/index.xml b/ocaml/daily/index.xml index 4f01e45f241..c62c75b7824 100644 --- a/ocaml/daily/index.xml +++ b/ocaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub OCaml Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:20Z + 2024-08-22T01:32:38Z Daily Trending of OCaml in GitHub \ No newline at end of file diff --git a/odin/daily/index.xml b/odin/daily/index.xml index 495d9a14361..37fcb4288bf 100644 --- a/odin/daily/index.xml +++ b/odin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Odin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:19Z + 2024-08-22T01:32:38Z Daily Trending of Odin in GitHub \ No newline at end of file diff --git a/omgrofl/daily/index.xml b/omgrofl/daily/index.xml index d7f4b2def1f..e6a1527f853 100644 --- a/omgrofl/daily/index.xml +++ b/omgrofl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Omgrofl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:19Z + 2024-08-22T01:32:37Z Daily Trending of Omgrofl in GitHub \ No newline at end of file diff --git a/ooc/daily/index.xml b/ooc/daily/index.xml index c81fcc1c944..bb64e1ef76e 100644 --- a/ooc/daily/index.xml +++ b/ooc/daily/index.xml @@ -1,7 +1,7 @@ GitHub ooc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:19Z + 2024-08-22T01:32:37Z Daily Trending of ooc in GitHub \ No newline at end of file diff --git a/opa/daily/index.xml b/opa/daily/index.xml index 4e522cf0a47..bc68b86f584 100644 --- a/opa/daily/index.xml +++ b/opa/daily/index.xml @@ -1,7 +1,7 @@ GitHub Opa Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:22Z + 2024-08-22T01:32:39Z Daily Trending of Opa in GitHub \ No newline at end of file diff --git a/opal/daily/index.xml b/opal/daily/index.xml index c3de453f831..e82caf0e6a2 100644 --- a/opal/daily/index.xml +++ b/opal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Opal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:21Z + 2024-08-22T01:32:39Z Daily Trending of Opal in GitHub \ No newline at end of file diff --git a/open-policy-agent/daily/index.xml b/open-policy-agent/daily/index.xml index 16934e4fff3..b81f5d15232 100644 --- a/open-policy-agent/daily/index.xml +++ b/open-policy-agent/daily/index.xml @@ -1,7 +1,14 @@ GitHub Open Policy Agent Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:22Z + 2024-08-22T01:32:40Z Daily Trending of Open Policy Agent in GitHub + + open-telemetry/semantic-conventions + 2024-08-22T01:32:40Z + tag:github.com,2024-08-22:/open-telemetry/semantic-conventions + + <p>Defines standards for generating consistent, accessible telemetry across a variety of domains</p><hr> + \ No newline at end of file diff --git a/opencl/daily/index.xml b/opencl/daily/index.xml index 45ccd3b1e48..759aa67923b 100644 --- a/opencl/daily/index.xml +++ b/opencl/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:23Z + 2024-08-22T01:32:41Z Daily Trending of OpenCL in GitHub \ No newline at end of file diff --git a/openedge-abl/daily/index.xml b/openedge-abl/daily/index.xml index ef2fce1ae44..8ea4cf91928 100644 --- a/openedge-abl/daily/index.xml +++ b/openedge-abl/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenEdge ABL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:23Z + 2024-08-22T01:32:41Z Daily Trending of OpenEdge ABL in GitHub \ No newline at end of file diff --git a/openqasm/daily/index.xml b/openqasm/daily/index.xml index fdc8333c316..e2138c20f12 100644 --- a/openqasm/daily/index.xml +++ b/openqasm/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenQASM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:24Z + 2024-08-22T01:32:40Z Daily Trending of OpenQASM in GitHub \ No newline at end of file diff --git a/openrc-runscript/daily/index.xml b/openrc-runscript/daily/index.xml index 27c8f0d0382..733ba2ba5a7 100644 --- a/openrc-runscript/daily/index.xml +++ b/openrc-runscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenRC runscript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:25Z + 2024-08-22T01:32:42Z Daily Trending of OpenRC runscript in GitHub \ No newline at end of file diff --git a/openscad/daily/index.xml b/openscad/daily/index.xml index 48b3679dc54..ceb0238431b 100644 --- a/openscad/daily/index.xml +++ b/openscad/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenSCAD Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:25Z + 2024-08-22T01:32:43Z Daily Trending of OpenSCAD in GitHub \ No newline at end of file diff --git a/openstep-property-list/daily/index.xml b/openstep-property-list/daily/index.xml index ef1cf29b40e..dbb7a1b61b7 100644 --- a/openstep-property-list/daily/index.xml +++ b/openstep-property-list/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenStep Property List Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:24Z + 2024-08-22T01:32:43Z Daily Trending of OpenStep Property List in GitHub \ No newline at end of file diff --git a/opentype-feature-file/daily/index.xml b/opentype-feature-file/daily/index.xml index f02e28aad64..31fcc184ddf 100644 --- a/opentype-feature-file/daily/index.xml +++ b/opentype-feature-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenType Feature File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:25Z + 2024-08-22T01:32:42Z Daily Trending of OpenType Feature File in GitHub \ No newline at end of file diff --git a/org/daily/index.xml b/org/daily/index.xml index d751466071c..5334b701bf4 100644 --- a/org/daily/index.xml +++ b/org/daily/index.xml @@ -1,7 +1,7 @@ GitHub Org Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:26Z + 2024-08-22T01:32:43Z Daily Trending of Org in GitHub \ No newline at end of file diff --git a/ox/daily/index.xml b/ox/daily/index.xml index 73f045b38d9..6c99e0f7197 100644 --- a/ox/daily/index.xml +++ b/ox/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ox Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:26Z + 2024-08-22T01:32:44Z Daily Trending of Ox in GitHub \ No newline at end of file diff --git a/oxygene/daily/index.xml b/oxygene/daily/index.xml index 929095888d9..fe0ca729118 100644 --- a/oxygene/daily/index.xml +++ b/oxygene/daily/index.xml @@ -1,7 +1,7 @@ GitHub Oxygene Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:26Z + 2024-08-22T01:32:44Z Daily Trending of Oxygene in GitHub \ No newline at end of file diff --git a/oz/daily/index.xml b/oz/daily/index.xml index 06d8095d382..b7702581369 100644 --- a/oz/daily/index.xml +++ b/oz/daily/index.xml @@ -1,7 +1,7 @@ GitHub Oz Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:28Z + 2024-08-22T01:32:45Z Daily Trending of Oz in GitHub \ No newline at end of file diff --git a/p4/daily/index.xml b/p4/daily/index.xml index 922d7b053b8..725918c0062 100644 --- a/p4/daily/index.xml +++ b/p4/daily/index.xml @@ -1,7 +1,7 @@ GitHub P4 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:28Z + 2024-08-22T01:32:45Z Daily Trending of P4 in GitHub \ No newline at end of file diff --git a/pan/daily/index.xml b/pan/daily/index.xml index e2d40249f33..3c26f55c013 100644 --- a/pan/daily/index.xml +++ b/pan/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pan Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:28Z + 2024-08-22T01:32:45Z Daily Trending of Pan in GitHub \ No newline at end of file diff --git a/papyrus/daily/index.xml b/papyrus/daily/index.xml index 443f3d5409d..154c00cc5f0 100644 --- a/papyrus/daily/index.xml +++ b/papyrus/daily/index.xml @@ -1,7 +1,7 @@ GitHub Papyrus Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:29Z + 2024-08-22T01:32:47Z Daily Trending of Papyrus in GitHub \ No newline at end of file diff --git a/parrot-assembly/daily/index.xml b/parrot-assembly/daily/index.xml index 7dfc15ab392..843d913a89b 100644 --- a/parrot-assembly/daily/index.xml +++ b/parrot-assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Parrot Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:29Z + 2024-08-22T01:32:47Z Daily Trending of Parrot Assembly in GitHub \ No newline at end of file diff --git a/parrot-internal-representation/daily/index.xml b/parrot-internal-representation/daily/index.xml index 9d7ab47be6a..b8fdd369b72 100644 --- a/parrot-internal-representation/daily/index.xml +++ b/parrot-internal-representation/daily/index.xml @@ -1,7 +1,7 @@ GitHub Parrot Internal Representation Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:29Z + 2024-08-22T01:32:46Z Daily Trending of Parrot Internal Representation in GitHub \ No newline at end of file diff --git a/parrot/daily/index.xml b/parrot/daily/index.xml index f14654f357e..dfc92dd17f6 100644 --- a/parrot/daily/index.xml +++ b/parrot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Parrot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:30Z + 2024-08-22T01:32:47Z Daily Trending of Parrot in GitHub \ No newline at end of file diff --git a/pascal/daily/index.xml b/pascal/daily/index.xml index 72b3d8db833..f70dd5f5716 100644 --- a/pascal/daily/index.xml +++ b/pascal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pascal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:31Z + 2024-08-22T01:32:49Z Daily Trending of Pascal in GitHub \ No newline at end of file diff --git a/pawn/daily/index.xml b/pawn/daily/index.xml index ec0e8bc417c..10ad201c8a1 100644 --- a/pawn/daily/index.xml +++ b/pawn/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pawn Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:30Z + 2024-08-22T01:32:48Z Daily Trending of Pawn in GitHub \ No newline at end of file diff --git a/peg.js/daily/index.xml b/peg.js/daily/index.xml index ef39ac1bbb1..3c9c8099e6d 100644 --- a/peg.js/daily/index.xml +++ b/peg.js/daily/index.xml @@ -1,7 +1,7 @@ GitHub PEG.js Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:31Z + 2024-08-22T01:32:48Z Daily Trending of PEG.js in GitHub \ No newline at end of file diff --git a/pep8/daily/index.xml b/pep8/daily/index.xml index 63ebd3aeddc..c9ad5fb43b2 100644 --- a/pep8/daily/index.xml +++ b/pep8/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pep8 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:32Z + 2024-08-22T01:32:50Z Daily Trending of Pep8 in GitHub \ No newline at end of file diff --git a/perl/daily/index.xml b/perl/daily/index.xml index f6df797eafc..6eda0a77a65 100644 --- a/perl/daily/index.xml +++ b/perl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Perl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:37Z + 2024-08-22T01:32:52Z Daily Trending of Perl in GitHub \ No newline at end of file diff --git a/php/daily/index.xml b/php/daily/index.xml index 920b753bbef..e8295280b25 100644 --- a/php/daily/index.xml +++ b/php/daily/index.xml @@ -1,7 +1,7 @@ GitHub PHP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:34Z + 2024-08-22T01:32:57Z Daily Trending of PHP in GitHub \ No newline at end of file diff --git a/pic/daily/index.xml b/pic/daily/index.xml index 74aa2d55dc6..d865dd73b86 100644 --- a/pic/daily/index.xml +++ b/pic/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:32Z + 2024-08-22T01:32:49Z Daily Trending of Pic in GitHub \ No newline at end of file diff --git a/pickle/daily/index.xml b/pickle/daily/index.xml index 973388a8218..9384c4b7d55 100644 --- a/pickle/daily/index.xml +++ b/pickle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pickle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:44Z + 2024-08-22T01:33:02Z Daily Trending of Pickle in GitHub \ No newline at end of file diff --git a/picolisp/daily/index.xml b/picolisp/daily/index.xml index cafb80fdb80..eb0d06c4b7f 100644 --- a/picolisp/daily/index.xml +++ b/picolisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub PicoLisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:44Z + 2024-08-22T01:33:02Z Daily Trending of PicoLisp in GitHub \ No newline at end of file diff --git a/piglatin/daily/index.xml b/piglatin/daily/index.xml index 57e8829d61b..59618a67c4b 100644 --- a/piglatin/daily/index.xml +++ b/piglatin/daily/index.xml @@ -1,7 +1,7 @@ GitHub PigLatin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:43Z + 2024-08-22T01:33:01Z Daily Trending of PigLatin in GitHub \ No newline at end of file diff --git a/pike/daily/index.xml b/pike/daily/index.xml index f9c827192ce..bcb8cb9698b 100644 --- a/pike/daily/index.xml +++ b/pike/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pike Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:44Z + 2024-08-22T01:33:02Z Daily Trending of Pike in GitHub \ No newline at end of file diff --git a/plantuml/daily/index.xml b/plantuml/daily/index.xml index b37b0496afa..9930174a6a7 100644 --- a/plantuml/daily/index.xml +++ b/plantuml/daily/index.xml @@ -1,7 +1,7 @@ GitHub PlantUML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:45Z + 2024-08-22T01:33:03Z Daily Trending of PlantUML in GitHub \ No newline at end of file diff --git a/plpgsql/daily/index.xml b/plpgsql/daily/index.xml index 8b18f31e610..2a208b29f4d 100644 --- a/plpgsql/daily/index.xml +++ b/plpgsql/daily/index.xml @@ -1,7 +1,7 @@ GitHub PLpgSQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:46Z + 2024-08-22T01:33:04Z Daily Trending of PLpgSQL in GitHub \ No newline at end of file diff --git a/plsql/daily/index.xml b/plsql/daily/index.xml index 6920435c210..b9ae4c66a32 100644 --- a/plsql/daily/index.xml +++ b/plsql/daily/index.xml @@ -1,7 +1,7 @@ GitHub PLSQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:47Z + 2024-08-22T01:33:05Z Daily Trending of PLSQL in GitHub \ No newline at end of file diff --git a/pod-6/daily/index.xml b/pod-6/daily/index.xml index 3a6b62ab1e8..918251067be 100644 --- a/pod-6/daily/index.xml +++ b/pod-6/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pod 6 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:47Z + 2024-08-22T01:33:05Z Daily Trending of Pod 6 in GitHub \ No newline at end of file diff --git a/pod/daily/index.xml b/pod/daily/index.xml index eea807f9093..8e260a9f2a4 100644 --- a/pod/daily/index.xml +++ b/pod/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pod Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:46Z + 2024-08-22T01:33:04Z Daily Trending of Pod in GitHub \ No newline at end of file diff --git a/pogoscript/daily/index.xml b/pogoscript/daily/index.xml index 82e57499d7b..b94098033b3 100644 --- a/pogoscript/daily/index.xml +++ b/pogoscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub PogoScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:47Z + 2024-08-22T01:33:05Z Daily Trending of PogoScript in GitHub \ No newline at end of file diff --git a/pony/daily/index.xml b/pony/daily/index.xml index 5d860d4e550..9dc66502e9d 100644 --- a/pony/daily/index.xml +++ b/pony/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pony Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:49Z + 2024-08-22T01:33:07Z Daily Trending of Pony in GitHub \ No newline at end of file diff --git a/postcss/daily/index.xml b/postcss/daily/index.xml index 53754d3ff34..a08254e62c5 100644 --- a/postcss/daily/index.xml +++ b/postcss/daily/index.xml @@ -1,7 +1,7 @@ GitHub PostCSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:48Z + 2024-08-22T01:33:06Z Daily Trending of PostCSS in GitHub \ No newline at end of file diff --git a/postscript/daily/index.xml b/postscript/daily/index.xml index 1954aa13ece..4d53289311b 100644 --- a/postscript/daily/index.xml +++ b/postscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub PostScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:50Z + 2024-08-22T01:33:08Z Daily Trending of PostScript in GitHub \ No newline at end of file diff --git a/pov-ray-sdl/daily/index.xml b/pov-ray-sdl/daily/index.xml index bd88fe54fb9..d2016aabf2b 100644 --- a/pov-ray-sdl/daily/index.xml +++ b/pov-ray-sdl/daily/index.xml @@ -1,7 +1,7 @@ GitHub POV-Ray SDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:49Z + 2024-08-22T01:33:07Z Daily Trending of POV-Ray SDL in GitHub \ No newline at end of file diff --git a/powerbuilder/daily/index.xml b/powerbuilder/daily/index.xml index 9d18099582d..b9364a95eda 100644 --- a/powerbuilder/daily/index.xml +++ b/powerbuilder/daily/index.xml @@ -1,7 +1,7 @@ GitHub PowerBuilder Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:50Z + 2024-08-22T01:33:07Z Daily Trending of PowerBuilder in GitHub \ No newline at end of file diff --git a/powershell/daily/index.xml b/powershell/daily/index.xml index 61b7bfbef5f..9c2f89b3dd5 100644 --- a/powershell/daily/index.xml +++ b/powershell/daily/index.xml @@ -1,14 +1,7 @@ GitHub PowerShell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:56Z + 2024-08-22T01:33:10Z Daily Trending of PowerShell in GitHub - - PwC-IR/Office-365-Extractor - 2024-08-21T01:32:56Z - tag:github.com,2024-08-21:/PwC-IR/Office-365-Extractor - - <p>The Office 365 Extractor is a tool that allows for complete and reliable extraction of the Unified Audit Log (UAL)</p><hr><h3>Office 365 Extractor</h3> This script makes it possible to extract log data out of an Office365 environment. The script created by us consist out of four main options, which enable the investigator to easily extract logging out of an Office365 environment. <ol> <li>Show available log sources and amount of logging</li> <li>Extract all audit logging</li> <li>Extract group audit logging</li> <li>Extract Specific audit logging (advanced mode)</li> </ol> <h3>Show available log sources and amount of logging</h3> Pretty straightforward a search is executed and the total number of logs within the <br> set timeframe will be displayed and written to a csv file called "Amount_Of_Audit_Logs.csv" the file is prefixed with a random number to prevent duplicates. <h3>Extract all audit logs</h3> Extract all audit logs" this option wil get all available audit logs within the set timeframe and written out to a file called AuditRecords.CSV. <h3>Extract group logging</h3> Extract a group of logs. You can for example extract all Exchange or Azure logging in one go <br> <h3>Extract specific audit logs</h3> Extract specific audit logs" Use this option if you want to extract a subset of the audit logs. To configure what logs will be extracted the tool needs to <br> be configured with the required Record Types. A full list of recordtypes can be found at the bottom of this page. <br> The output files will be writen in a directory called 'Log_Directory" and will be given the name of their recordtype e.g. (ExchangeItem_AuditRecords.csv) <br> <h3>Prerequisites</h3> -Exchange Online PowerShell V2 Module <br> -PowerShell <br> -Office365 account with privileges to access/extract audit logging <br> -One of the following windows versions: <br> Windows 10, Windows 8.1, Windows 8, or Windows 7 Service Pack 1 (SP1) <br> Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, or Windows Server 2008 R2 SP1 <br> <br> <p>You have to be assigned the View-Only Audit Logs or Audit Logs role in Exchange Online to search the Office 365 audit log. By default, these roles are assigned to the Compliance Management and Organization Management role groups on the Permissions page in the Exchange admin center. To give a user the ability to search the Office 365 audit log with the minimum level of privileges, you can create a custom role group in Exchange Online, add the View-Only Audit Logs or Audit Logs role, and then add the user as a member of the new role group. For more information, see Manage role groups in Exchange Online. <a href="https://docs.microsoft.com/en-us/office365/securitycompliance/search-the-audit-log-in-security-and-compliance">https://docs.microsoft.com/en-us/office365/securitycompliance/search-the-audit-log-in-security-and-compliance</a>)<br></p> <h3>Install Exchange Online Powershell V2 Module</h3> 1. Start Windows PowerShell with the “Run as administrator” option <br> 2. Install PowerShellGet Module. To install the ExchangeOnlineManagement module, you need PowerShellGet 2.0 or later version. Else, you end up with an error: Run: Install-Module PowerShellGet -Force <br> 3. Run the following cmdlet to install Exchange Online PowerShell V2 Module: Install-Module –Name ExchangeOnlineManagement <br> <h3>How to use the script</h3> 1. Download the Office365_Extractor.ps1 <br> 2. Right click on the script and press "Run with PowerShell". <br> 3. Now pick any of the options in the menu. <br> 4. The logs will be written to the logdirectory in the folder where the script is located. <br> <h3>Output</h3> <b>Amount_Of_Audit_Logs.csv:</b> <br> Will show what logs are available and how many for each RecordType. <br> <b>AuditLog.txt:</b> <br> The AuditLog stores valuable information for debugging. <br> <b>AuditRecords.csv:</b> <br> When all logs are extracted they will be written to this file. <br> <b>[RecordType]__AuditRecords:</b> <br> When extracting specific RecordTypes, logs are sorted on RecordType and written to a CSV file. <br> The name of this file is the RecordType + _AuditRecords. <br> <h3>Available RecordTypes</h3> ExchangeAdmin <br> ExchangeItem <br> ExchangeItemGroup <br> SharePoint <br> SyntheticProbe <br> SharePointFileOperation <br> OneDrive <br> AzureActiveDirectory <br> AzureActiveDirectoryAccountLogon <br> DataCenterSecurityCmdlet <br> ComplianceDLPSharePoint <br> Sway <br> ComplianceDLPExchange <br> SharePointSharingOperation <br> AzureActiveDirectoryStsLogon <br> SkypeForBusinessPSTNUsage <br> SkypeForBusinessUsersBlocked <br> SecurityComplianceCenterEOPCmdlet <br> ExchangeAggregatedOperation <br> PowerBIAudit <br> CRM <br> Yammer <br> SkypeForBusinessCmdlets <br> Discovery <br> MicrosoftTeams <br> ThreatIntelligence <br> MailSubmission <br> MicrosoftFlow <br> AeD <br> MicrosoftStream <br> ComplianceDLPSharePointClassification <br> ThreatFinder <br> Project <br> SharePointListOperation <br> SharePointCommentOperation <br> DataGovernance <br> Kaizala <br> SecurityComplianceAlerts <br> ThreatIntelligenceUrl <br> SecurityComplianceInsights <br> MIPLabel <br> WorkplaceAnalytics <br> PowerAppsApp <br> PowerAppsPlan <br> ThreatIntelligenceAtpContent <br> LabelExplorer <br> TeamsHealthcare <br> ExchangeItemAggregated <br> HygieneEvent <br> DataInsightsRestApiAudit <br> InformationBarrierPolicyApplication <br> SharePointListItemOperation <br> SharePointContentTypeOperation <br> SharePointFieldOperation <br> MicrosoftTeamsAdmin <br> HRSignal <br> MicrosoftTeamsDevice <br> MicrosoftTeamsAnalytics <br> InformationWorkerProtection <br> Campaign <br> DLPEndpoint <br> AirInvestigation <br> Quarantine <br> MicrosoftForms <br> LabelContentExplorer <br> ApplicationAudit <br> ComplianceSupervisionExchange <br> CustomerKeyServiceEncryption <br> OfficeNative <br> MipAutoLabelSharePointItem <br> MipAutoLabelSharePointPolicyLocation <br> MicrosoftTeamsShifts <br> MipAutoLabelExchangeItem <br> CortanaBriefing <br> Search <br> WDATPAlerts <br> MDATPAudit <br> <h3>Frequently Asked Questions</h3> <b>If I enable mailbox auditing now can I see historical records?</b> <br> No, additionaly if you enable auditing now it will take up to 24 hours before events will be logged. <br> <p><b>I logged into a mailbox with auditing turned on but I don't see my events?</b><br> It can take up to 24 hours before an event is stored in the UAL.</p> <br> <p><b>Which date format does the script accepts as input?</b><br> The script will tell what the correct date format is. For Start and End data variables it will show between brackets what the format is (yyyy-MM-dd).<br> <br></p> <p><b>Do I need to configure the time period?</b><br> No if you don't specify a time period the script will use the default If you don't include a timestamp in the value for the StartDate or EndDate parameters, the default timestamp 12:00 AM (midnight) is used.<br> <br></p> <p><b>What about timestamps?</b><br> The audit logs are in UTC, and they will be exported as such<br> <br></p> <p><b>What is the retention period?</b><br> Office 365 E3 - Audit records are retained for 90 days. That means you can search the audit log for activities that were performed within the last 90 days.</p> <p>Office 365 E5 - Audit records are retained for 365 days (one year). That means you can search the audit log for activities that were performed within the last year. Retaining audit records for one year is also available for users that are assigned an E3/Exchange Online Plan 1 license and have an Office 365 Advanced Compliance add-on license. <br></p> <p><b>Can this script also acquire Message Trace Logs?</b><br> At the moment it cannot, but there are several open-source scripts available that can help you with getting the MTL One example can be found here: <a href="https://gallery.technet.microsoft.com/scriptcenter/Export-Mail-logs-to-CSV-d5b6c2d6">https://gallery.technet.microsoft.com/scriptcenter/Export-Mail-logs-to-CSV-d5b6c2d6</a> <br></p> <h3>Known errors</h3> <b>Import-PSSession : No command proxies have been created, because all of the requested remote....</b> <br> This error is caused when the script did not close correctly and an active session will be running in the background. The script tries to import/load all modules again, but this is not necessary since it is already loaded. This error message has no impact on the script and will be gone when the open session gets closed. This can be done by restarting the PowerShell Windows or entering the following command: Get-PSSession | Remove-PSSession <br> <p><b>Audit logging is enabled in the Office 365 environment but no logs are getting displayed?</b><br> The user must be assigned an Office 365 E5 license. Alternatively, users with an Office 365 E1 or E3 license can be assigned an Advanced eDiscovery standalone license. Administrators and compliance officers who are assigned to cases and use Advanced eDiscovery to analyze data don't need an E5 license.<br></p> <p><b>Audit log search argument start date should be after</b><br> The start date should be earlier then the end date.</p> <p><b>New-PSSession: [outlook.office365.com] Connecting to remove server outlook.office365.com failed with the following error message: Access is denied.</b><br> The password/username combination are incorrect or the user has not enough privileges to extract the audit logging.<br> <br> <br> Custom script was developed by Joey Rentenaar and Korstiaan Stam from PwC Netherlands Incident Response team. <br> Idea is based on a script developed by Tehnoon Raza from Microsoft:<br> (<a href="https://blogs.msdn.microsoft.com/tehnoonr/2018/01/26/retrieving-office-365-audit-data-using-powershell/">https://blogs.msdn.microsoft.com/tehnoonr/2018/01/26/retrieving-office-365-audit-data-using-powershell/</a>).</p> - \ No newline at end of file diff --git a/prisma/daily/index.xml b/prisma/daily/index.xml index ad831b0c277..a1aee1db5c4 100644 --- a/prisma/daily/index.xml +++ b/prisma/daily/index.xml @@ -1,7 +1,7 @@ GitHub Prisma Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:59Z + 2024-08-22T01:33:12Z Daily Trending of Prisma in GitHub \ No newline at end of file diff --git a/processing/daily/index.xml b/processing/daily/index.xml index 7da04843b7a..ae82aefa1bb 100644 --- a/processing/daily/index.xml +++ b/processing/daily/index.xml @@ -1,7 +1,7 @@ GitHub Processing Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:59Z + 2024-08-22T01:33:13Z Daily Trending of Processing in GitHub \ No newline at end of file diff --git a/procfile/daily/index.xml b/procfile/daily/index.xml index e86ef53eeef..21ea97d77ce 100644 --- a/procfile/daily/index.xml +++ b/procfile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Procfile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:32:58Z + 2024-08-22T01:33:13Z Daily Trending of Procfile in GitHub \ No newline at end of file diff --git a/proguard/daily/index.xml b/proguard/daily/index.xml index fae882963ae..973f18ca105 100644 --- a/proguard/daily/index.xml +++ b/proguard/daily/index.xml @@ -1,7 +1,7 @@ GitHub Proguard Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:00Z + 2024-08-22T01:33:14Z Daily Trending of Proguard in GitHub \ No newline at end of file diff --git a/prolog/daily/index.xml b/prolog/daily/index.xml index 9db14ed442d..0f747c8677b 100644 --- a/prolog/daily/index.xml +++ b/prolog/daily/index.xml @@ -1,7 +1,7 @@ GitHub Prolog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:01Z + 2024-08-22T01:33:15Z Daily Trending of Prolog in GitHub \ No newline at end of file diff --git a/promela/daily/index.xml b/promela/daily/index.xml index a6becb51ee0..22ce26da1d3 100644 --- a/promela/daily/index.xml +++ b/promela/daily/index.xml @@ -1,7 +1,7 @@ GitHub Promela Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:00Z + 2024-08-22T01:33:15Z Daily Trending of Promela in GitHub \ No newline at end of file diff --git a/propeller-spin/daily/index.xml b/propeller-spin/daily/index.xml index 34a2bf883ee..c3041e3819a 100644 --- a/propeller-spin/daily/index.xml +++ b/propeller-spin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Propeller Spin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:01Z + 2024-08-22T01:33:14Z Daily Trending of Propeller Spin in GitHub \ No newline at end of file diff --git a/protocol-buffer-text-format/daily/index.xml b/protocol-buffer-text-format/daily/index.xml index bebf5dfe4f0..5c870626ba3 100644 --- a/protocol-buffer-text-format/daily/index.xml +++ b/protocol-buffer-text-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Protocol Buffer Text Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:02Z + 2024-08-22T01:33:16Z Daily Trending of Protocol Buffer Text Format in GitHub \ No newline at end of file diff --git a/protocol-buffer/daily/index.xml b/protocol-buffer/daily/index.xml index 9d09386476a..d098730d80a 100644 --- a/protocol-buffer/daily/index.xml +++ b/protocol-buffer/daily/index.xml @@ -1,7 +1,7 @@ GitHub Protocol Buffer Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:02Z + 2024-08-22T01:33:16Z Daily Trending of Protocol Buffer in GitHub \ No newline at end of file diff --git a/public-key/daily/index.xml b/public-key/daily/index.xml index 059b84d78d8..cd15e74d839 100644 --- a/public-key/daily/index.xml +++ b/public-key/daily/index.xml @@ -1,7 +1,7 @@ GitHub Public Key Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:02Z + 2024-08-22T01:33:15Z Daily Trending of Public Key in GitHub \ No newline at end of file diff --git a/pug/daily/index.xml b/pug/daily/index.xml index d5ac6c63f1a..8ba6c03f932 100644 --- a/pug/daily/index.xml +++ b/pug/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pug Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:03Z + 2024-08-22T01:33:16Z Daily Trending of Pug in GitHub \ No newline at end of file diff --git a/puppet/daily/index.xml b/puppet/daily/index.xml index e145e44ce39..92c0dce5d52 100644 --- a/puppet/daily/index.xml +++ b/puppet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Puppet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:03Z + 2024-08-22T01:33:18Z Daily Trending of Puppet in GitHub \ No newline at end of file diff --git a/pure-data/daily/index.xml b/pure-data/daily/index.xml index b70d3119aa7..e51358a1edd 100644 --- a/pure-data/daily/index.xml +++ b/pure-data/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pure Data Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:04Z + 2024-08-22T01:33:17Z Daily Trending of Pure Data in GitHub \ No newline at end of file diff --git a/purebasic/daily/index.xml b/purebasic/daily/index.xml index 4a1722dde45..5b58c196117 100644 --- a/purebasic/daily/index.xml +++ b/purebasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub PureBasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:04Z + 2024-08-22T01:33:17Z Daily Trending of PureBasic in GitHub \ No newline at end of file diff --git a/purescript/daily/index.xml b/purescript/daily/index.xml index e99c2e146a4..ef0909f7409 100644 --- a/purescript/daily/index.xml +++ b/purescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub PureScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:04Z + 2024-08-22T01:33:18Z Daily Trending of PureScript in GitHub \ No newline at end of file diff --git a/python-console/daily/index.xml b/python-console/daily/index.xml index f560940665c..149eea2a12d 100644 --- a/python-console/daily/index.xml +++ b/python-console/daily/index.xml @@ -1,7 +1,7 @@ GitHub Python console Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:05Z + 2024-08-22T01:33:19Z Daily Trending of Python console in GitHub \ No newline at end of file diff --git a/python-traceback/daily/index.xml b/python-traceback/daily/index.xml index 0153a651a47..d0dfc605f33 100644 --- a/python-traceback/daily/index.xml +++ b/python-traceback/daily/index.xml @@ -1,7 +1,7 @@ GitHub Python traceback Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:06Z + 2024-08-22T01:33:19Z Daily Trending of Python traceback in GitHub \ No newline at end of file diff --git a/python/daily/index.xml b/python/daily/index.xml index 2c419a9f629..444a12eb70b 100644 --- a/python/daily/index.xml +++ b/python/daily/index.xml @@ -1,21 +1,28 @@ GitHub Python Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:07Z + 2024-08-22T01:33:20Z Daily Trending of Python in GitHub - thuml/Time-Series-Library - 2024-08-21T01:33:07Z - tag:github.com,2024-08-21:/thuml/Time-Series-Library - - <p>A Library for Advanced Deep Time Series Models.</p><hr><h1>Time Series Library (TSLib)</h1> <p>TSLib is an open-source library for deep learning researchers, especially for deep time series analysis.</p> <p>We provide a neat code base to evaluate advanced deep time series models or develop your model, which covers five mainstream tasks: <strong>long- and short-term forecasting, imputation, anomaly detection, and classification.</strong></p> <p><span>🚩</span><strong>News</strong> (2024.07) We wrote a comprehensive survey of <a href="https://arxiv.org/abs/2407.13278">[Deep Time Series Models]</a> with a rigorous benchmark based on TSLib. In this paper, we summarized the design principles of current time series models supported by insightful experiments, hoping to be helpful to future research.</p> <p><span>🚩</span><strong>News</strong> (2024.04) Many thanks for the great work from <a href="https://github.com/thuml/Time-Series-Library/pull/378">frecklebars</a>. The famous sequenctial model <a href="https://arxiv.org/abs/2312.00752">Mamba</a> has been included in our library. See <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Mamba.py">this file</a>, where you need to install <code>mamba_ssm</code> with pip at first.</p> <p><span>🚩</span><strong>News</strong> (2024.03) Given the inconsistent look-back length of various papers, we split the long-term forecasting in the leaderboard into two categories: Look-Back-96 and Look-Back-Searching. We recommend researchers read <a href="https://openreview.net/pdf?id=7oLshfEIC2">TimeMixer</a>, which includes both look-back length settings in experiments for scientific rigor.</p> <p><span>🚩</span><strong>News</strong> (2023.10) We add an implementation to <a href="https://arxiv.org/abs/2310.06625">iTransformer</a>, which is the state-of-the-art model for long-term forecasting. The official code and complete scripts of iTransformer can be found <a href="https://github.com/thuml/iTransformer">here</a>.</p> <p><span>🚩</span><strong>News</strong> (2023.09) We added a detailed <a href="https://github.com/thuml/Time-Series-Library/raw/main/tutorial/TimesNet_tutorial.ipynb">tutorial</a> for <a href="https://openreview.net/pdf?id=ju_Uqw384Oq">TimesNet</a> and this library, which is quite friendly to beginners of deep time series analysis.</p> <p><span>🚩</span><strong>News</strong> (2023.02) We release the TSlib as a comprehensive benchmark and code base for time series models, which is extended from our previous GitHub repository <a href="https://github.com/thuml/Autoformer">Autoformer</a>.</p> <h2>Leaderboard for Time Series Analysis</h2> <p>Till March 2024, the top three models for five different tasks are:</p> <table> <thead> <tr> <th>Model<br>Ranking</th> <th>Long-term<br>Forecasting<br>Look-Back-96</th> <th>Long-term<br>Forecasting<br>Look-Back-Searching</th> <th>Short-term<br>Forecasting</th> <th>Imputation</th> <th>Classification</th> <th>Anomaly<br>Detection</th> </tr> </thead> <tbody> <tr> <td>🥇 1st</td> <td><a href="https://arxiv.org/abs/2310.06625">iTransformer</a></td> <td><a href="https://openreview.net/pdf?id=7oLshfEIC2">TimeMixer</a></td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> </tr> <tr> <td>🥈 2nd</td> <td><a href="https://openreview.net/pdf?id=7oLshfEIC2">TimeMixer</a></td> <td><a href="https://github.com/yuqinie98/PatchTST">PatchTST</a></td> <td><a href="https://github.com/thuml/Nonstationary_Transformers">Non-stationary<br>Transformer</a></td> <td><a href="https://github.com/thuml/Nonstationary_Transformers">Non-stationary<br>Transformer</a></td> <td><a href="https://github.com/thuml/Nonstationary_Transformers">Non-stationary<br>Transformer</a></td> <td><a href="https://github.com/MAZiqing/FEDformer">FEDformer</a></td> </tr> <tr> <td>🥉 3rd</td> <td><a href="https://arxiv.org/abs/2210.02186">TimesNet</a></td> <td><a href="https://arxiv.org/pdf/2205.13504.pdf">DLinear</a></td> <td><a href="https://github.com/MAZiqing/FEDformer">FEDformer</a></td> <td><a href="https://github.com/thuml/Autoformer">Autoformer</a></td> <td><a href="https://github.com/zhouhaoyi/Informer2020">Informer</a></td> <td><a href="https://github.com/thuml/Autoformer">Autoformer</a></td> </tr> </tbody> </table> <p><strong>Note: We will keep updating this leaderboard.</strong> If you have proposed advanced and awesome models, you can send us your paper/code link or raise a pull request. We will add them to this repo and update the leaderboard as soon as possible.</p> <p><strong>Compared models of this leaderboard.</strong> ☑ means that their codes have already been included in this repo.</p> <ul> <li><input type="checkbox" checked disabled> <strong>TimeMixer</strong> - TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting <a href="https://openreview.net/pdf?id=7oLshfEIC2">[ICLR 2024]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TimeMixer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>TSMixer</strong> - TSMixer: An All-MLP Architecture for Time Series Forecasting <a href="https://arxiv.org/pdf/2303.06053.pdf">[arXiv 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TSMixer.py">[Code]</a></li> <li><input type="checkbox" checked disabled> <strong>iTransformer</strong> - iTransformer: Inverted Transformers Are Effective for Time Series Forecasting <a href="https://arxiv.org/abs/2310.06625">[ICLR 2024]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/iTransformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>PatchTST</strong> - A Time Series is Worth 64 Words: Long-term Forecasting with Transformers <a href="https://openreview.net/pdf?id=Jbdc0vTOcol">[ICLR 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/PatchTST.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>TimesNet</strong> - TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis <a href="https://openreview.net/pdf?id=ju_Uqw384Oq">[ICLR 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TimesNet.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>DLinear</strong> - Are Transformers Effective for Time Series Forecasting? <a href="https://arxiv.org/pdf/2205.13504.pdf">[AAAI 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/DLinear.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>LightTS</strong> - Less Is More: Fast Multivariate Time Series Forecasting with Light Sampling-oriented MLP Structures <a href="https://arxiv.org/abs/2207.01186">[arXiv 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/LightTS.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>ETSformer</strong> - ETSformer: Exponential Smoothing Transformers for Time-series Forecasting <a href="https://arxiv.org/abs/2202.01381">[arXiv 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/ETSformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Non-stationary Transformer</strong> - Non-stationary Transformers: Exploring the Stationarity in Time Series Forecasting <a href="https://openreview.net/pdf?id=ucNDIDRNjjv">[NeurIPS 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Nonstationary_Transformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>FEDformer</strong> - FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting <a href="https://proceedings.mlr.press/v162/zhou22g.html">[ICML 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/FEDformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Pyraformer</strong> - Pyraformer: Low-complexity Pyramidal Attention for Long-range Time Series Modeling and Forecasting <a href="https://openreview.net/pdf?id=0EXmFzUn5I">[ICLR 2022]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Pyraformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Autoformer</strong> - Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting <a href="https://openreview.net/pdf?id=I55UqU-M11y">[NeurIPS 2021]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Autoformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Informer</strong> - Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting <a href="https://ojs.aaai.org/index.php/AAAI/article/view/17325/17132">[AAAI 2021]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Informer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Reformer</strong> - Reformer: The Efficient Transformer <a href="https://openreview.net/forum?id=rkgNKkHtvB">[ICLR 2020]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Reformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Transformer</strong> - Attention is All You Need <a href="https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf">[NeurIPS 2017]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Transformer.py">[Code]</a>.</li> </ul> <p>See our latest paper <a href="https://arxiv.org/abs/2210.02186">[TimesNet]</a> for the comprehensive benchmark. We will release a real-time updated online version soon.</p> <p><strong>Newly added baselines.</strong> We will add them to the leaderboard after a comprehensive evaluation.</p> <ul> <li><input type="checkbox" checked disabled> <strong>Mamba</strong> - Mamba: Linear-Time Sequence Modeling with Selective State Spaces <a href="https://arxiv.org/abs/2312.00752">[arXiv 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Mamba.py">[Code]</a></li> <li><input type="checkbox" checked disabled> <strong>SegRNN</strong> - SegRNN: Segment Recurrent Neural Network for Long-Term Time Series Forecasting <a href="https://arxiv.org/abs/2308.11200.pdf">[arXiv 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/SegRNN.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Koopa</strong> - Koopa: Learning Non-stationary Time Series Dynamics with Koopman Predictors <a href="https://arxiv.org/pdf/2305.18803.pdf">[NeurIPS 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Koopa.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>FreTS</strong> - Frequency-domain MLPs are More Effective Learners in Time Series Forecasting <a href="https://arxiv.org/pdf/2311.06184.pdf">[NeurIPS 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/FreTS.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>TiDE</strong> - Long-term Forecasting with TiDE: Time-series Dense Encoder <a href="https://arxiv.org/pdf/2304.08424.pdf">[arXiv 2023]</a> <a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TiDE.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>FiLM</strong> - FiLM: Frequency improved Legendre Memory Model for Long-term Time Series Forecasting <a href="https://openreview.net/forum?id=zTQdHSQUQWc">[NeurIPS 2022]</a><a href="https://github.com/thuml/Time-Series-Library/raw/main/models/FiLM.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>MICN</strong> - MICN: Multi-scale Local and Global Context Modeling for Long-term Series Forecasting <a href="https://openreview.net/pdf?id=zt53IDUR1U">[ICLR 2023]</a><a href="https://github.com/thuml/Time-Series-Library/raw/main/models/MICN.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>Crossformer</strong> - Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series Forecasting <a href="https://openreview.net/pdf?id=vSVLM2j9eie">[ICLR 2023]</a><a href="https://github.com/thuml/Time-Series-Library/raw/main/models/Crossformer.py">[Code]</a>.</li> <li><input type="checkbox" checked disabled> <strong>TFT</strong> - Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting <a href="https://arxiv.org/abs/1912.09363">[arXiv 2019]</a><a href="https://github.com/thuml/Time-Series-Library/raw/main/models/TemporalFusionTransformer.py">[Code]</a>.</li> </ul> <h2>Usage</h2> <ol> <li>Install Python 3.8. For convenience, execute the following command.</li> </ol> <pre><code>pip install -r requirements.txt </code></pre> <ol start="2"> <li>Prepare Data. You can obtain the well pre-processed datasets from <a href="https://drive.google.com/drive/folders/13Cg1KYOlzM5C7K8gK8NfC-F3EYxkM3D2?usp=sharing">[Google Drive]</a> or&nbsp;<a href="https://pan.baidu.com/s/1r3KhGd0Q9PJIUZdfEYoymg?pwd=i9iy">[Baidu Drive]</a>, Then place the downloaded data in the folder<code>./dataset</code>. Here is a summary of supported datasets.</li> </ol> <p align="center"> <img src="https://raw.githubusercontent.com/thuml/Time-Series-Library/main/.%5Cpic%5Cdataset.png" height="200" alt="" align="center"> </p> <ol start="3"> <li>Train and evaluate model. We provide the experiment scripts for all benchmarks under the folder <code>./scripts/</code>. You can reproduce the experiment results as the following examples:</li> </ol> <pre><code># long-term forecast bash ./scripts/long_term_forecast/ETT_script/TimesNet_ETTh1.sh # short-term forecast bash ./scripts/short_term_forecast/TimesNet_M4.sh # imputation bash ./scripts/imputation/ETT_script/TimesNet_ETTh1.sh # anomaly detection bash ./scripts/anomaly_detection/PSM/TimesNet.sh # classification bash ./scripts/classification/TimesNet.sh </code></pre> <ol start="4"> <li>Develop your own model.</li> </ol> <ul> <li>Add the model file to the folder <code>./models</code>. You can follow the <code>./models/Transformer.py</code>.</li> <li>Include the newly added model in the <code>Exp_Basic.model_dict</code> of <code>./exp/exp_basic.py</code>.</li> <li>Create the corresponding scripts under the folder <code>./scripts</code>.</li> </ul> <p>Note: The original code for the classification task can be found <a href="https://github.com/thuml/Flowformer/tree/main/Flowformer_TimeSeries">here</a>. It is hard to fuse all five tasks in one library. We are still working on this task.</p> <h2>Citation</h2> <p>If you find this repo useful, please cite our paper.</p> <pre><code>@inproceedings{wu2023timesnet, title={TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis}, author={Haixu Wu and Tengge Hu and Yong Liu and Hang Zhou and Jianmin Wang and Mingsheng Long}, booktitle={International Conference on Learning Representations}, year={2023}, } @article{wang2024tssurvey, title={Deep Time Series Models: A Comprehensive Survey and Benchmark}, author={Yuxuan Wang and Haixu Wu and Jiaxiang Dong and Yong Liu and Mingsheng Long and Jianmin Wang}, booktitle={arXiv preprint arXiv:2407.13278}, year={2024}, } </code></pre> <h2>Contact</h2> <p>If you have any questions or suggestions, feel free to contact our maintenance team:</p> <p>Current:</p> <ul> <li>Haixu Wu (Ph.D. student, <a href="mailto:wuhx23@mails.tsinghua.edu.cn">wuhx23@mails.tsinghua.edu.cn</a>)</li> <li>Yong Liu (Ph.D. student, <a href="mailto:liuyong21@mails.tsinghua.edu.cn">liuyong21@mails.tsinghua.edu.cn</a>)</li> <li>Yuxuan Wang (Ph.D. student, <a href="mailto:wangyuxu22@mails.tsinghua.edu.cn">wangyuxu22@mails.tsinghua.edu.cn</a>)</li> <li>Huikun Weng (Undergraduate, <a href="mailto:wenghk22@mails.tsinghua.edu.cn">wenghk22@mails.tsinghua.edu.cn</a>)</li> </ul> <p>Previous:</p> <ul> <li>Tengge Hu (Master student, <a href="mailto:htg21@mails.tsinghua.edu.cn">htg21@mails.tsinghua.edu.cn</a>)</li> <li>Haoran Zhang (Master student, <a href="mailto:z-hr20@mails.tsinghua.edu.cn">z-hr20@mails.tsinghua.edu.cn</a>)</li> <li>Jiawei Guo (Undergraduate, <a href="mailto:guo-jw21@mails.tsinghua.edu.cn">guo-jw21@mails.tsinghua.edu.cn</a>)</li> </ul> <p>Or describe it in Issues.</p> <h2>Acknowledgement</h2> <p>This project is supported by the National Key R&amp;D Program of China (2021YFB1715200).</p> <p>This library is constructed based on the following repos:</p> <ul> <li> <p>Forecasting: <a href="https://github.com/thuml/Autoformer">https://github.com/thuml/Autoformer</a>.</p> </li> <li> <p>Anomaly Detection: <a href="https://github.com/thuml/Anomaly-Transformer">https://github.com/thuml/Anomaly-Transformer</a>.</p> </li> <li> <p>Classification: <a href="https://github.com/thuml/Flowformer">https://github.com/thuml/Flowformer</a>.</p> </li> </ul> <p>All the experiment datasets are public, and we obtain them from the following links:</p> <ul> <li> <p>Long-term Forecasting and Imputation: <a href="https://github.com/thuml/Autoformer">https://github.com/thuml/Autoformer</a>.</p> </li> <li> <p>Short-term Forecasting: <a href="https://github.com/ServiceNow/N-BEATS">https://github.com/ServiceNow/N-BEATS</a>.</p> </li> <li> <p>Anomaly Detection: <a href="https://github.com/thuml/Anomaly-Transformer">https://github.com/thuml/Anomaly-Transformer</a>.</p> </li> <li> <p>Classification: <a href="https://www.timeseriesclassification.com/">https://www.timeseriesclassification.com/</a>.</p> </li> </ul> <h2>All Thanks To Our Contributors</h2> <a href="https://github.com/thuml/Time-Series-Library/graphs/contributors"> <img src="https://contrib.rocks/image?repo=thuml/Time-Series-Library"> </a> + asavinov/intelligent-trading-bot + 2024-08-22T01:33:20Z + tag:github.com,2024-08-22:/asavinov/intelligent-trading-bot + + <p>Intelligent Trading Bot: Automatically generating signals and trading based on machine learning and feature engineering</p><hr><pre><code> ___ _ _ _ _ _ _____ _ _ ____ _ |_ _|_ __ | |_ ___| | (_) __ _ ___ _ __ | |_ |_ _| __ __ _ __| (_)_ __ __ _ | __ ) ___ | |_ | || '_ \| __/ _ \ | | |/ _` |/ _ \ '_ \| __| | || '__/ _` |/ _` | | '_ \ / _` | | _ \ / _ \| __| | || | | | || __/ | | | (_| | __/ | | | |_ | || | | (_| | (_| | | | | | (_| | | |_) | (_) | |_ |___|_| |_|\__\___|_|_|_|\__, |\___|_| |_|\__| |_||_| \__,_|\__,_|_|_| |_|\__, | |____/ \___/ \__| |___/ |___/ ₿ Ξ ₳ ₮ ✕ ◎ ● Ð Ł Ƀ Ⱥ ∞ ξ ◈ ꜩ ɱ ε ɨ Ɓ Μ Đ ⓩ Ο Ӿ Ɍ ȿ </code></pre> <blockquote> <p><a href="https://t.me/intelligent_trading_signals"><img src="https://img.shields.io/badge/Telegram-2CA5E0?logo=telegram&amp;style=for-the-badge&amp;logoColor=white" alt="https://t.me/intelligent_trading_signals"></a> 📈 <strong><span style="font-size:1.5em;"><a href="https://t.me/intelligent_trading_signals">Intelligent Trading Signals</a></span></strong> 📉 <strong><a href="https://t.me/intelligent_trading_signals">https://t.me/intelligent_trading_signals</a></strong></p> </blockquote> <h1>Intelligent trading bot</h1> <p>The project is aimed at developing an intelligent trading bot for automated trading cryptocurrencies using state-of-the-art machine learning (ML) algorithms and feature engineering. The project provides the following major functionalities:</p> <ul> <li>Defining derived features using custom (Python) functions including technical indicators</li> <li>Analyzing historic data and training machine learning models in batch off-line mode</li> <li>Analyzing the predicted scores and choosing best signal parameters</li> <li>Signaling service which is regularly requests new data from the exchange and generates buy-sell signals by applying the previously trained models in on-line mode</li> <li>Trading service which does real trading by buying or selling the assets according to the generated signals</li> </ul> <h1>Intelligent trading channel</h1> <p>The signaling service is running in cloud and sends its signals to this Telegram channel:</p> <p>📈 <strong><a href="https://t.me/intelligent_trading_signals">Intelligent Trading Signals</a></strong> 📉 <strong><a href="https://t.me/intelligent_trading_signals">https://t.me/intelligent_trading_signals</a></strong></p> <p>Everybody can subscribe to the channel to get the impression about the signals this bot generates.</p> <p>Currently, the bot is configured using the following parameters:</p> <ul> <li>Exchange: Binance</li> <li>Cryptocurrency: ₿ Bitcoin</li> <li>Analysis frequency: 1 minute (currently the only option)</li> <li>Score between -1 and +1. &lt;0 means likely to decrease, and &gt;0 means likely to increase</li> <li>Filter: notifications are sent only if score is greater than ±0.20 (may change)</li> <li>One increase/decrease sign is added for each step of 0.05 (exceeding the filter threshold)</li> </ul> <p>There are silent periods when the score in lower than the threshold and no notifications are sent to the channel. If the score is greater than the threshold, then every minute a notification is sent which looks like</p> <blockquote> <p>₿ 24.518 📉📉📉 Score: -0.26</p> </blockquote> <p>The first number is the latest close price. The score -0.26 means that it is very likely to see the price lower than the current close price.</p> <p>If the score exceeds some threshold specified in the model then buy or sell signal is generated which means that it is a good time to do a trade. Such notifications look as follows:</p> <blockquote> <p>🟢 BUY: ₿ 24,033 Score: +0.34</p> </blockquote> <h1>Training machine learning models (offline)</h1> <p><img src="https://raw.githubusercontent.com/asavinov/intelligent-trading-bot/master/docs/images/fig_1.png" alt="Batch data processing pipeline"></p> <p>For the signaler service to work, a number of ML models must be trained and the model files available for the service. All scripts run in batch mode by loading some input data and storing some output files. The batch scripts are located in the <code>scripts</code> module.</p> <p>If everything is configured then the following scripts have to be executed:</p> <ul> <li><code>python -m scripts.download_binance -c config.json</code></li> <li><code>python -m scripts.merge -c config.json</code></li> <li><code>python -m scripts.features -c config.json</code></li> <li><code>python -m scripts.labels -c config.json</code></li> <li><code>python -m scripts.train -c config.json</code></li> <li><code>python -m scripts.signals -c config.json</code></li> <li><code>python -m scripts.train_signals -c config.json</code></li> </ul> <p>Without a configuration file the scripts will use the default parameters which is useful for testing purposes and not intended for showing good performance. Use sample configuration files which are provided for each release like <code>config-sample-v0.6.0.jsonc</code>.</p> <h2>Downloading and merging source data</h2> <p>The main configuration parameter for the both scripts is a list of sources in <code>data_sources</code>. One entry in this list specifies a data source as well as <code>column_prefix</code> used to distinguish columns with the same name from different sources.</p> <ul> <li> <p>Download the latest historic data: <code>python -m scripts.download_binance -c config.json</code></p> <ul> <li>It uses Binance API but you can use any other data source or download data manually using other scripts</li> </ul> </li> <li> <p>Merge several historic datasets into one dataset: <code>python -m scripts.merge -c config.json</code></p> <ul> <li>This script solves two problems: 1) there could be other sources like depth data or futures 2) a data source may have gaps so we need to produce a regular time raster in the output file</li> </ul> </li> </ul> <h2>Generate features</h2> <p>This script is intended for computing derived features:</p> <ul> <li>Script: <code>python -m scripts.features -c config.json</code></li> <li>Currently it runs in non-incremental model by computing features for <em>all</em> available input records (and not only for the latest update), and hence it may take hours for complex configurations</li> <li>The script loads merged input data, applies feature generation procedures and stores all derived features in an output file</li> <li>Not all generated features will be used for training and prediction. For the train/predict phases, a separate list of features is specified</li> <li>Feature functions get additional parameters like windows from the config section</li> <li>The same features must be used for on-line feature generation (in the service when they are generated for a micro-batch) and off-line feature generation.</li> </ul> <p>The list of features to be generated is configured via <code>feature_sets</code> list in the configuration file. How features are generated is defined by the <em>feature generator</em> each having some parameters specified in its config section.</p> <ul> <li><code>talib</code> feature generator relies on the TA-lib technical analysis library. Here an example of its configuration: <code>"config": {"columns": ["close"], "functions": ["SMA"], "windows": [5, 10, 15]}</code></li> <li><code>itbstats</code> feature generator implements functions which can be found in tsfresh like <code>scipy_skew</code>, <code>scipy_kurtosis</code>, <code>lsbm</code> (longest strike below mean), <code>fmax</code> (first location of maximum), <code>mean</code>, <code>std</code>, <code>area</code>, <code>slope</code>. Here are typical parameters: <code>"config": {"columns": ["close"], "functions": ["skew", "fmax"], "windows": [5, 10, 15]}</code></li> <li><code>itblib</code> feature generator implemented in ITB but most of its features can be generated (much faster) via talib</li> <li><code>tsfresh</code> generates functions from the tsfresh library</li> </ul> <h2>Generate labels</h2> <p>This script is similar to feature generation because it adds new columns to the input file. However, these columns describe something that we want to predict and what is not known when executing in online mode. For example, it could be price increase in future:</p> <ul> <li>Script: <code>python -m scripts.labels -c config.json</code></li> <li>The script loads features, computes label columns and stores the result in output file</li> <li>Not all generated labels have to be used. The labels to be used for training are specified in a separate list</li> </ul> <p>The list of labels to be generated is configured via <code>label_sets</code> list in the configuration. One label set points to the function which generates additional columns. Their configuration is very similar to feature configurations.</p> <ul> <li><code>highlow</code> label generator returns True if the price is higher than the specified threshold within some future horizon</li> <li><code>highlow2</code> Computes future increases (decreases) with the conditions that there are no significant decreases (increases) before that. Here is its typical configuration: <code>"config": {"columns": ["close", "high", "low"], "function": "high", "thresholds": [1.0, 1.5, 2.0], "tolerance": 0.2, "horizon": 10080, "names": ["first_high_10", "first_high_15", "first_high_20"]}</code></li> <li><code>topbot</code> Deprecated</li> <li><code>topbot2</code> Computes maximum and minimum values (labeled as True). Every labelled maximum (minimum) is guaranteed to be surrounded by minimums (maximums) lower (higher) than the specified level. The required minimum difference between adjacent minimums and maximums is specified via <code>level</code> parameters. The tolerance parameter allows for including also points close to the maximum/minimum. Here is a typical configuration: <code>"config": {"columns": "close", "function": "bot", "level": 0.02, "tolerances": [0.1, 0.2], "names": ["bot2_1", "bot2_2"]}</code></li> </ul> <h2>Train prediction models</h2> <p>This script uses the specified input features and labels to train several ML models:</p> <ul> <li>Script: <code>python -m scripts.train -c config.json</code></li> <li>Hyper-parameter tuning is not part of this procedure - they are supposed to be known</li> <li>The algorithm descriptions and hyper-parameters are specified in the model store</li> <li>The results are stored as multiple model files in the model folder. File names are equal to the predicted column names and have this pattern: (label_name, algorithm_name)</li> <li>This script trains models for all specified labels and all specified algorithms</li> <li>The script also generates <code>prediction-metrics.txt</code> file with the prediction scores for all models</li> </ul> <p>Configuration:</p> <ul> <li>Models and hyper-parameters are described in <code>model_store.py</code></li> <li>Features to be used for training are specified in <code>train_features</code></li> <li>List of labels is specified in <code>labels</code></li> <li>List of algorithms is specified in <code>algorithms</code></li> </ul> <h2>Aggregation and post-processing</h2> <p>The goal of this step is to aggregate the prediction scores generated by different algorithms for different labels. The result is one score which is supposed to be consumed by the signal rules on the next step. The aggregation parameters are specified in the <code>score_aggregation</code> section. The <code>buy_labels</code> and <code>sell_labels</code> specify input prediction scores processed by the aggregation procedure. <code>window</code> is the number of previous steps used for rolling aggregation and <code>combine</code> is a way how two score types (buy and labels) are combined into one output score.</p> <h2>Signal generation</h2> <p>The score generated by the aggregation procedure is some number and the goal of signal rules is to make the trading decisions: buy, sell or do nothing. The parameters of the signal rules are described in the <code>trade_model</code>.</p> <h2>Train signal models</h2> <p>This script simulates trades using many buy-sell signal parameters and then chooses the best performing signal parameters:</p> <ul> <li>Script: <code>python -m scripts.train_signals -c config.json</code></li> </ul> <h1>Prediction online based on trained models (service)</h1> <p>This script starts a service which periodically executes one and the same task: load latest data, generate features, make predictions, generate signals, notify subscribers:</p> <ul> <li>Start script: <code>python -m service.server -c config.json</code></li> <li>The service assumes that the models were trained using the features specified in the configuration</li> <li>The service uses credentials to access the exchange which are specified in the configuration</li> </ul> <h1>Hyper-parameter tuning</h1> <p>There are two problems:</p> <ul> <li>How to choose best hyper-parameters for ML models. This problem is solved in the classical way, e.g., by grid search. For example, for Gradient Boosting, we train the model on the same data using different hyper-parameters and then select those showing the best score. This approach has one drawback - we optimize it for the best score which is not trading performance. This means that the trading performance is not guaranteed to be good (and in fact it will not be good). Therefore, we use this score as an intermediate feature with the goal to optimize trading performance on later stages.</li> <li>If we compute the final aggregated score (like +0.21), then the question is should we buy, sell or do nothing? In fact, it is the most difficult question. To help answer it, additional scripts were developed for backtesting and optimizing buy-sell signal generation: <ul> <li>Generate rolling predictions which simulates what we do by regularly re-training the models and using them for prediction: <code>python -m scripts.predict_rolling -c config.json</code></li> <li>Train signal models for choosing the best thresholds for sell-buy signals producing the best performance on historic data: <code>python -m scripts.train_signals -c config.json</code></li> </ul> </li> </ul> <h1>Configuration parameters</h1> <p>The configuration parameters are specified in two files:</p> <ul> <li><code>service.App.py</code> in the <code>config</code> field of the <code>App</code> class</li> <li><code>-c config.jsom</code> argument to the services and scripts. The values from this config file will overwrite those in the <code>App.config</code> when this file is loaded into a script or service</li> </ul> <p>Here are some most important fields (in both <code>App.py</code> and <code>config.json</code>):</p> <ul> <li><code>data_folder</code> - location of data files which are needed only for batch offline scripts</li> <li><code>symbol</code> it is a trading pair like <code>BTCUSDT</code></li> <li>Analyzer parameters. These mainly columns names. <ul> <li><code>labels</code> List of column names which are treated as labels. If you define a new label used for training and then for prediction then you need to specify its name here</li> <li><code>algorithms</code> List of algorithm names used for training</li> <li><code>train_features</code> List of all column names used as input features for training and prediction.</li> </ul> </li> <li>Signers: <ul> <li><code>buy_labels</code> and <code>sell_labels</code> Lists of predicted columns used for signals</li> <li><code>trade_model</code> Parameters of the signaler (mainly some thresholds)</li> </ul> </li> <li><code>trader</code> is a section for trader parameters. Currently, not thoroughly tested.</li> <li><code>collector</code> These parameter section is intended for data collection services. There are two types of data collection services: synchronous with regular requests to the data provider and asynchronous streaming service which subscribes to the data provider and gets notifications as soon as new data is available. They are working but not thoroughly tested and integrated into the main service. The current main usage pattern relies on manual batch data updates, feature generation and model training. One reason for having these data collection services is 1) to have faster updates 2) to have data not available in normal API like order book (there exist some features which use this data but they are not integrated into the main workflow).</li> </ul> <p>See sample configuration files and comments in App.config for more details.</p> <h1>Signaler service</h1> <p>Every minute, the signaler performs the following steps to make a prediction about whether the price is likely to increase or decrease:</p> <ul> <li>Retrieve the latest data from the server and update the current data window which includes some history (the history length is defined by a configuration parameter)</li> <li>Compute derived features based on the nearest history collected (which now includes the latest data). The features to be computed are described in the configuration file and are exactly the same as used in batch mode during model training</li> <li>Apply several (previously trained) ML models by forecasting some future values (not necessarily prices) which are also treated as (more complex) derived features. We apply several forecasting models (currently, Gradient Boosting, Neural network, and Linear regression) to several target variables (labels)</li> <li>Aggregate the results of forecasting produced by different ML models and compute the final signal score which reflects the strength of the upward or downward trend. Here we use many previously computed scores as inputs and derive one output score. Currently, it is implemented as an aggregation procedure but it could be based on a dedicated ML model trained on previously collected scores and the target variable. Positive score means growth and negative score means fall</li> <li>Use the final score for notifications</li> </ul> <p>Notes:</p> <ul> <li>The final result of the signaler is the score (between -1 and +1). The score should be used for further decisions about buying or selling by taking into account other parameters and data sources</li> <li>For the signaler service to work, trained models have to be available and stored in the "MODELS" folder. The models are trained in batch mode and the process is described in the corresponding section.</li> </ul> <p>Starting the service: <code>python3 -m service.server -c config.json</code></p> <h1>Trader</h1> <p>The trader is working but not thoroughly debugged, particularly, not tested for stability and reliability. Therefore, it should be considered a prototype with basic functionality. It is currently integrated with the Signaler but in a better design should be a separate service.</p> <h1>Related projects</h1> <ul> <li><a href="https://github.com/CryptoSignal/Crypto-Signal">https://github.com/CryptoSignal/Crypto-Signal</a> Github.com/CryptoSignal - #1 Quant Trading &amp; Technical Analysis Bot</li> <li><a href="https://github.com/tensortrade-org/tensortrade">https://github.com/tensortrade-org/tensortrade</a> An open source reinforcement learning framework for training, evaluating, and deploying robust trading agents</li> <li><a href="https://github.com/Superalgos/Superalgos">https://github.com/Superalgos/Superalgos</a> Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments</li> <li><a href="https://github.com/kieran-mackle/AutoTrader">https://github.com/kieran-mackle/AutoTrader</a> A Python-based development platform for automated trading systems - from backtesting to optimisation to livetrading</li> <li><a href="https://github.com/areed1192/python-trading-robot">https://github.com/areed1192/python-trading-robot</a> A trading robot, that can submit basic orders in an automated fashion using the TD API</li> <li><a href="https://github.com/jmrichardson/tuneta">https://github.com/jmrichardson/tuneta</a> Intelligently optimizes technical indicators and optionally selects the least intercorrelated for use in machine learning models</li> <li><a href="https://github.com/Erfaniaa/binance-futures-trading-bot">https://github.com/Erfaniaa/binance-futures-trading-bot</a> Easy-to-use multi-strategic automatic trading for Binance Futures with Telegram integration</li> <li><a href="https://github.com/smileinnovation/cryptocurrency-trading">https://github.com/smileinnovation/cryptocurrency-trading</a> How to make profits in cryptocurrency trading with machine learning</li> </ul> <p>Backtesting</p> <ul> <li><a href="https://github.com/mementum/backtrader">https://github.com/mementum/backtrader</a></li> <li><a href="https://github.com/kernc/backtesting.py">https://github.com/kernc/backtesting.py</a></li> </ul> <p>External integrations</p> <ul> <li><a href="https://github.com/ccxt/ccxt">https://github.com/ccxt/ccxt</a> A JavaScript / Python / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges</li> <li><a href="https://github.com/aiogram/aiogram">https://github.com/aiogram/aiogram</a> Is a pretty simple and fully asynchronous framework for Telegram Bot API</li> <li><a href="https://github.com/sammchardy/python-binance">https://github.com/sammchardy/python-binance</a></li> </ul> - YvanYin/Metric3D - 2024-08-21T01:33:07Z - tag:github.com,2024-08-21:/YvanYin/Metric3D - - <p>The repo for "Metric3D: Towards Zero-shot Metric 3D Prediction from A Single Image" and "Metric3Dv2: A Versatile Monocular Geometric Foundation Model..."</p><hr><h1>🚀 Metric3D Project 🚀</h1> <p><strong>Official PyTorch implementation of Metric3Dv1 and Metric3Dv2:</strong></p> <p>[1] <a href="https://arxiv.org/abs/2307.10984">Metric3D: Towards Zero-shot Metric 3D Prediction from A Single Image</a></p> <p>[2] <a href="https://arxiv.org/abs/2404.15506">Metric3Dv2: A Versatile Monocular Geometric Foundation Model for Zero-shot Metric Depth and Surface Normal Estimation</a></p> <p><a href="https://jugghm.github.io/Metric3Dv2"><img src="https://img.shields.io/badge/project%20page-@Metric3D-yellow.svg?sanitize=true"></a> <a href="https://arxiv.org/abs/2307.10984"><img src="https://img.shields.io/badge/arxiv-@Metric3Dv1-green"></a> <a href="https://arxiv.org/abs/2404.15506"><img src="https://img.shields.io/badge/arxiv-@Metric3Dv2-red"></a> <a href="https://huggingface.co/spaces/JUGGHM/Metric3D"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue"></a></p> <p><a href="https://paperswithcode.com/sota/monocular-depth-estimation-on-nyu-depth-v2?p=metric3d-v2-a-versatile-monocular-geometric-1"><img src="https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/metric3d-v2-a-versatile-monocular-geometric-1/monocular-depth-estimation-on-nyu-depth-v2" alt="PWC"></a></p> <p><a href="https://paperswithcode.com/sota/monocular-depth-estimation-on-kitti-eigen?p=metric3d-v2-a-versatile-monocular-geometric-1"><img src="https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/metric3d-v2-a-versatile-monocular-geometric-1/monocular-depth-estimation-on-kitti-eigen" alt="PWC"></a></p> <p><a href="https://paperswithcode.com/sota/surface-normals-estimation-on-nyu-depth-v2-1?p=metric3d-v2-a-versatile-monocular-geometric-1"><img src="https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/metric3d-v2-a-versatile-monocular-geometric-1/surface-normals-estimation-on-nyu-depth-v2-1" alt="PWC"></a></p> <p><a href="https://paperswithcode.com/sota/surface-normals-estimation-on-ibims-1?p=metric3d-v2-a-versatile-monocular-geometric-1"><img src="https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/metric3d-v2-a-versatile-monocular-geometric-1/surface-normals-estimation-on-ibims-1" alt="PWC"></a></p> <p><a href="https://paperswithcode.com/sota/surface-normals-estimation-on-scannetv2?p=metric3d-v2-a-versatile-monocular-geometric-1"><img src="https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/metric3d-v2-a-versatile-monocular-geometric-1/surface-normals-estimation-on-scannetv2" alt="PWC"></a></p> <p>🏆 <strong>Champion in <a href="https://jspenmar.github.io/MDEC">CVPR2023 Monocular Depth Estimation Challenge</a></strong></p> <h2>News</h2> <ul> <li><code>[2024/8]</code> Metric3Dv2 is accepted by TPAMI!</li> <li><code>[2024/7/5]</code> Our stable-diffusion alternative GeoWizard has now been accepted by ECCV 2024! Check NOW the <a href="https://github.com/fuxiao0719/GeoWizard">repository</a> and <a href="https://arxiv.org/abs/2403.12013">paper</a> for the finest-grained geometry ever! 🎉🎉🎉</li> <li><code>[2024/6/25]</code> Json files for KITTI datasets now available! Refer to <a href="https://raw.githubusercontent.com/YvanYin/Metric3D/main/training/README.md">Training</a> for more details</li> <li><code>[2024/6/3]</code> ONNX is supported! We appreciate <a href="https://github.com/xenova">@xenova</a> for their remarkable efforts!</li> <li><code>[2024/4/25]</code> Weights for ViT-giant2 model released!</li> <li><code>[2024/4/11]</code> Training codes are released!</li> <li><code>[2024/3/18]</code> <a href="https://huggingface.co/spaces/JUGGHM/Metric3D">HuggingFace 🤗</a> GPU version updated!</li> <li><code>[2024/3/18]</code> <a href="https://jugghm.github.io/Metric3Dv2/">Project page</a> released!</li> <li><code>[2024/3/18]</code> Metric3D V2 models released, supporting metric depth and surface normal now!</li> <li><code>[2023/8/10]</code> Inference codes, pre-trained weights, and demo released.</li> <li><code>[2023/7]</code> Metric3D accepted by ICCV 2023!</li> <li><code>[2023/4]</code> The Champion of <a href="https://jspenmar.github.io/MDEC">2nd Monocular Depth Estimation Challenge</a> in CVPR 2023</li> </ul> <h2>🌼 Abstract</h2> <p>Metric3D is a strong and robust geometry foundation model for high-quality and zero-shot <strong>metric depth</strong> and <strong>surface normal</strong> estimation from a single image. It excels at solving in-the-wild scene reconstruction. It can directly help you measure the size of structures from a single image. Now it achieves SOTA performance on over 10 depth and normal benchmarks.</p> <p><img src="https://raw.githubusercontent.com/YvanYin/Metric3D/main/media/screenshots/depth_normal.jpg" alt="depth_normal"></p> <p><img src="https://raw.githubusercontent.com/YvanYin/Metric3D/main/media/screenshots/metrology.jpg" alt="metrology"></p> <h2>📝 Benchmarks</h2> <h3>Metric Depth</h3> <p>Our models rank 1st on the routing KITTI and NYU benchmarks.</p> <table> <thead> <tr> <th></th> <th>Backbone</th> <th>KITTI δ1 ↑</th> <th>KITTI δ2 ↑</th> <th>KITTI AbsRel ↓</th> <th>KITTI RMSE ↓</th> <th>KITTI RMS_log ↓</th> <th>NYU δ1 ↑</th> <th>NYU δ2 ↑</th> <th>NYU AbsRel ↓</th> <th>NYU RMSE ↓</th> <th>NYU log10 ↓</th> </tr> </thead> <tbody> <tr> <td>ZoeDepth</td> <td>ViT-Large</td> <td>0.971</td> <td>0.995</td> <td>0.053</td> <td>2.281</td> <td>0.082</td> <td>0.953</td> <td>0.995</td> <td>0.077</td> <td>0.277</td> <td>0.033</td> </tr> <tr> <td>ZeroDepth</td> <td>ResNet-18</td> <td>0.968</td> <td>0.996</td> <td>0.057</td> <td>2.087</td> <td>0.083</td> <td>0.954</td> <td>0.995</td> <td>0.074</td> <td>0.269</td> <td>0.103</td> </tr> <tr> <td>IEBins</td> <td>SwinT-Large</td> <td>0.978</td> <td>0.998</td> <td>0.050</td> <td>2.011</td> <td>0.075</td> <td>0.936</td> <td>0.992</td> <td>0.087</td> <td>0.314</td> <td>0.031</td> </tr> <tr> <td>DepthAnything</td> <td>ViT-Large</td> <td>0.982</td> <td>0.998</td> <td>0.046</td> <td>1.985</td> <td>0.069</td> <td>0.984</td> <td>0.998</td> <td>0.056</td> <td>0.206</td> <td>0.024</td> </tr> <tr> <td>Ours</td> <td>ViT-Large</td> <td>0.985</td> <td>0.998</td> <td>0.044</td> <td>1.985</td> <td>0.064</td> <td>0.989</td> <td>0.998</td> <td>0.047</td> <td>0.183</td> <td>0.020</td> </tr> <tr> <td>Ours</td> <td>ViT-giant2</td> <td>0.989</td> <td>0.998</td> <td>0.039</td> <td>1.766</td> <td>0.060</td> <td>0.987</td> <td>0.997</td> <td>0.045</td> <td>0.187</td> <td>0.015</td> </tr> </tbody> </table> <h3>Affine-invariant Depth</h3> <p>Even compared to recent affine-invariant depth methods (Marigold and Depth Anything), our metric-depth (and normal) models still show superior performance.</p> <table> <thead> <tr> <th></th> <th>#Data for Pretrain and Train</th> <th>KITTI Absrel ↓</th> <th>KITTI δ1 ↑</th> <th>NYUv2 AbsRel ↓</th> <th>NYUv2 δ1 ↑</th> <th>DIODE-Full AbsRel ↓</th> <th>DIODE-Full δ1 ↑</th> <th>Eth3d AbsRel ↓</th> <th>Eth3d δ1 ↑</th> </tr> </thead> <tbody> <tr> <td>OmniData (v2, ViT-L)</td> <td>1.3M + 12.2M</td> <td>0.069</td> <td>0.948</td> <td>0.074</td> <td>0.945</td> <td>0.149</td> <td>0.835</td> <td>0.166</td> <td>0.778</td> </tr> <tr> <td>MariGold (LDMv2)</td> <td>5B + 74K</td> <td>0.099</td> <td>0.916</td> <td>0.055</td> <td>0.961</td> <td>0.308</td> <td>0.773</td> <td>0.127</td> <td>0.960</td> </tr> <tr> <td>DepthAnything (ViT-L)</td> <td>142M + 63M</td> <td>0.076</td> <td>0.947</td> <td>0.043</td> <td>0.981</td> <td>0.277</td> <td>0.759</td> <td>0.065</td> <td>0.882</td> </tr> <tr> <td>Ours (ViT-L)</td> <td>142M + 16M</td> <td>0.042</td> <td>0.979</td> <td>0.042</td> <td>0.980</td> <td>0.141</td> <td>0.882</td> <td>0.042</td> <td>0.987</td> </tr> <tr> <td>Ours (ViT-g)</td> <td>142M + 16M</td> <td>0.043</td> <td>0.982</td> <td>0.043</td> <td>0.981</td> <td>0.136</td> <td>0.895</td> <td>0.042</td> <td>0.983</td> </tr> </tbody> </table> <h3>Surface Normal</h3> <p>Our models also show powerful performance on normal benchmarks.</p> <table> <thead> <tr> <th></th> <th>NYU 11.25° ↑</th> <th>NYU Mean ↓</th> <th>NYU RMS ↓</th> <th>ScanNet 11.25° ↑</th> <th>ScanNet Mean ↓</th> <th>ScanNet RMS ↓</th> <th>iBims 11.25° ↑</th> <th>iBims Mean ↓</th> <th>iBims RMS ↓</th> </tr> </thead> <tbody> <tr> <td>EESNU</td> <td>0.597</td> <td>16.0</td> <td>24.7</td> <td>0.711</td> <td>11.8</td> <td>20.3</td> <td>0.585</td> <td>20.0</td> <td>-</td> </tr> <tr> <td>IronDepth</td> <td>-</td> <td>-</td> <td>-</td> <td>-</td> <td>-</td> <td>-</td> <td>0.431</td> <td>25.3</td> <td>37.4</td> </tr> <tr> <td>PolyMax</td> <td>0.656</td> <td>13.1</td> <td>20.4</td> <td>-</td> <td>-</td> <td>-</td> <td>-</td> <td>-</td> <td>-</td> </tr> <tr> <td>Ours (ViT-L)</td> <td>0.688</td> <td>12.0</td> <td>19.2</td> <td>0.760</td> <td>9.9</td> <td>16.4</td> <td>0.694</td> <td>19.4</td> <td>34.9</td> </tr> <tr> <td>Ours (ViT-g)</td> <td>0.662</td> <td>13.2</td> <td>20.2</td> <td>0.778</td> <td>9.2</td> <td>15.3</td> <td>0.697</td> <td>19.6</td> <td>35.2</td> </tr> </tbody> </table> <h2>🌈 DEMOs</h2> <h3>Zero-shot monocular metric depth &amp; surface normal</h3> <img src="https://raw.githubusercontent.com/YvanYin/Metric3D/main/media/gifs/demo_1.gif" width="600" height="337"> <img src="https://raw.githubusercontent.com/YvanYin/Metric3D/main/media/gifs/demo_12.gif" width="600" height="337"> <h3>Zero-shot metric 3D recovery</h3> <img src="https://raw.githubusercontent.com/YvanYin/Metric3D/main/media/gifs/demo_2.gif" width="600" height="337"> <h3>Improving monocular SLAM</h3> <img src="https://raw.githubusercontent.com/YvanYin/Metric3D/main/media/gifs/demo_22.gif" width="600" height="337"> <h2>🔨 Installation</h2> <h3>One-line Installation</h3> <p>For the ViT models, use the following environment:</p> <pre><code class="language-bash">pip install -r requirements_v2.txt </code></pre> <p>For ConvNeXt-L, it is</p> <pre><code class="language-bash">pip install -r requirements_v1.txt </code></pre> <h3>dataset annotation components</h3> <p>With off-the-shelf depth datasets, we need to generate json annotaions in compatible with this dataset, which is organized by:</p> <pre><code>dict( 'files':list( dict( 'rgb': 'data/kitti_demo/rgb/xxx.png', 'depth': 'data/kitti_demo/depth/xxx.png', 'depth_scale': 1000.0 # the depth scale of gt depth img. 'cam_in': [fx, fy, cx, cy], ), dict( ... ), ... ) ) </code></pre> <p>To generate such annotations, please refer to the "Inference" section.</p> <h3>configs</h3> <p>In <code>mono/configs</code> we provide different config setups.</p> <p>Intrinsics of the canonical camera is set bellow:</p> <pre><code> canonical_space = dict( img_size=(512, 960), focal_length=1000.0, ), </code></pre> <p>where cx and cy is set to be half of the image size.</p> <p>Inference settings are defined as</p> <pre><code> depth_range=(0, 1), depth_normalize=(0.3, 150), crop_size = (512, 1088), </code></pre> <p>where the images will be first resized as the <code>crop_size</code> and then fed into the model.</p> <h2>✈️ Training</h2> <p>Please refer to <a href="https://raw.githubusercontent.com/YvanYin/Metric3D/main/training/README.md">training/README.md</a>. Now we provide complete json files for KITTI fine-tuning.</p> <h2>✈️ Inference</h2> <h3>News: Improved ONNX support with dynamic shapes (Feature owned by <a href="https://github.com/xenova">@xenova</a>. Appreciate for this outstanding contribution 🚩🚩🚩)</h3> <p>Now the onnx supports are availble for all three models with varying shapes. Refer to <a href="https://github.com/YvanYin/Metric3D/issues/117">issue117</a> for more details.</p> <h3>Improved ONNX Checkpoints Available now</h3> <table> <thead> <tr> <th align="center"></th> <th align="center">Encoder</th> <th align="center">Decoder</th> <th align="center">Link</th> </tr> </thead> <tbody> <tr> <td align="center">v2-S-ONNX</td> <td align="center">DINO2reg-ViT-Small</td> <td align="center">RAFT-4iter</td> <td align="center"><a href="https://huggingface.co/onnx-community/metric3d-vit-small">Download 🤗</a></td> </tr> <tr> <td align="center">v2-L-ONNX</td> <td align="center">DINO2reg-ViT-Large</td> <td align="center">RAFT-8iter</td> <td align="center"><a href="https://huggingface.co/onnx-community/metric3d-vit-large">Download 🤗</a></td> </tr> <tr> <td align="center">v2-g-ONNX</td> <td align="center">DINO2reg-ViT-giant2</td> <td align="center">RAFT-8iter</td> <td align="center"><a href="https://huggingface.co/onnx-community/metric3d-vit-giant2">Download 🤗</a></td> </tr> </tbody> </table> <p>One additional <a href="https://github.com/YvanYin/Metric3D/issues/143#issue-2444506808">reminder</a> for using these onnx models is reported by @norbertlink.</p> <h3>News: Pytorch Hub is supported</h3> <p>Now you can use Metric3D via Pytorch Hub with just few lines of code:</p> <pre><code class="language-python">import torch model = torch.hub.load('yvanyin/metric3d', 'metric3d_vit_small', pretrain=True) pred_depth, confidence, output_dict = model.inference({'input': rgb}) pred_normal = output_dict['prediction_normal'][:, :3, :, :] # only available for Metric3Dv2 i.e., ViT models normal_confidence = output_dict['prediction_normal'][:, 3, :, :] # see https://arxiv.org/abs/2109.09881 for details </code></pre> <p>Supported models: <code>metric3d_convnext_tiny</code>, <code>metric3d_convnext_large</code>, <code>metric3d_vit_small</code>, <code>metric3d_vit_large</code>, <code>metric3d_vit_giant2</code>.</p> <p>We also provided a minimal working example in <a href="https://github.com/YvanYin/Metric3D/raw/main/hubconf.py#L145">hubconf.py</a>, which hopefully makes everything clearer.</p> <h3>News: ONNX Exportation and Inference are supported</h3> <p>We also provided a flexible working example in <a href="https://raw.githubusercontent.com/YvanYin/Metric3D/main/onnx/metric3d_onnx_export.py">metric3d_onnx_export.py</a> to export the Pytorch Hub model to ONNX format. We could test with the following commands:</p> <pre><code class="language-bash"># Export the model to ONNX model python3 onnx/metric_3d_onnx_export.py metric3d_vit_small # metric3d_vit_large/metric3d_convnext_large # Test the inference of the ONNX model python3 onnx/test_onnx.py metric3d_vit_small.onnx </code></pre> <p><a href="https://github.com/Owen-Liuyuxuan/ros2_vision_inference">ros2_vision_inference</a> provides a Python example, showcasing a pipeline from image to point clouds and integrated into ROS2 systems.</p> <h3>Download Checkpoint</h3> <table> <thead> <tr> <th align="center"></th> <th align="center">Encoder</th> <th align="center">Decoder</th> <th align="center">Link</th> </tr> </thead> <tbody> <tr> <td align="center">v1-T</td> <td align="center">ConvNeXt-Tiny</td> <td align="center">Hourglass-Decoder</td> <td align="center"><a href="https://huggingface.co/JUGGHM/Metric3D/blob/main/convtiny_hourglass_v1.pth">Download 🤗</a></td> </tr> <tr> <td align="center">v1-L</td> <td align="center">ConvNeXt-Large</td> <td align="center">Hourglass-Decoder</td> <td align="center"><a href="https://drive.google.com/file/d/1KVINiBkVpJylx_6z1lAC7CQ4kmn-RJRN/view?usp=drive_link">Download</a></td> </tr> <tr> <td align="center">v2-S</td> <td align="center">DINO2reg-ViT-Small</td> <td align="center">RAFT-4iter</td> <td align="center"><a href="https://drive.google.com/file/d/1YfmvXwpWmhLg3jSxnhT7LvY0yawlXcr_/view?usp=drive_link">Download</a></td> </tr> <tr> <td align="center">v2-L</td> <td align="center">DINO2reg-ViT-Large</td> <td align="center">RAFT-8iter</td> <td align="center"><a href="https://drive.google.com/file/d/1eT2gG-kwsVzNy5nJrbm4KC-9DbNKyLnr/view?usp=drive_link">Download</a></td> </tr> <tr> <td align="center">v2-g</td> <td align="center">DINO2reg-ViT-giant2</td> <td align="center">RAFT-8iter</td> <td align="center"><a href="https://huggingface.co/JUGGHM/Metric3D/blob/main/metric_depth_vit_giant2_800k.pth">Download 🤗</a></td> </tr> </tbody> </table> <h3>Dataset Mode</h3> <ol> <li>put the trained ckpt file <code>model.pth</code> in <code>weight/</code>.</li> <li>generate data annotation by following the code <code>data/gene_annos_kitti_demo.py</code>, which includes 'rgb', (optional) 'intrinsic', (optional) 'depth', (optional) 'depth_scale'.</li> <li>change the 'test_data_path' in <code>test_*.sh</code> to the <code>*.json</code> path.</li> <li>run <code>source test_kitti.sh</code> or <code>source test_nyu.sh</code>.</li> </ol> <h3>In-the-Wild Mode</h3> <ol> <li>put the trained ckpt file <code>model.pth</code> in <code>weight/</code>.</li> <li>change the 'test_data_path' in <code>test.sh</code> to the image folder path.</li> <li>run <code>source test_vit.sh</code> for transformers and <code>source test.sh</code> for convnets. As no intrinsics are provided, we provided by default 9 settings of focal length.</li> </ol> <h3>Metric3D and Droid-Slam</h3> <p>If you are interested in combining metric3D and monocular visual slam system to achieve the metric slam, you can refer to this <a href="https://github.com/Jianxff/droid_metric">repo</a>.</p> <h2>❓ Q &amp; A</h2> <h3>Q1: Why depth maps look good but pointclouds are distorted?</h3> <p>Because the focal length is not properly set! Please find a proper focal length by modifying codes <a href="https://raw.githubusercontent.com/YvanYin/Metric3D/main/mono/utils/do_test.py#309">here</a> yourself.</p> <h3>Q2: Why the pointclouds are too slow to be generated?</h3> <p>Because the images are too large! Use smaller ones instead.</p> <h3>Q3: Why predicted depth maps are not satisfactory?</h3> <p>First be sure all black padding regions at image boundaries are cropped out. Then please try again. Besides, metric 3D is not almighty. Some objects (chandeliers, drones...) / camera views (aerial view, bev...) do not occur frequently in the training datasets. We will going deeper into this and release more powerful solutions.</p> <h2>📧 Citation</h2> <!-- ``` @article{hu2024metric3dv2, title={Metric3D v2: A Versatile Monocular Geometric Foundation Model for Zero-shot Metric Depth and Surface Normal Estimation}, author={Hu, Mu and Yin, Wei and Zhang, Chi and Cai, Zhipeng and Long, Xiaoxiao and Chen, Hao and Wang, Kaixuan and Yu, Gang and Shen, Chunhua and Shen, Shaojie}, journal={arXiv preprint arXiv:2404.15506}, year={2024} } ``` --> <pre><code>@article{hu2024metric3d, title={Metric3D v2: A Versatile Monocular Geometric Foundation Model for Zero-shot Metric Depth and Surface Normal Estimation}, author={Hu, Mu and Yin, Wei and Zhang, Chi and Cai, Zhipeng and Long, Xiaoxiao and Chen, Hao and Wang, Kaixuan and Yu, Gang and Shen, Chunhua and Shen, Shaojie}, journal={arXiv preprint arXiv:2404.15506}, year={2024} } </code></pre> <pre><code>@article{yin2023metric, title={Metric3D: Towards Zero-shot Metric 3D Prediction from A Single Image}, author={Wei Yin, Chi Zhang, Hao Chen, Zhipeng Cai, Gang Yu, Kaixuan Wang, Xiaozhi Chen, Chunhua Shen}, booktitle={ICCV}, year={2023} } </code></pre> <h2>License and Contact</h2> <p>The <em>Metric 3D</em> code is under a 2-clause BSD License. For further commercial inquiries, please contact Dr. Wei Yin [<a href="mailto:yvanwy@outlook.com">yvanwy@outlook.com</a>] and Mr. Mu Hu [<a href="mailto:mhuam@connect.ust.hk">mhuam@connect.ust.hk</a>].</p> + pymupdf/PyMuPDF + 2024-08-22T01:33:20Z + tag:github.com,2024-08-22:/pymupdf/PyMuPDF + + <p>PyMuPDF is a high performance Python library for data extraction, analysis, conversion & manipulation of PDF (and other) documents.</p><hr><h1>PyMuPDF</h1> <p><strong>PyMuPDF</strong> is a high performance <strong>Python</strong> library for data extraction, analysis, conversion &amp; manipulation of <a href="https://pymupdf.readthedocs.io/en/latest/the-basics.html#supported-file-types">PDF (and other) documents</a>.</p> <h1>Community</h1> <p>Join us on <strong>Discord</strong> here: <a href="https://discord.gg/TSpYGBW4eq">#pymupdf</a></p> <h1>Installation</h1> <p><strong>PyMuPDF</strong> requires <strong>Python 3.8 or later</strong>, install using <strong>pip</strong> with:</p> <p><code>pip install PyMuPDF</code></p> <p>There are <strong>no mandatory</strong> external dependencies. However, some <a href="https://raw.githubusercontent.com/pymupdf/PyMuPDF/main/#pymupdf-optional-features">optional features</a> become available only if additional packages are installed.</p> <p>You can also try without installing by visiting <a href="https://pymupdf.io/#examples">PyMuPDF.io</a>.</p> <h1>Usage</h1> <p>Basic usage is as follows:</p> <pre><code class="language-python">import pymupdf # imports the pymupdf library doc = pymupdf.open("example.pdf") # open a document for page in doc: # iterate the document pages text = page.get_text() # get plain text encoded as UTF-8 </code></pre> <h1>Documentation</h1> <p>Full documentation can be found on <a href="https://pymupdf.readthedocs.io">pymupdf.readthedocs.io</a>.</p> <h1><a id="pymupdf-optional-features"></a>Optional Features</h1> <ul> <li><a href="https://pypi.org/project/fonttools/">fontTools</a> for creating font subsets.</li> <li><a href="https://pypi.org/project/pymupdf-fonts/">pymupdf-fonts</a> contains some nice fonts for your text output.</li> <li><a href="https://github.com/tesseract-ocr/tesseract">Tesseract-OCR</a> for optical character recognition in images and document pages.</li> </ul> <h1>About</h1> <p><strong>PyMuPDF</strong> adds <strong>Python</strong> bindings and abstractions to <a href="https://mupdf.com/">MuPDF</a>, a lightweight <strong>PDF</strong>, <strong>XPS</strong>, and <strong>eBook</strong> viewer, renderer, and toolkit. Both <strong>PyMuPDF</strong> and <strong>MuPDF</strong> are maintained and developed by <a href="https://artifex.com">Artifex Software, Inc</a>.</p> <p><strong>PyMuPDF</strong> was originally written by <a href="mailto:jorj.x.mckie@outlook.de">Jorj X. McKie</a>.</p> <h1>License and Copyright</h1> <p><strong>PyMuPDF</strong> is available under <a href="https://www.gnu.org/licenses/agpl-3.0.html">open-source AGPL</a> and commercial license agreements. If you determine you cannot meet the requirements of the <strong>AGPL</strong>, please contact <a href="https://artifex.com/contact/pymupdf-inquiry.php">Artifex</a> for more information regarding a commercial license.</p> + + + NVlabs/VILA + 2024-08-22T01:33:20Z + tag:github.com,2024-08-22:/NVlabs/VILA + + <p>VILA - a multi-image visual language model with training, inference and evaluation recipe, deployable from cloud to edge (Jetson Orin and laptops)</p><hr><p align="center"> <img src="https://raw.githubusercontent.com/NVlabs/VILA/main/demo_images/vila-logo.jpg" width="20%"> </p> <h1>VILA: On Pre-training for Visual Language Models</h1> <p><a href="https://raw.githubusercontent.com/NVlabs/VILA/main/CODE_LICENSE"><img src="https://img.shields.io/badge/Code%20License-Apache_2.0-green.svg?sanitize=true" alt="Code License"></a> <a href="https://raw.githubusercontent.com/NVlabs/VILA/main/MODEL_LICENSE"><img src="https://img.shields.io/badge/MODEL%20License-CC%20By%20NC%204.0-red.svg?sanitize=true" alt="Model License"></a> <a href="https://www.python.org/downloads/release/python-3100/"><img src="https://img.shields.io/badge/python-3.10+-blue.svg?sanitize=true" alt="Python 3.10+"></a></p> <p><a href="https://arxiv.org/abs/2312.07533">VILA arxiv</a> / <a href="https://vila-demo.hanlab.ai/">VILA Demo</a> / <a href="https://huggingface.co/collections/Efficient-Large-Model/vila-on-pre-training-for-visual-language-models-65d8022a3a52cd9bcd62698e">VILA Huggingface</a></p> <h2>💡 Introduction</h2> <p>VILA is a visual language model (VLM) pretrained with interleaved image-text data at scale, enabling <strong>video understanding</strong> and <strong>multi-image understanding</strong> capabilities. VILA is deployable on the edge by <a href="https://arxiv.org/pdf/2306.00978.pdf">AWQ</a> 4bit quantization and <a href="https://github.com/mit-han-lab/llm-awq/tree/main/tinychat">TinyChat</a> framework. We find: (1) image-text pairs are not enough, interleaved image-text is essential; (2) unfreezing LLM during interleaved image-text pre-training enables in-context learning; (3)re-blending text-only instruction data is crucial to boost both VLM and text-only performance; (4) token compression extends #video frames. VILA unveils appealing capabilities, including: video reasoning, in-context learning, visual chain-of-thought, and better world knowledge.</p> <h2>💡 News</h2> <ul> <li>[2024/08] We release <a href="https://raw.githubusercontent.com/NVlabs/VILA/main/LongVILA.md">LongVILA</a> that supports long video understanding (Captioning, QA, Needle-in-a-Haystack) up to 1024 frames.</li> <li>[2024/07] VILA1.5 also ranks 1st place (OSS model) on <a href="https://github.com/JUNJIE99/MLVU">MLVU test leaderboard</a>.</li> <li>[2024/06] VILA1.5 is now the best open sourced VLM on <a href="https://mmmu-benchmark.github.io/#leaderboard">MMMU leaderboard</a> and <a href="https://video-mme.github.io/home_page.html#leaderboard">Video-MME</a> leaderboard!</li> <li>[2024/05] We release VILA-1.5, which offers <strong>video understanding capability</strong>. VILA-1.5 comes with four model sizes: 3B/8B/13B/40B.</li> <li>[2024/05] We release <a href="https://arxiv.org/pdf/2306.00978.pdf">AWQ</a>-quantized 4bit VILA-1.5 models. VILA-1.5 is efficiently deployable on diverse NVIDIA GPUs (A100, 4090, 4070 Laptop, Orin, Orin Nano) by <a href="https://github.com/mit-han-lab/llm-awq/tree/main/tinychat">TinyChat</a> and <a href="https://raw.githubusercontent.com/NVlabs/VILA/main/demo_trt_llm">TensorRT-LLM</a> backends.</li> <li>[2024/03] VILA has been accepted by CVPR 2024!</li> <li>[2024/02] We release <a href="https://arxiv.org/pdf/2306.00978.pdf">AWQ</a>-quantized 4bit VILA models, deployable on Jetson Orin and laptops through <a href="https://github.com/mit-han-lab/llm-awq/tree/main/tinychat">TinyChat</a> and <a href="https://github.com/mit-han-lab/TinyChatEngine">TinyChatEngine</a>.</li> <li>[2024/02] VILA is released. We propose interleaved image-text pretraining that enables <strong>multi-image</strong> VLM. VILA comes with impressive in-context learning capabilities. We open source everything: including training code, evaluation code, datasets, model ckpts.</li> <li>[2023/12] <a href="https://arxiv.org/abs/2312.07533">Paper</a> is on Arxiv!</li> </ul> <h2>Performance</h2> <h3>Image QA Benchmarks</h3> <table> <thead> <tr> <th>$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$</th> <th>Prec.</th> <th>VQAv2</th> <th>GQA</th> <th>VizWiz</th> <th>SQA-I</th> <th>VQA-T</th> <th>POPE</th> <th>MME</th> <th>MMB</th> <th>MMB-CN</th> <th>SEED</th> <th>SEED-I</th> <th>MMMU (val)</th> <th>MMMU (test)</th> <th>llava-bench</th> <th>MM-Vet</th> <th>Average</th> </tr> </thead> <tbody> <tr> <td>VILA1.5-3B</td> <td>fp16</td> <td>80.4</td> <td>61.5</td> <td>53.5</td> <td>69.0</td> <td>60.4</td> <td>85.9</td> <td>1442.44</td> <td>63.4</td> <td>52.7</td> <td>60.9</td> <td>67.9</td> <td>33.3</td> <td>30.8</td> <td>75.9</td> <td>35.4</td> <td>60.2</td> </tr> <tr> <td>VILA1.5-3B-AWQ</td> <td>int4</td> <td>80.0</td> <td>61.1</td> <td>53.8</td> <td>67.8</td> <td>60.4</td> <td>85.9</td> <td>1437.34</td> <td>63.3</td> <td>51.4</td> <td>59.8</td> <td>66.6</td> <td>32.7</td> <td>31.1</td> <td>75.0</td> <td>37.3</td> <td>59.9</td> </tr> <tr> <td>VILA1.5-3B-S2</td> <td>fp16</td> <td>79.8</td> <td>61.4</td> <td>61.3</td> <td>69.6</td> <td>63.4</td> <td>85.3</td> <td>1431.65</td> <td>62.8</td> <td>52.2</td> <td>60.0</td> <td>66.4</td> <td>32.8</td> <td>31.3</td> <td>76.7</td> <td>38.6</td> <td>60.9</td> </tr> <tr> <td>VILA1.5-3B-S2-AWQ</td> <td>int4</td> <td>79.4</td> <td>61.3</td> <td>62.3</td> <td>69.2</td> <td>63.0</td> <td>85.8</td> <td>1417.06</td> <td>61.6</td> <td>51.5</td> <td>59.1</td> <td>65.7</td> <td>33.4</td> <td>30.4</td> <td>77.1</td> <td>36.7</td> <td>60.5</td> </tr> <tr> <td>Llama-3-VILA1.5-8B</td> <td>fp16</td> <td>80.9</td> <td>61.9</td> <td>58.7</td> <td>79.9</td> <td>66.3</td> <td>84.4</td> <td>1577.01</td> <td>72.3</td> <td>66.2</td> <td>64.2</td> <td>71.4</td> <td>36.9</td> <td>36.0</td> <td>80.0</td> <td>38.3</td> <td>65.1</td> </tr> <tr> <td>Llama-3-VILA1.5-8B-AWQ</td> <td>int4</td> <td>80.3</td> <td>61.7</td> <td>59.3</td> <td>79.0</td> <td>65.4</td> <td>82.9</td> <td>1593.65</td> <td>71.0</td> <td>64.9</td> <td>64.0</td> <td>71.1</td> <td>36.0</td> <td>36.1</td> <td>79.0</td> <td>37.2</td> <td>64.5</td> </tr> <tr> <td>VILA1.5-13B</td> <td>fp16</td> <td>82.8</td> <td>64.3</td> <td>62.6</td> <td>80.1</td> <td>65.0</td> <td>86.3</td> <td>1569.55</td> <td>74.9</td> <td>66.3</td> <td>65.1</td> <td>72.6</td> <td>37.9</td> <td>33.6</td> <td>80.8</td> <td>44.3</td> <td>66.3</td> </tr> <tr> <td>VILA1.5-13B-AWQ</td> <td>int4</td> <td>82.7</td> <td>64.5</td> <td>63.3</td> <td>79.7</td> <td>64.7</td> <td>86.7</td> <td>1531.35</td> <td>74.7</td> <td>66.7</td> <td>65.1</td> <td>72.6</td> <td>37.8</td> <td>34.0</td> <td>81.9</td> <td>46.4</td> <td>66.5</td> </tr> <tr> <td>VILA1.5-40B</td> <td>fp16</td> <td>84.3</td> <td>64.6</td> <td>62.2</td> <td>87.2</td> <td>73.6</td> <td>87.3</td> <td>1726.82</td> <td>82.4</td> <td>80.2</td> <td>69.1</td> <td>75.8</td> <td>51.9</td> <td>46.9</td> <td>81.3</td> <td>53.0</td> <td>72.4</td> </tr> <tr> <td>VILA1.5-40B-AWQ</td> <td>int4</td> <td>84.1</td> <td>64.4</td> <td>61.3</td> <td>86.7</td> <td>73.2</td> <td>88.2</td> <td>1714.79</td> <td>83.2</td> <td>79.6</td> <td>68.9</td> <td>75.6</td> <td>49.3</td> <td>46.2</td> <td>83.0</td> <td>51.4</td> <td>72.1</td> </tr> </tbody> </table> <p><sup>NOTE: VQAV2 and VizWiz are test-dev, the average accuracy is calculated over all datasets and MME numbers are divided by 20.</sup></p> <h3>Video QA Benchmarks</h3> <table> <thead> <tr> <th>$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$</th> <th>Prec.</th> <th>Perception Test</th> <th>ActivityNet</th> <th>MSVD</th> <th>MSRVTT</th> <th>TGIF</th> <th>EgoSchema (test)</th> <th>CinePile</th> </tr> </thead> <tbody> <tr> <td>VILA1.5-3B</td> <td>fp16</td> <td>47</td> <td>50.2</td> <td>76.6</td> <td>57.5</td> <td>51.7</td> <td>42.6</td> <td>37.9</td> </tr> <tr> <td>VILA1.5-3B-S2</td> <td>fp16</td> <td>49.7</td> <td>50.7</td> <td>76.9</td> <td>57.6</td> <td>51.7</td> <td></td> <td></td> </tr> <tr> <td>Llama-3-VILA1.5-8B</td> <td>fp16</td> <td>54.1</td> <td>54.3</td> <td>78.3</td> <td>60.1</td> <td>54.1</td> <td>50.4</td> <td>48.7</td> </tr> <tr> <td>VILA1.5-13B</td> <td>fp16</td> <td>53.6</td> <td>54.7</td> <td>77.9</td> <td>60.2</td> <td>56</td> <td>52.2</td> <td>50.1</td> </tr> <tr> <td>VILA1.5-40B</td> <td>fp16</td> <td>54</td> <td>58</td> <td>80.1</td> <td>63</td> <td>58.2</td> <td>58.7</td> <td>51.3</td> </tr> </tbody> </table> <h3>Inference speed ( Token/sec )</h3> <table> <thead> <tr> <th>$~~~~~~$</th> <th>Precision</th> <th>A100</th> <th>4090</th> <th>Orin</th> </tr> </thead> <tbody> <tr> <td>VILA1.5-3B</td> <td>fp16</td> <td>104.6</td> <td>137.6</td> <td>25.4</td> </tr> <tr> <td>VILA1.5-3B-AWQ</td> <td>int4</td> <td>182.8</td> <td>215.5</td> <td>42.5</td> </tr> <tr> <td>VILA1.5-3B-S2</td> <td>fp16</td> <td>104.3</td> <td>137.2</td> <td>24.6</td> </tr> <tr> <td>VILA1.5-3B-S2-AWQ</td> <td>int4</td> <td>180.2</td> <td>219.3</td> <td>40.1</td> </tr> <tr> <td>Llama-3-VILA1.5-8B</td> <td>fp16</td> <td>74.9</td> <td>57.4</td> <td>10.2</td> </tr> <tr> <td>Llama-3-VILA1.5-8B-AWQ</td> <td>int4</td> <td>168.9</td> <td>150.2</td> <td>28.7</td> </tr> <tr> <td>VILA1.5-13B</td> <td>fp16</td> <td>50.9</td> <td>OOM</td> <td>6.1</td> </tr> <tr> <td>VILA1.5-13B-AWQ</td> <td>int4</td> <td>115.9</td> <td>105.7</td> <td>20.6</td> </tr> <tr> <td>VILA1.5-40B</td> <td>fp16</td> <td>OOM</td> <td>OOM</td> <td>--</td> </tr> <tr> <td>VILA1.5-40B-AWQ</td> <td>int4</td> <td>57.0</td> <td>OOM</td> <td>--</td> </tr> </tbody> </table> <p><sup>NOTE: Measured using the <a href="https://github.com/mit-han-lab/llm-awq/tinychat">TinyChat</a> backend at batch size = 1.</sup></p> <h2>VILA Examples</h2> <h3>Video captioning</h3> <p><a href="https://github.com/Efficient-Large-Model/VILA/assets/156256291/c9520943-2478-4f97-bc95-121d625018a6">https://github.com/Efficient-Large-Model/VILA/assets/156256291/c9520943-2478-4f97-bc95-121d625018a6</a></p> <p>Prompt: Elaborate on the visual and narrative elements of the video in detail.</p> <p>Caption: The video shows a person's hands working on a white surface. They are folding a piece of fabric with a checkered pattern in shades of blue and white. The fabric is being folded into a smaller, more compact shape. The person's fingernails are painted red, and they are wearing a black and red garment. There are also a ruler and a pencil on the surface, suggesting that measurements and precision are involved in the process.</p> <h3>In context learning</h3> <img src="https://raw.githubusercontent.com/NVlabs/VILA/main/demo_images/demo_img_1.png" height="239"> <img src="https://raw.githubusercontent.com/NVlabs/VILA/main/demo_images/demo_img_2.png" height="250"> <h3>Multi-image reasoning</h3> <img src="https://raw.githubusercontent.com/NVlabs/VILA/main/demo_images/demo_img_3.png" height="193"> <h3>VILA on Jetson Orin</h3> <p><a href="https://github.com/Efficient-Large-Model/VILA/assets/7783214/6079374c-0787-4bc4-b9c6-e1524b4c9dc4">https://github.com/Efficient-Large-Model/VILA/assets/7783214/6079374c-0787-4bc4-b9c6-e1524b4c9dc4</a></p> <h3>VILA on RTX 4090</h3> <p><a href="https://github.com/Efficient-Large-Model/VILA/assets/7783214/80c47742-e873-4080-ad7d-d17c4700539f">https://github.com/Efficient-Large-Model/VILA/assets/7783214/80c47742-e873-4080-ad7d-d17c4700539f</a></p> <h2>Installation</h2> <pre><code class="language-bash">./environment_setup.sh vila </code></pre> <h2>Training</h2> <p>VILA training contains three steps, for specific hyperparameters, please check out the <a href="https://raw.githubusercontent.com/NVlabs/VILA/main/scripts/v1_5">scripts/v1_5</a> folder:</p> <h3>Step-1: Alignment</h3> <p>We utilize LLaVA-CC3M-Pretrain-595K dataset to align the textual and visual modalities.</p> <p>The stage 1 script takes in two parameters and it can run on a single 8xA100 node. <code>BASE_MODEL_PATH</code> points to a online or local huggingface repository, such as <code>NousResearch/Llama-2-7b-hf</code>. <code>OUTPUT_NAME</code> points to a target directory under <code>checkpoints</code>, which will save the trained multimodal projector afterwards.</p> <pre><code class="language-bash">bash scripts/v1_5/paper/1_mm_align.sh [BASE_MODEL_PATH] [OUTPUT_NAME] </code></pre> <h3>Step-2: Pretraining</h3> <p>We use MMC4 and Coyo dataset to train VLM with interleaved image-text pairs.</p> <pre><code class="language-bash">bash scripts/v1_5/paper/2_pretrain_mmc4_coyo.sh [CODE_PATH] [BASE_MODEL_PATH] [STAGE1_PATH] [OUTPUT_NAME] </code></pre> <p>The stage 2 script takes in four arguments. <code>CODE_PATH</code> is the absolute path to our VILA codebase, <code>BASE_MODEL_PATH</code> has similar meaning to what is presented in the stage 1 script. <code>STAGE1_PATH</code> points to the <code>OUTPUT_NAME</code> of stage 1 (i.e. where the stage 1 checkpoint is stored). <code>OUTPUT_NAME</code> is the desired folder name under <code>checkpoints</code> that saves the pretraining checkpoint. The script we provided for this stage is executed on slurm, and we expect it to execute on 16 nodes (128 GPUs).</p> <h3>Step-3: Supervised fine-tuning</h3> <p>This is the last stage of VILA training, in which we tune the model to follow multimodal instructions on a subset of M3IT, FLAN and ShareGPT4V. This stage runs on a 8xA100 node.</p> <pre><code class="language-bash">bash scripts/v1_5/paper/3_sft.sh [STAGE2_PATH] [OUTPUT_NAME] </code></pre> <p>The stage 3 script takes in two arguments. <code>STAGE2_PATH</code> points to the <code>OUTPUT_NAME</code> of the stage 2 script (i.e. where the stage 2 checkpoint is stored). <code>OUTPUT_NAME</code> is the desired folder name under <code>checkpoints</code> that stores the final checkpoint.</p> <h2>Evaluations</h2> <h3>Image Benchmarks</h3> <p>You can follow <a href="https://github.com/haotian-liu/LLaVA/raw/main/docs/Evaluation.md">Llava1.5 eval</a> to download all datasets. After downloading all datasets, please put them under <code>playground/data/eval</code>.</p> <p>Please make the following changes to the MME evaluation script. Please search for:</p> <pre><code class="language-python">data_path = "MME_Benchmark_release_version" </code></pre> <p>and replace it with:</p> <pre><code class="language-python">data_path = os.path.join(script_dir, "MME_Benchmark_release_version") </code></pre> <p>We provide a push-the-button script to perform evaluation on all 10 datasets that do not require GPT-assisted evaluation:</p> <pre><code class="language-bash">./scripts/v1_5/eval/eval_all.sh [CHECKPOINT_PATH] [MODEL_NAME] [CONV_MODE] </code></pre> <p>This script takes in two parameters, <code>CHECKPOINT_PATH</code> points to the stage 3 model checkpoint, and <code>MODEL_NAME</code> will be the name of evaluation results.</p> <p><a href="https://eval.ai/web/challenges/challenge-page/830/my-submission">VQAv2</a> and <a href="https://eval.ai/web/challenges/challenge-page/2185/my-submission">Vizwiz</a> evaluations are hosted on eval.ai. You need to register an account and create a team to be able to submit eval.</p> <p>MMBench and MMBench_CN eval are hosted on another <a href="https://opencompass.org.cn/leaderboard-multimodal">evaluation server</a>. Make sure you change the name of the file before submitting, otherwise the server caches results and will always return wrong result to you.</p> <p>We provide a quick script to automatically organize the prediction files that need to be submitted to servers:</p> <pre><code class="language-bash">python scripts/v1_5/eval/copy_predictions.py [MODEL_NAME] </code></pre> <p>You will be able to find the predictions under <code>playground/data/predictions_upload/[MODEL_NAME]</code> after executing this script.</p> <h3>Video Benchmarks</h3> <p>Please follow the evaluation steps in <a href="https://github.com/PKU-YuanGroup/Video-LLaVA/raw/main/TRAIN_AND_VALIDATE.md#data-for-validating">Video-LLaVA</a> for dataset preparation.</p> <pre><code class="language-bash">./scripts/v1_5/eval/video_chatgpt/run_all.sh [CHECKPOINT_PATH] [MODEL_NAME] [CONV_MODE] ./scripts/v1_5/eval/video_chatgpt/eval_all.sh [MODEL_NAME] </code></pre> <h2>Inference</h2> <p>We provide snippets for quick inference with user prompts and images.</p> <p>Llama-3-VILA1.5-8B inference:</p> <pre><code class="language-bash">python -W ignore llava/eval/run_vila.py \ --model-path Efficient-Large-Model/Llama-3-VILA1.5-8b \ --conv-mode llama_3 \ --query "&lt;image&gt;\n Please describe the traffic condition." \ --image-file "av.png" </code></pre> <p>VILA1.5-40B inference:</p> <pre><code class="language-bash">python -W ignore llava/eval/run_vila.py \ --model-path Efficient-Large-Model/VILA1.5-40b \ --conv-mode hermes-2 \ --query "&lt;image&gt;\n Please describe the traffic condition." \ --image-file "av.png" </code></pre> <p>VILA1.5-3B video inference:</p> <pre><code class="language-bash">python -W ignore llava/eval/run_vila.py \ --model-path Efficient-Large-Model/VILA1.5-3b \ --conv-mode vicuna_v1 \ --query "&lt;video&gt;\n Please describe this video." \ --video-file "demo.mp4" </code></pre> <h2>Quantization and Deployment</h2> <p>Our VILA models are quantized by <a href="https://arxiv.org/abs/2306.00978">AWQ</a> into 4 bits for efficient inference on the edge. We provide a push-the-button <a href="https://github.com/mit-han-lab/llm-awq/raw/main/scripts/vila_example.sh">script</a> to quantize VILA with AWQ.</p> <h3>Running VILA on desktop GPUs and edge GPUs</h3> <p>We support AWQ-quantized 4bit VILA on GPU platforms via <a href="https://github.com/mit-han-lab/llm-awq/tree/main/tinychat">TinyChat</a>. We provide a <a href="https://github.com/mit-han-lab/llm-awq/tree/main/tinychat#support-vlm-models-vila--llava">tutorial</a> to run the model with TinyChat after quantization. We also provide an <a href="https://github.com/mit-han-lab/llm-awq/tree/main/tinychat/serve">instruction</a> to launch a Gradio server (powered by TinyChat and AWQ) to serve 4-bit quantized VILA models.</p> <h3>Running VILA on laptops</h3> <p>We further support our AWQ-quantized 4bit VILA models on various CPU platforms with both x86 and ARM architectures with our <a href="https://github.com/mit-han-lab/TinyChatEngine">TinyChatEngine</a>. We also provide a detailed <a href="https://github.com/mit-han-lab/TinyChatEngine/tree/main?tab=readme-ov-file#deploy-vision-language-model-vlm-chatbot-with-tinychatengine">tutorial</a> to help the users deploy VILA on different CPUs.</p> <h3>Running VILA API server</h3> <p>A simple API server has been provided to serve VILA models. The server is built on top of <a href="https://fastapi.tiangolo.com/">FastAPI</a> and <a href="https://huggingface.co/transformers/">Huggingface Transformers</a>. The server can be run with the following command:</p> <h4>With CLI</h4> <pre><code class="language-bash">python -W ignore server.py \ --port 8000 \ --model-path Efficient-Large-Model/VILA1.5-3B \ --conv-mode vicuna_v1 </code></pre> <h4>With Docker</h4> <pre><code class="language-bash">docker build -t vila-server:latest . docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \ -v ./hub:/root/.cache/huggingface/hub \ -it --rm -p 8000:8000 \ -e VILA_MODEL_PATH=Efficient-Large-Model/VILA1.5-3B \ -e VILA_CONV_MODE=vicuna_v1 \ vila-server:latest </code></pre> <p>Then you can call the endpoint with the OpenAI SDK as follows:</p> <pre><code class="language-python">from openai import OpenAI client = OpenAI( base_url="http://localhost:8000", api_key="fake-key", ) response = client.chat.completions.create( messages=[ { "role": "user", "content": [ {"type": "text", "text": "What’s in this image?"}, { "type": "image_url", "image_url": { "url": "https://blog.logomyway.com/wp-content/uploads/2022/01/NVIDIA-logo.jpg", # Or you can pass in a base64 encoded image # "url": "data:image/png;base64,&lt;base64_encoded_image&gt;", }, }, ], } ], max_tokens=300, model="VILA1.5-3B", # You can pass in extra parameters as follows extra_body={"num_beams": 1, "use_cache": False}, ) print(response.choices[0].message.content) </code></pre> <p><sup>NOTE: This API server is intended for evaluation purposes only and has not been optimized for production use. It has only been tested on A100 and H100 GPUs.</sup></p> <h2>Checkpoints</h2> <p>We release <a href="https://hf.co/Efficient-Large-Model/VILA1.5-3b">VILA1.5-3B</a>, <a href="https://hf.co/Efficient-Large-Model/VILA1.5-3b-s2">VILA1.5-3B-S2</a>, <a href="https://hf.co/Efficient-Large-Model/Llama-3-VILA1.5-8b">Llama-3-VILA1.5-8B</a>, <a href="https://hf.co/Efficient-Large-Model/VILA1.5-13b">VILA1.5-13B</a>, <a href="https://hf.co/Efficient-Large-Model/VILA1.5-40b">VILA1.5-40B</a> and the 4-bit <a href="https://arxiv.org/abs/2306.00978">AWQ</a>-quantized models <a href="https://hf.co/Efficient-Large-Model/VILA1.5-3b-AWQ">VILA1.5-3B-AWQ</a>, <a href="https://hf.co/Efficient-Large-Model/VILA1.5-3b-s2-AWQ">VILA1.5-3B-S2-AWQ</a>, <a href="https://hf.co/Efficient-Large-Model/Llama-3-VILA1.5-8b-AWQ">Llama-3-VILA1.5-8B-AWQ</a>, <a href="https://hf.co/Efficient-Large-Model/VILA1.5-13b-AWQ">VILA1.5-13B-AWQ</a>, <a href="https://hf.co/Efficient-Large-Model/VILA1.5-40b-AWQ">VILA1.5-40B-AWQ</a>.</p> <h2>🔒 License</h2> <ul> <li>The code is released under the Apache 2.0 license as found in the <a href="https://raw.githubusercontent.com/NVlabs/VILA/main/LICENSE">LICENSE</a> file.</li> <li>The pretrained weights are released under the <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en">CC-BY-NC-SA-4.0 license</a>.</li> <li>The service is a research preview intended for non-commercial use only, and is subject to the following licenses and terms: <ul> <li><a href="https://github.com/facebookresearch/llama/raw/main/MODEL_CARD.md">Model License</a> of LLaMA. For LLAMA3-VILA checkpoints terms of use, please refer to the <a href="https://llama.meta.com/llama3/license/">LLAMA3 License</a> for additional details.</li> <li><a href="https://openai.com/policies/terms-of-use">Terms of Use</a> of the data generated by OpenAI</li> <li><a href="https://raw.githubusercontent.com/NVlabs/VILA/main/data_prepare/LICENSE">Dataset Licenses</a> for each one used during training.</li> </ul> </li> </ul> <h2>Team</h2> <table> <thead> <tr> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td><a href="https://scholar.google.com/citations?user=OI7zFmwAAAAJ&amp;hl=en">*Yao Lu</a>: Nvidia</td> <td><a href="https://hongxu-yin.github.io/">*Hongxu Yin</a>: Nvidia</td> <td><a href="https://www.linji.me/">*Ji Lin</a>: OpenAI (work done at Nvidia and MIT)</td> </tr> <tr> <td><a href="https://scholar.google.com/citations?user=6gKEYRgAAAAJ&amp;hl=en">Wei Ping</a>: Nvidia</td> <td><a href="https://www.pmolchanov.com/">Pavlo Molchanov</a>: Nvidia</td> <td><a href="https://scholar.google.com/citations?user=Wel9l1wAAAAJ&amp;hl=en">Andrew Tao</a>: Nvidia</td> </tr> <tr> <td><a href="http://kentang.net/">Haotian Tang</a>: MIT</td> <td><a href="https://ys-2020.github.io/">Shang Yang</a>: MIT</td> <td><a href="https://lzhu.me/">Ligeng Zhu</a>: Nvidia, MIT</td> </tr> <tr> <td><a href="https://weichenwang.me/">Wei-Chen Wang</a>: MIT</td> <td><a href="https://xuefuzhao.github.io/">Fuzhao Xue</a>: Nvidia, NUS</td> <td><a href="https://seerkfang.github.io/">Yunhao Fang</a>: Nvidia, UCSD</td> </tr> <tr> <td><a href="https://yukangchen.com/">Yukang Chen</a>: Nvidia, CUHK</td> <td><a href="https://openreview.net/profile?id=~Zhuoyang_Zhang1">Zhuoyang Zhang</a>: Nvidia, Tsinghua Univ.</td> <td><a href="https://www.linkedin.com/in/yue-james-shen/">Yue Shen</a>: Nvidia</td> </tr> <tr> <td><a href="https://scholar.google.com/citations?user=6xFvyJwAAAAJ&amp;hl=en">Wei-Ming Chen</a>: Nvidia</td> <td><a href="https://scholar.google.com/citations?user=r5WezOYAAAAJ&amp;hl=zh-CN">Huizi Mao</a>: Nvidia</td> <td><a href="https://bfshi.github.io/">Baifeng Shi</a>: Nvidia, UC Berkeley</td> </tr> <tr> <td><a href="https://jankautz.com/">Jan Kautz</a>: Nvidia</td> <td><a href="https://scholar.google.com/citations?user=62ElavIAAAAJ&amp;hl=en">Mohammad Shoeybi</a>: Nvidia</td> <td><a href="http://songhan.mit.edu/">Song Han</a>: Nvidia, MIT</td> </tr> </tbody> </table> <h2>Citations</h2> <pre><code>@misc{lin2023vila, title={VILA: On Pre-training for Visual Language Models}, author={Ji Lin and Hongxu Yin and Wei Ping and Yao Lu and Pavlo Molchanov and Andrew Tao and Huizi Mao and Jan Kautz and Mohammad Shoeybi and Song Han}, year={2023}, eprint={2312.07533}, archivePrefix={arXiv}, primaryClass={cs.CV} } </code></pre> <h1>Acknowledgement</h1> <ul> <li><a href="https://github.com/haotian-liu/LLaVA">LLaVA</a>: the codebase we built upon. Thanks for their wonderful work.</li> <li><a href="https://github.com/OpenGVLab/InternVL">InternVL</a>: for open-sourcing InternViT (used in VILA1.5-40b) and the <a href="https://github.com/OpenGVLab/InternVL/tree/main/internvl_chat#prepare-training-datasets">InternVL-SFT</a> data blend (inspired by LLaVA-1.6) used in all VILA1.5 models.</li> <li><a href="https://github.com/lm-sys/FastChat">Vicuna</a>: the amazing open-sourced large language model!</li> <li><a href="https://github.com/mbzuai-oryx/Video-ChatGPT">Video-ChatGPT</a>: we borrowed video evaluation script from this repository.</li> <li><a href="https://github.com/allenai/mmc4">MMC4</a>, <a href="https://github.com/kakaobrain/coyo-dataset">COYO-700M</a>, <a href="https://huggingface.co/datasets/MMInstruction/M3IT">M3IT</a>, <a href="https://huggingface.co/datasets/Open-Orca/FLAN">OpenORCA/FLAN</a>, <a href="https://github.com/InternLM/InternLM-XComposer/tree/main/projects/ShareGPT4V">ShareGPT4V</a>, <a href="https://raw.githubusercontent.com/NVlabs/VILA/main/google-research-datasets/wit">WIT</a>, <a href="https://github.com/OFA-Sys/gsm8k-ScRel/raw/main/data/train_use.jsonl">GSM8K-ScRel</a>, <a href="https://visualgenome.org/api/v0/api_home.html">VisualGenome</a>, <a href="https://visualcommonsense.com/download/">VCR</a>, <a href="https://huggingface.co/datasets/derek-thomas/ScienceQA">ScienceQA</a>, <a href="https://github.com/bytedance/Shot2Story/raw/master/DATA.md">Shot2Story</a>, <a href="http://youcook2.eecs.umich.edu/">Youcook2</a>, <a href="https://eric-xw.github.io/vatex-website/download.html">Vatex</a>, <a href="https://huggingface.co/datasets/ShareGPTVideo/train_video_and_instruction">ShareGPT-Video</a> for providing datasets used in this research.</li> </ul> \ No newline at end of file diff --git a/q%23/daily/index.xml b/q%23/daily/index.xml index d8f11b0f241..fb4a0904796 100644 --- a/q%23/daily/index.xml +++ b/q%23/daily/index.xml @@ -1,7 +1,7 @@ GitHub Q# Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:10Z + 2024-08-22T01:33:24Z Daily Trending of Q# in GitHub \ No newline at end of file diff --git a/q/daily/index.xml b/q/daily/index.xml index 90cfbd2cbac..cad78c2e3f7 100644 --- a/q/daily/index.xml +++ b/q/daily/index.xml @@ -1,7 +1,7 @@ GitHub q Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:10Z + 2024-08-22T01:33:25Z Daily Trending of q in GitHub \ No newline at end of file diff --git a/qmake/daily/index.xml b/qmake/daily/index.xml index 8d6d59bb01c..723c719334e 100644 --- a/qmake/daily/index.xml +++ b/qmake/daily/index.xml @@ -1,7 +1,7 @@ GitHub QMake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:11Z + 2024-08-22T01:33:24Z Daily Trending of QMake in GitHub \ No newline at end of file diff --git a/qml/daily/index.xml b/qml/daily/index.xml index 74c93048dc0..4cf9fbafda0 100644 --- a/qml/daily/index.xml +++ b/qml/daily/index.xml @@ -1,7 +1,7 @@ GitHub QML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:11Z + 2024-08-22T01:33:24Z Daily Trending of QML in GitHub \ No newline at end of file diff --git a/qt-script/daily/index.xml b/qt-script/daily/index.xml index a38a76ebca7..61ab7fa29b4 100644 --- a/qt-script/daily/index.xml +++ b/qt-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Qt Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:12Z + 2024-08-22T01:33:26Z Daily Trending of Qt Script in GitHub \ No newline at end of file diff --git a/quake/daily/index.xml b/quake/daily/index.xml index f7a799d62fc..21a8586ab74 100644 --- a/quake/daily/index.xml +++ b/quake/daily/index.xml @@ -1,7 +1,7 @@ GitHub Quake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:12Z + 2024-08-22T01:33:26Z Daily Trending of Quake in GitHub \ No newline at end of file diff --git a/r/daily/index.xml b/r/daily/index.xml index 0c67cd86eaf..fbf1a512266 100644 --- a/r/daily/index.xml +++ b/r/daily/index.xml @@ -1,7 +1,7 @@ GitHub R Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:14Z + 2024-08-22T01:33:25Z Daily Trending of R in GitHub \ No newline at end of file diff --git a/racket/daily/index.xml b/racket/daily/index.xml index 2bace3f6c74..7ca53a1bd52 100644 --- a/racket/daily/index.xml +++ b/racket/daily/index.xml @@ -1,7 +1,7 @@ GitHub Racket Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:12Z + 2024-08-22T01:33:26Z Daily Trending of Racket in GitHub \ No newline at end of file diff --git a/ragel/daily/index.xml b/ragel/daily/index.xml index 26f3d27a74c..4fdf7a96c16 100644 --- a/ragel/daily/index.xml +++ b/ragel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ragel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:17Z + 2024-08-22T01:33:27Z Daily Trending of Ragel in GitHub \ No newline at end of file diff --git a/raku/daily/index.xml b/raku/daily/index.xml index f73d1703eca..9972f03c2b5 100644 --- a/raku/daily/index.xml +++ b/raku/daily/index.xml @@ -1,7 +1,7 @@ GitHub Raku Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:17Z + 2024-08-22T01:33:27Z Daily Trending of Raku in GitHub \ No newline at end of file diff --git a/raml/daily/index.xml b/raml/daily/index.xml index f33e5e7f652..f9c6ee27119 100644 --- a/raml/daily/index.xml +++ b/raml/daily/index.xml @@ -1,7 +1,7 @@ GitHub RAML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:16Z + 2024-08-22T01:33:27Z Daily Trending of RAML in GitHub \ No newline at end of file diff --git a/rascal/daily/index.xml b/rascal/daily/index.xml index 24c454008c6..2a57c7560b3 100644 --- a/rascal/daily/index.xml +++ b/rascal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rascal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:17Z + 2024-08-22T01:33:28Z Daily Trending of Rascal in GitHub \ No newline at end of file diff --git a/raw-token-data/daily/index.xml b/raw-token-data/daily/index.xml index 522aeeceac0..ef5f22289cc 100644 --- a/raw-token-data/daily/index.xml +++ b/raw-token-data/daily/index.xml @@ -1,7 +1,7 @@ GitHub Raw token data Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:18Z + 2024-08-22T01:33:29Z Daily Trending of Raw token data in GitHub \ No newline at end of file diff --git a/rdoc/daily/index.xml b/rdoc/daily/index.xml index a254569cb96..e705383fce9 100644 --- a/rdoc/daily/index.xml +++ b/rdoc/daily/index.xml @@ -1,7 +1,7 @@ GitHub RDoc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:19Z + 2024-08-22T01:33:29Z Daily Trending of RDoc in GitHub \ No newline at end of file diff --git a/readline-config/daily/index.xml b/readline-config/daily/index.xml index 63d52b5ca02..02b16e7f799 100644 --- a/readline-config/daily/index.xml +++ b/readline-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Readline Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:18Z + 2024-08-22T01:33:28Z Daily Trending of Readline Config in GitHub \ No newline at end of file diff --git a/realbasic/daily/index.xml b/realbasic/daily/index.xml index 4d87802e429..6aad4b04c84 100644 --- a/realbasic/daily/index.xml +++ b/realbasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub REALbasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:21Z + 2024-08-22T01:33:30Z Daily Trending of REALbasic in GitHub \ No newline at end of file diff --git a/reason/daily/index.xml b/reason/daily/index.xml index 9ee4381676a..3759a370307 100644 --- a/reason/daily/index.xml +++ b/reason/daily/index.xml @@ -1,7 +1,7 @@ GitHub Reason Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:20Z + 2024-08-22T01:33:30Z Daily Trending of Reason in GitHub \ No newline at end of file diff --git a/rebol/daily/index.xml b/rebol/daily/index.xml index a228b84b367..3f189bb9d4b 100644 --- a/rebol/daily/index.xml +++ b/rebol/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rebol Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:20Z + 2024-08-22T01:33:30Z Daily Trending of Rebol in GitHub \ No newline at end of file diff --git a/record-jar/daily/index.xml b/record-jar/daily/index.xml index e49fde7fdc7..d66e8376c72 100644 --- a/record-jar/daily/index.xml +++ b/record-jar/daily/index.xml @@ -1,7 +1,7 @@ GitHub Record Jar Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:22Z + 2024-08-22T01:33:32Z Daily Trending of Record Jar in GitHub \ No newline at end of file diff --git a/red/daily/index.xml b/red/daily/index.xml index 91903a199cb..e46d04b4f74 100644 --- a/red/daily/index.xml +++ b/red/daily/index.xml @@ -1,7 +1,7 @@ GitHub Red Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:21Z + 2024-08-22T01:33:31Z Daily Trending of Red in GitHub \ No newline at end of file diff --git a/redcode/daily/index.xml b/redcode/daily/index.xml index 0a8af348735..ece7caf0981 100644 --- a/redcode/daily/index.xml +++ b/redcode/daily/index.xml @@ -1,7 +1,7 @@ GitHub Redcode Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:22Z + 2024-08-22T01:33:31Z Daily Trending of Redcode in GitHub \ No newline at end of file diff --git a/redirect-rules/daily/index.xml b/redirect-rules/daily/index.xml index 45d5f075385..08b60e3ebf0 100644 --- a/redirect-rules/daily/index.xml +++ b/redirect-rules/daily/index.xml @@ -1,7 +1,7 @@ GitHub Redirect Rules Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:22Z + 2024-08-22T01:33:32Z Daily Trending of Redirect Rules in GitHub \ No newline at end of file diff --git a/regular-expression/daily/index.xml b/regular-expression/daily/index.xml index 82d8b85acd0..4542036c899 100644 --- a/regular-expression/daily/index.xml +++ b/regular-expression/daily/index.xml @@ -1,7 +1,7 @@ GitHub Regular Expression Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:23Z + 2024-08-22T01:33:33Z Daily Trending of Regular Expression in GitHub \ No newline at end of file diff --git a/ren'py/daily/index.xml b/ren'py/daily/index.xml index e4f701b8bc1..606de2a1d59 100644 --- a/ren'py/daily/index.xml +++ b/ren'py/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ren'Py Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:24Z + 2024-08-22T01:33:33Z Daily Trending of Ren'Py in GitHub \ No newline at end of file diff --git a/renderscript/daily/index.xml b/renderscript/daily/index.xml index dc2f79c8191..a23fd2617a6 100644 --- a/renderscript/daily/index.xml +++ b/renderscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub RenderScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:23Z + 2024-08-22T01:33:32Z Daily Trending of RenderScript in GitHub \ No newline at end of file diff --git a/rescript/daily/index.xml b/rescript/daily/index.xml index eb262e6a498..0f1e778a690 100644 --- a/rescript/daily/index.xml +++ b/rescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ReScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:23Z + 2024-08-22T01:33:33Z Daily Trending of ReScript in GitHub \ No newline at end of file diff --git a/restructuredtext/daily/index.xml b/restructuredtext/daily/index.xml index 36fdc5b73d1..91c27b3b34a 100644 --- a/restructuredtext/daily/index.xml +++ b/restructuredtext/daily/index.xml @@ -1,7 +1,7 @@ GitHub reStructuredText Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:25Z + 2024-08-22T01:33:34Z Daily Trending of reStructuredText in GitHub \ No newline at end of file diff --git a/rexx/daily/index.xml b/rexx/daily/index.xml index 088d25cb0e0..7c2d3769ff5 100644 --- a/rexx/daily/index.xml +++ b/rexx/daily/index.xml @@ -1,7 +1,7 @@ GitHub REXX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:24Z + 2024-08-22T01:33:35Z Daily Trending of REXX in GitHub \ No newline at end of file diff --git a/rich-text-format/daily/index.xml b/rich-text-format/daily/index.xml index ef7d8d985d4..b3274ac4adb 100644 --- a/rich-text-format/daily/index.xml +++ b/rich-text-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rich Text Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:30Z + 2024-08-22T01:33:35Z Daily Trending of Rich Text Format in GitHub \ No newline at end of file diff --git a/ring/daily/index.xml b/ring/daily/index.xml index 04b176368b4..c345bf86566 100644 --- a/ring/daily/index.xml +++ b/ring/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ring Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:31Z + 2024-08-22T01:33:37Z Daily Trending of Ring in GitHub \ No newline at end of file diff --git a/riot/daily/index.xml b/riot/daily/index.xml index f6e166f67bf..c41e365d1c7 100644 --- a/riot/daily/index.xml +++ b/riot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Riot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:31Z + 2024-08-22T01:33:36Z Daily Trending of Riot in GitHub \ No newline at end of file diff --git a/rmarkdown/daily/index.xml b/rmarkdown/daily/index.xml index fb5084aa17a..5c77fab53cf 100644 --- a/rmarkdown/daily/index.xml +++ b/rmarkdown/daily/index.xml @@ -1,7 +1,7 @@ GitHub RMarkdown Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:30Z + 2024-08-22T01:33:36Z Daily Trending of RMarkdown in GitHub \ No newline at end of file diff --git a/robotframework/daily/index.xml b/robotframework/daily/index.xml index c91a7218576..9d01d936ca0 100644 --- a/robotframework/daily/index.xml +++ b/robotframework/daily/index.xml @@ -1,7 +1,7 @@ GitHub RobotFramework Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:31Z + 2024-08-22T01:33:36Z Daily Trending of RobotFramework in GitHub \ No newline at end of file diff --git a/robots.txt/daily/index.xml b/robots.txt/daily/index.xml index 6d87e2abd1f..6c1aedc869d 100644 --- a/robots.txt/daily/index.xml +++ b/robots.txt/daily/index.xml @@ -1,7 +1,7 @@ GitHub robots.txt Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:32Z + 2024-08-22T01:33:37Z Daily Trending of robots.txt in GitHub \ No newline at end of file diff --git a/roff-manpage/daily/index.xml b/roff-manpage/daily/index.xml index 4bfbdac700c..657d5c0961a 100644 --- a/roff-manpage/daily/index.xml +++ b/roff-manpage/daily/index.xml @@ -1,7 +1,7 @@ GitHub Roff Manpage Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:33Z + 2024-08-22T01:33:38Z Daily Trending of Roff Manpage in GitHub \ No newline at end of file diff --git a/roff/daily/index.xml b/roff/daily/index.xml index 3126cd0440d..9e8eba58567 100644 --- a/roff/daily/index.xml +++ b/roff/daily/index.xml @@ -1,7 +1,7 @@ GitHub Roff Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:33Z + 2024-08-22T01:33:38Z Daily Trending of Roff in GitHub \ No newline at end of file diff --git a/rouge/daily/index.xml b/rouge/daily/index.xml index 71c0122f086..be2d91e6fec 100644 --- a/rouge/daily/index.xml +++ b/rouge/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rouge Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:35Z + 2024-08-22T01:33:40Z Daily Trending of Rouge in GitHub \ No newline at end of file diff --git a/rpc/daily/index.xml b/rpc/daily/index.xml index 555524e6783..0187cf85510 100644 --- a/rpc/daily/index.xml +++ b/rpc/daily/index.xml @@ -1,7 +1,7 @@ GitHub RPC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:34Z + 2024-08-22T01:33:39Z Daily Trending of RPC in GitHub \ No newline at end of file diff --git a/rpgle/daily/index.xml b/rpgle/daily/index.xml index b36ba401c6d..c56dfc770ed 100644 --- a/rpgle/daily/index.xml +++ b/rpgle/daily/index.xml @@ -1,7 +1,7 @@ GitHub RPGLE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:34Z + 2024-08-22T01:33:39Z Daily Trending of RPGLE in GitHub \ No newline at end of file diff --git a/rpm-spec/daily/index.xml b/rpm-spec/daily/index.xml index f98e0c345d5..e44f3b6d057 100644 --- a/rpm-spec/daily/index.xml +++ b/rpm-spec/daily/index.xml @@ -1,7 +1,7 @@ GitHub RPM Spec Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:36Z + 2024-08-22T01:33:41Z Daily Trending of RPM Spec in GitHub \ No newline at end of file diff --git a/ruby/daily/index.xml b/ruby/daily/index.xml index 3c04d996b19..273e56febca 100644 --- a/ruby/daily/index.xml +++ b/ruby/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ruby Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:40Z + 2024-08-22T01:33:45Z Daily Trending of Ruby in GitHub \ No newline at end of file diff --git a/runoff/daily/index.xml b/runoff/daily/index.xml index 4bf2ad40a73..bc0aa14d911 100644 --- a/runoff/daily/index.xml +++ b/runoff/daily/index.xml @@ -1,7 +1,7 @@ GitHub RUNOFF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:35Z + 2024-08-22T01:33:40Z Daily Trending of RUNOFF in GitHub \ No newline at end of file diff --git a/rust/daily/index.xml b/rust/daily/index.xml index 5b2811ce67e..ca98327bebc 100644 --- a/rust/daily/index.xml +++ b/rust/daily/index.xml @@ -1,7 +1,14 @@ GitHub Rust Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:38Z + 2024-08-22T01:33:42Z Daily Trending of Rust in GitHub + + firstbatchxyz/dkn-compute-node + 2024-08-22T01:33:42Z + tag:github.com,2024-08-22:/firstbatchxyz/dkn-compute-node + + <p>Compute Node of Dria Knowledge Network.</p><hr><p align="center"> <img src="https://raw.githubusercontent.com/firstbatchxyz/dria-js-client/master/logo.svg?sanitize=true" alt="logo" width="142"> </p> <p align="center"> </p> <h1 align="center"> Dria Compute Node </h1> <p align="center"> <i>Dria Compute Node serves the computation results within Dria Knowledge Network.</i> </p> <p></p> <p align="center"> <a href="https://opensource.org/license/apache-2-0" target="_blank"> <img alt="License: Apache-2.0" src="https://img.shields.io/badge/license-Apache%202.0-7CB9E8.svg?sanitize=true"> </a> <a href="https://raw.githubusercontent.com/firstbatchxyz/dkn-compute-node/master/.github/workflows/test.yml" target="_blank"> <img alt="Workflow: Tests" src="https://github.com/firstbatchxyz/dkn-compute-node/actions/workflows/tests.yml/badge.svg?branch=master"> </a> <a href="https://hub.docker.com/repository/docker/firstbatch/dkn-compute-node/general" target="_blank"> <img alt="Docker Version" src="https://img.shields.io/docker/v/firstbatch/dkn-compute-node?logo=Docker&amp;label=image&amp;color=2496ED&amp;sort=semver"> </a> <a href="https://discord.gg/dria" target="_blank"> <img alt="Discord" src="https://dcbadge.vercel.app/api/server/dria?style=flat"> </a> </p> <h2>About</h2> <p>A <strong>Dria Compute Node</strong> is a unit of computation within the Dria Knowledge Network. It's purpose is to process tasks given by the <strong>Dria Admin Node</strong>, and receive rewards for providing correct results.</p> <p>To get started, <a href="https://raw.githubusercontent.com/firstbatchxyz/dkn-compute-node/master/#setup">setup</a> your envrionment and then see <a href="https://raw.githubusercontent.com/firstbatchxyz/dkn-compute-node/master/#usage">usage</a> to run the node.</p> <h3>Tasks</h3> <p>Compute nodes can technically do any arbitrary task, from computing the square root of a given number to finding LLM outputs from a given prompt, or validating an LLM's output with respect to knowledge available on the web accessed via tools.</p> <ul> <li> <p><strong>Ping/Pong</strong>: Dria Admin Node broadcasts <strong>ping</strong> messages at a set interval, it is a required duty of the compute node to respond with a <strong>pong</strong> to these so that they can be included in the list of available nodes for task assignment. These tasks will respect the type of model provided within the pong message, e.g. if a task requires <code>gpt-4o</code> and you are running <code>phi3</code>, you won't be selected for that task.</p> </li> <li> <p><strong>Workflows</strong>: Each task is given in the form of a workflow, based on <a href="https://github.com/andthattoo/ollama-workflows">Ollama Workflows</a> (see repository for more information). In simple terms, each workflow defines the agentic behavior of an LLM, all captured in a single JSON file, and can represent things ranging from simple LLM generations to iterative web searching.</p> </li> </ul> <h2>Requirements</h2> <p>The compute node is a very lightweight process, with few MBs of memory usage along with an image size of less than ~65MBs. If you are using Ollama, you will need the memory to run large models locally, which depend on the model's size that you are willing to.</p> <p>You need the following applications to run compute node:</p> <ul> <li><strong>Git</strong>: We will use <code>git</code> to clone the repository from GitHub, and pull latest changes for updates later.</li> <li><strong>Docker</strong>: Our services will make use of Docker so that the node can run on any machine.</li> </ul> <blockquote> <p>[!TIP]</p> <p>You can check if you have these via:</p> <pre><code class="language-sh">which git which docker </code></pre> </blockquote> <h2>Setup</h2> <p>To be able to run a node, we need to make a few simple preparations. Follow the steps below one by one.</p> <h3>1. Clone the repository</h3> <p>This repository has the necessary setup to run the node, so start by cloning it using the command below:</p> <pre><code class="language-bash">git clone https://github.com/firstbatchxyz/dkn-compute-node cd dkn-compute-node </code></pre> <h3>2. Prepare Environment Variables</h3> <p>Dria Compute Node makes use of several environment variables. Create a <code>.env</code> file, and copy the environment variables as given in <a href="https://raw.githubusercontent.com/firstbatchxyz/dkn-compute-node/master/.env.example">.env.example</a>. We will fill out the missing parts in a moment.</p> <pre><code class="language-sh">cp .env.example .env </code></pre> <blockquote> <p>[!NOTE]</p> <p><code>DKN_ADMIN_PUBLIC_KEY</code> is used to verify that the tasks are given by certain nodes, so that your node does not work for tasks given to the network by untrusted people. You don't need to change this, simply copy and paste it to your <code>.env</code>.</p> </blockquote> <blockquote> <p>[!TIP]</p> <p>While adding anything to your <code>.env</code>, you can do it without leaving the terminal. For example, suppose you want to set <code>VALUE</code> to some <code>KEY</code>, you can do it as:</p> <pre><code class="language-sh">echo "KEY=VALUE" &gt;&gt; .env </code></pre> <p>If you would like to view the <code>.env</code> without leaving the terminal, you can do:</p> <pre><code class="language-sh">cat .env </code></pre> </blockquote> <h3>3. Prepare Ethereum Wallet</h3> <p>Dria makes use of the same Ethereum wallet, that is the recipient of your hard-earned rewards! Place your private key at <code>DKN_WALLET_SECRET_KEY</code> in <code>.env</code> without the 0x prefix. It should look something like:</p> <pre><code class="language-sh">DKN_WALLET_SECRET_KEY=ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 </code></pre> <blockquote> <p>[!CAUTION]</p> <p>Always make sure your private key is within the .gitignore'd <code>.env</code> file, nowhere else! To be even safer, you can use a throwaway wallet, you can always transfer your rewards to a main wallet afterwards.</p> </blockquote> <h3>4. Setup LLM Provider</h3> <p>For the final step, we need to make sure we can serve LLM requests.</p> <h4>For OpenAI</h4> <p>If you will be using OpenAI to serve its models, you need to have an API key in the environment. Simply set the key within your <code>.env</code>:</p> <pre><code class="language-sh">OPENAI_API_KEY=&lt;YOUR_KEY&gt; </code></pre> <h4>For Ollama</h4> <p>Of course, first you have to install Ollama; see their <a href="https://ollama.com/download">download page</a>. Then, you must <strong>first pull a small embedding model that is used internally</strong>.</p> <pre><code class="language-sh">ollama pull hellord/mxbai-embed-large-v1:f16 </code></pre> <p>For the models that you choose (see list of models just below <a href="https://raw.githubusercontent.com/firstbatchxyz/dkn-compute-node/master/#1-choose-models">here</a>) you can download them with same command. Note that if your model size is large, pulling them may take a while.</p> <pre><code class="language-sh"># example for phi3:3.8b ollama pull phi3:3.8b </code></pre> <blockquote> <p>[!TIP]</p> <p>Alternatively, you can set <code>OLLAMA_AUTO_PULL=true</code> in the <code>.env</code> so that the compute node will always download the missing models for you.</p> </blockquote> <h4>Optional Services</h4> <p>Based on presence of API keys, <a href="https://github.com/andthattoo/ollama-workflows/">Ollama Workflows</a> may use more superior services instead of free alternatives, e.g. <a href="https://serper.dev/">Serper</a> instead of <a href="https://duckduckgo.com/">DuckDuckGo</a> or <a href="https://jina.ai/">Jina</a> without rate-limit instead of with rate-limit. Add these within your <code>.env</code> as:</p> <pre><code class="language-sh">SERPER_API_KEY=&lt;key-here&gt; JINA_API_KEY=&lt;key-here&gt; </code></pre> <h2>Usage</h2> <p>With all setup steps above completed, we are ready to start a node!</p> <h3>1. Choose Model(s)</h3> <p>Based on the resources of your machine, you must decide which models that you will be running locally. For example, you can use OpenAI with their models, not running anything locally at all; or you can use Ollama with several models loaded to disk, and only one loaded to memory during its respective task. Available models (see <a href="https://github.com/andthattoo/ollama-workflows/raw/main/src/program/atomics.rs#L269">here</a> for latest) are:</p> <h4>Ollama Models</h4> <ul> <li><code>adrienbrault/nous-hermes2theta-llama3-8b:q8_0</code></li> <li><code>phi3:14b-medium-4k-instruct-q4_1</code></li> <li><code>phi3:14b-medium-128k-instruct-q4_1</code></li> <li><code>phi3:3.8b</code></li> <li><code>llama3.1:latest</code></li> </ul> <h4>OpenAI Models</h4> <ul> <li><code>gpt-3.5-turbo</code></li> <li><code>gpt-4-turbo</code></li> <li><code>gpt-4o</code></li> <li><code>gpt-4o-mini</code></li> </ul> <blockquote> <p>[!TIP]</p> <p>If you are using Ollama, make sure you have pulled the required models, as specified in the <a href="https://raw.githubusercontent.com/firstbatchxyz/dkn-compute-node/master/#4-setup-ollama-for-ollama-users">section above</a>!</p> </blockquote> <h3>2. Start Docker</h3> <p>Our node will be running within a Docker container, so we should make sure that Docker is running before the next step. You can launch Docker via its <a href="https://www.docker.com/products/docker-desktop/">desktop application</a>, or a command such as:</p> <pre><code class="language-sh">sudo systemctl start docker </code></pre> <blockquote> <p>[!NOTE]</p> <p>You don't need to do this step if Docker is already running in the background.</p> </blockquote> <h3>3. Run Node</h3> <p>It's time to run our compute node. We have a starter script that makes this much easier, you can see available commadns with:</p> <p>See the available commands with:</p> <pre><code class="language-sh">chmod +x start.sh ./start.sh --help </code></pre> <p>Simply run the script with the model names provided, such as:</p> <pre><code class="language-sh">./start.sh -m=llama3.1:latest -m=gpt-3.5-turbo </code></pre> <p>Start script will run the containers in the background. You can check their logs either via the terminal or from <a href="https://www.docker.com/products/docker-desktop/">Docker Desktop</a>.</p> <h4>Running in Debug Mode</h4> <p>To print DEBUG-level logs for the compute node, you can add <code>--dev</code> argument to the start script. For example:</p> <pre><code class="language-sh">./start.sh -m=gpt-4o-mini --dev </code></pre> <p>Running in debug mode will also allow you to see behind the scenes of Ollama Workflows, i.e. you can see the reasoning of the LLM as it executes the task.</p> <blockquote> <p>Similarly, you can run in trace mode with <code>--trace</code> to see trace logs, which cover low-level logs from the p2p client.</p> </blockquote> <h3>4. Looking at Logs</h3> <p>To see your logs, you can go to <a href="https://www.docker.com/products/docker-desktop/">Docker Desktop</a> and see the running containers and find <code>dkn-compute-node</code>. There, open the containers within the compose (click on <code>&gt;</code> to the left) and click on any of the container to see its logs.</p> <p>Alternatively, you can use <code>docker compose logs</code> such as below:</p> <pre><code class="language-sh">docker compose logs -f compute # compute node logs docker compose logs -f ollama # ollama logs </code></pre> <p>The <code>-f</code> option is so that you can track the logs from terminal. If you prefer to simply check the latest logs, you can use a command such as:</p> <pre><code class="language-sh"># logs from last 1 hour docker compose logs --since=1h compute # logs from last 30 minutes docker compose logs --since=30m compute </code></pre> <h3>5. Stopping the Node</h3> <p>When you start your node with <code>./start.sh</code>, it will wait for you in the same terminal to do CTRL+C before stopping. Once you do that, the containers will be stopped and removed. You can also kill the containers manually, doing CTRL+C afterwards will do nothing in such a case.</p> <blockquote> <p>[!NOTE]</p> <p>Sometimes it may not immediately exit whilst executing a task, if you REALLY need to quite the process you can kill it manually.</p> </blockquote> <h3>Using Ollama</h3> <blockquote> <p>If you don't have Ollama installed, you can ignore this section.</p> </blockquote> <p>If you have Ollama installed already (e.g. via <code>brew install ollama</code>) then you must indicate that you will be using that Ollama, instead of a Docker container. To do this, we set the provide the argument <code>--local-ollama=true</code> which is <code>true</code> by default. With this, the compute node will use the Ollama server on your machine, instead of a Docker container.</p> <p>If the Ollama server is not running, the start script will initiate it with <code>ollama serve</code> and terminate it when the node is being stopped.</p> <ul> <li>If <code>--local-ollama=false</code> or the local Ollama server is reachable, the compute node will use a Docker Compose service for it.</li> </ul> <blockquote> <p>[!TIP]</p> <p>There are three Docker Compose Ollama options: <code>ollama-cpu</code>, <code>ollama-cuda</code>, and <code>ollama-rocm</code>. The start script will decide which option to use based on the host machine's GPU specifications.</p> </blockquote> <pre><code class="language-sh"># Run with local ollama ./start.sh -m=phi3 --local-ollama=true </code></pre> <h3>Additional Static Nodes</h3> <p>You can add additional relay nodes &amp; bootstrap nodes from environment, using the <code>DKN_RELAY_NODES</code> and <code>DKN_BOOTSTRAP_NODES</code> variables respectively. Simply write the <code>Multiaddr</code> string of the static nodes as comma-separated values, and the compute node will pick them up at the start.</p> <h2>Releases</h2> <p>We have 3 types of releases:</p> <ul> <li><strong>Versioned</strong>: With each release, a versioned image is deployed on Docker hub with the version tag <code>:vX.X.X</code>.</li> <li><strong>Latest</strong>: As usual, the latest version is kept under <code>:latest</code> tag.</li> <li><strong>Development</strong>: On each push to <code>master</code>, a new image is created with <code>:unstable</code>.</li> </ul> <p>See deployed images on <a href="https://hub.docker.com/orgs/firstbatch/members">Docker Hub</a>.</p> <h2>Development</h2> <blockquote> <p>If you have a feature that you would like to add with respect to its respective issue, or a bug fix, feel free to fork &amp; create a PR!</p> </blockquote> <p>If you would like to run the node from source (which is really handy during development), you can use our shorthand scripts within the Makefile. You can see the available commands with:</p> <pre><code class="language-sh">make help </code></pre> <p>You will need OpenSSL installed as well, see shorthand commands <a href="https://github.com/sfackler/rust-openssl/issues/855#issuecomment-450057552">here</a>. While running Ollama elsewhere (if you are using it) or with an OpenAI API key provided, you can run the compute node with:</p> <pre><code class="language-sh">make run # info-level logs make debug # debug-level logs </code></pre> <h3>Testing &amp; Benchmarking</h3> <p>You can the tests as follows:</p> <pre><code class="language-sh">make test # unit tests make test-ollama # Ollama tests (requires a running Ollama client) </code></pre> <p>To measure the speed of some Ollama models we have a benchmark that uses some models for a few prompts:</p> <pre><code class="language-sh">cargo run --release --example ollama </code></pre> <p>You can also benchmark these models using a larger task list at a given path, with the following command:</p> <pre><code class="language-sh">JSON_PATH="./path/to/your.json" cargo run --release --example ollama </code></pre> <h3>Documentation</h3> <p>Open crate docs using:</p> <pre><code class="language-sh">make docs </code></pre> <h3>Styling</h3> <p>Lint and format with:</p> <pre><code class="language-sh">make lint # clippy make format # rustfmt </code></pre> <h3>Profiling</h3> <p>To create a flamegraph of the application, do:</p> <pre><code class="language-sh">make profile </code></pre> <p>This will create a profiling build that inherits <code>release</code> mode, except with debug information.</p> <blockquote> <p>[!NOTE]</p> <p>Profiling requires superuser access.</p> </blockquote> <h2>License</h2> <p>This project is licensed under the <a href="https://opensource.org/license/Apache-2.0">Apache License 2.0</a>.</p> + \ No newline at end of file diff --git a/sage/daily/index.xml b/sage/daily/index.xml index a834be4b703..3b05d8d73df 100644 --- a/sage/daily/index.xml +++ b/sage/daily/index.xml @@ -1,7 +1,7 @@ GitHub Sage Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:45Z + 2024-08-22T01:33:49Z Daily Trending of Sage in GitHub \ No newline at end of file diff --git a/saltstack/daily/index.xml b/saltstack/daily/index.xml index 7c1afc07f92..69e5785b3e7 100644 --- a/saltstack/daily/index.xml +++ b/saltstack/daily/index.xml @@ -1,7 +1,7 @@ GitHub SaltStack Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:45Z + 2024-08-22T01:33:50Z Daily Trending of SaltStack in GitHub \ No newline at end of file diff --git a/sas/daily/index.xml b/sas/daily/index.xml index 97af50419f4..3893d143838 100644 --- a/sas/daily/index.xml +++ b/sas/daily/index.xml @@ -1,7 +1,7 @@ GitHub SAS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:46Z + 2024-08-22T01:33:49Z Daily Trending of SAS in GitHub \ No newline at end of file diff --git a/sass/daily/index.xml b/sass/daily/index.xml index 98f27bc10e4..1114bd862e2 100644 --- a/sass/daily/index.xml +++ b/sass/daily/index.xml @@ -1,7 +1,7 @@ GitHub Sass Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:46Z + 2024-08-22T01:33:50Z Daily Trending of Sass in GitHub \ No newline at end of file diff --git a/scala/daily/index.xml b/scala/daily/index.xml index 4b26a9e82e2..540307a3879 100644 --- a/scala/daily/index.xml +++ b/scala/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scala Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:49Z + 2024-08-22T01:33:53Z Daily Trending of Scala in GitHub \ No newline at end of file diff --git a/scaml/daily/index.xml b/scaml/daily/index.xml index 6c84e5eb8ef..36c966275ff 100644 --- a/scaml/daily/index.xml +++ b/scaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scaml Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:47Z + 2024-08-22T01:33:51Z Daily Trending of Scaml in GitHub \ No newline at end of file diff --git a/scheme/daily/index.xml b/scheme/daily/index.xml index 955bd657440..7fe9cc03b0a 100644 --- a/scheme/daily/index.xml +++ b/scheme/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scheme Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:47Z + 2024-08-22T01:33:51Z Daily Trending of Scheme in GitHub \ No newline at end of file diff --git a/scilab/daily/index.xml b/scilab/daily/index.xml index 1ae7c76d883..602c3823392 100644 --- a/scilab/daily/index.xml +++ b/scilab/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scilab Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:52Z + 2024-08-22T01:33:57Z Daily Trending of Scilab in GitHub \ No newline at end of file diff --git a/scss/daily/index.xml b/scss/daily/index.xml index 80fc6d328f5..d10c3c2dafa 100644 --- a/scss/daily/index.xml +++ b/scss/daily/index.xml @@ -1,7 +1,7 @@ GitHub SCSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:53Z + 2024-08-22T01:33:58Z Daily Trending of SCSS in GitHub \ No newline at end of file diff --git a/sed/daily/index.xml b/sed/daily/index.xml index e182434a735..3255d3855ec 100644 --- a/sed/daily/index.xml +++ b/sed/daily/index.xml @@ -1,7 +1,7 @@ GitHub sed Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:52Z + 2024-08-22T01:33:56Z Daily Trending of sed in GitHub \ No newline at end of file diff --git a/self/daily/index.xml b/self/daily/index.xml index 3ba5ac21d39..694b4df183e 100644 --- a/self/daily/index.xml +++ b/self/daily/index.xml @@ -1,7 +1,7 @@ GitHub Self Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:52Z + 2024-08-22T01:33:57Z Daily Trending of Self in GitHub \ No newline at end of file diff --git a/selinux-policy/daily/index.xml b/selinux-policy/daily/index.xml index 2aa7774bf6f..793ebb7359d 100644 --- a/selinux-policy/daily/index.xml +++ b/selinux-policy/daily/index.xml @@ -1,7 +1,7 @@ GitHub SELinux Policy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:54Z + 2024-08-22T01:33:58Z Daily Trending of SELinux Policy in GitHub \ No newline at end of file diff --git a/shaderlab/daily/index.xml b/shaderlab/daily/index.xml index af0b8f7c73f..dd50c427c34 100644 --- a/shaderlab/daily/index.xml +++ b/shaderlab/daily/index.xml @@ -1,7 +1,7 @@ GitHub ShaderLab Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:54Z + 2024-08-22T01:33:59Z Daily Trending of ShaderLab in GitHub \ No newline at end of file diff --git a/shell/daily/index.xml b/shell/daily/index.xml index b5c4f780ca4..5ca96e9d9ea 100644 --- a/shell/daily/index.xml +++ b/shell/daily/index.xml @@ -1,7 +1,7 @@ GitHub Shell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:56Z + 2024-08-22T01:34:01Z Daily Trending of Shell in GitHub \ No newline at end of file diff --git a/shellcheck-config/daily/index.xml b/shellcheck-config/daily/index.xml index 1f54669399e..7e5f4382983 100644 --- a/shellcheck-config/daily/index.xml +++ b/shellcheck-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub ShellCheck Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:33:54Z + 2024-08-22T01:33:59Z Daily Trending of ShellCheck Config in GitHub \ No newline at end of file diff --git a/shellsession/daily/index.xml b/shellsession/daily/index.xml index 74fb13c4d9c..f1c5a5bbbb1 100644 --- a/shellsession/daily/index.xml +++ b/shellsession/daily/index.xml @@ -1,7 +1,7 @@ GitHub ShellSession Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:02Z + 2024-08-22T01:34:07Z Daily Trending of ShellSession in GitHub \ No newline at end of file diff --git a/shen/daily/index.xml b/shen/daily/index.xml index 28fabcec36b..57dc31a2831 100644 --- a/shen/daily/index.xml +++ b/shen/daily/index.xml @@ -1,7 +1,7 @@ GitHub Shen Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:02Z + 2024-08-22T01:34:08Z Daily Trending of Shen in GitHub \ No newline at end of file diff --git a/sieve/daily/index.xml b/sieve/daily/index.xml index 1c114424c0a..c2f9432fce6 100644 --- a/sieve/daily/index.xml +++ b/sieve/daily/index.xml @@ -1,7 +1,7 @@ GitHub Sieve Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:01Z + 2024-08-22T01:34:07Z Daily Trending of Sieve in GitHub \ No newline at end of file diff --git a/singularity/daily/index.xml b/singularity/daily/index.xml index 4673e4959b6..93d9e10f92e 100644 --- a/singularity/daily/index.xml +++ b/singularity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Singularity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:03Z + 2024-08-22T01:34:09Z Daily Trending of Singularity in GitHub \ No newline at end of file diff --git a/slash/daily/index.xml b/slash/daily/index.xml index 0f11bff6e0f..d7c66caddd6 100644 --- a/slash/daily/index.xml +++ b/slash/daily/index.xml @@ -1,7 +1,7 @@ GitHub Slash Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:03Z + 2024-08-22T01:34:09Z Daily Trending of Slash in GitHub \ No newline at end of file diff --git a/slice/daily/index.xml b/slice/daily/index.xml index c2eaed2c5c2..b9fc53f694d 100644 --- a/slice/daily/index.xml +++ b/slice/daily/index.xml @@ -1,7 +1,7 @@ GitHub Slice Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:03Z + 2024-08-22T01:34:09Z Daily Trending of Slice in GitHub \ No newline at end of file diff --git a/slim/daily/index.xml b/slim/daily/index.xml index 46e8bb6d61e..b193628a92b 100644 --- a/slim/daily/index.xml +++ b/slim/daily/index.xml @@ -1,7 +1,7 @@ GitHub Slim Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:04Z + 2024-08-22T01:34:08Z Daily Trending of Slim in GitHub \ No newline at end of file diff --git a/smali/daily/index.xml b/smali/daily/index.xml index 210b21b9eee..8848bac86d3 100644 --- a/smali/daily/index.xml +++ b/smali/daily/index.xml @@ -1,7 +1,7 @@ GitHub Smali Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:05Z + 2024-08-22T01:34:10Z Daily Trending of Smali in GitHub \ No newline at end of file diff --git a/smalltalk/daily/index.xml b/smalltalk/daily/index.xml index d7353f8d643..19a4b6b544c 100644 --- a/smalltalk/daily/index.xml +++ b/smalltalk/daily/index.xml @@ -1,7 +1,7 @@ GitHub Smalltalk Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:05Z + 2024-08-22T01:34:10Z Daily Trending of Smalltalk in GitHub \ No newline at end of file diff --git a/smarty/daily/index.xml b/smarty/daily/index.xml index 440a6e5074d..2b3f7e44dc0 100644 --- a/smarty/daily/index.xml +++ b/smarty/daily/index.xml @@ -1,7 +1,7 @@ GitHub Smarty Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:06Z + 2024-08-22T01:34:11Z Daily Trending of Smarty in GitHub \ No newline at end of file diff --git a/smpl/daily/index.xml b/smpl/daily/index.xml index 7674ed6cc31..c6132cb03d3 100644 --- a/smpl/daily/index.xml +++ b/smpl/daily/index.xml @@ -1,7 +1,7 @@ GitHub SmPL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:07Z + 2024-08-22T01:34:12Z Daily Trending of SmPL in GitHub \ No newline at end of file diff --git a/smt/daily/index.xml b/smt/daily/index.xml index def0c677ff6..aecb4c0fd67 100644 --- a/smt/daily/index.xml +++ b/smt/daily/index.xml @@ -1,7 +1,7 @@ GitHub SMT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:08Z + 2024-08-22T01:34:12Z Daily Trending of SMT in GitHub \ No newline at end of file diff --git a/solidity/daily/index.xml b/solidity/daily/index.xml index ce53a2c9d71..200c680056f 100644 --- a/solidity/daily/index.xml +++ b/solidity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Solidity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:10Z + 2024-08-22T01:34:15Z Daily Trending of Solidity in GitHub \ No newline at end of file diff --git a/soong/daily/index.xml b/soong/daily/index.xml index c97c4e00c84..34419c11640 100644 --- a/soong/daily/index.xml +++ b/soong/daily/index.xml @@ -1,7 +1,7 @@ GitHub Soong Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:08Z + 2024-08-22T01:34:13Z Daily Trending of Soong in GitHub \ No newline at end of file diff --git a/sourcepawn/daily/index.xml b/sourcepawn/daily/index.xml index 095d7b8cb4b..87c3b643c7c 100644 --- a/sourcepawn/daily/index.xml +++ b/sourcepawn/daily/index.xml @@ -1,7 +1,7 @@ GitHub SourcePawn Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:09Z + 2024-08-22T01:34:14Z Daily Trending of SourcePawn in GitHub \ No newline at end of file diff --git a/sparql/daily/index.xml b/sparql/daily/index.xml index 535bae9dba6..5e187e1f90d 100644 --- a/sparql/daily/index.xml +++ b/sparql/daily/index.xml @@ -1,7 +1,7 @@ GitHub SPARQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:09Z + 2024-08-22T01:34:14Z Daily Trending of SPARQL in GitHub \ No newline at end of file diff --git a/spline-font-database/daily/index.xml b/spline-font-database/daily/index.xml index 496680e11d8..3fcefe7c7b4 100644 --- a/spline-font-database/daily/index.xml +++ b/spline-font-database/daily/index.xml @@ -1,7 +1,7 @@ GitHub Spline Font Database Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:10Z + 2024-08-22T01:34:16Z Daily Trending of Spline Font Database in GitHub \ No newline at end of file diff --git a/sqf/daily/index.xml b/sqf/daily/index.xml index 0790ac188e3..56a4f100343 100644 --- a/sqf/daily/index.xml +++ b/sqf/daily/index.xml @@ -1,7 +1,7 @@ GitHub SQF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:11Z + 2024-08-22T01:34:16Z Daily Trending of SQF in GitHub \ No newline at end of file diff --git a/sql/daily/index.xml b/sql/daily/index.xml index 2b1df9ec729..91556ff9ff8 100644 --- a/sql/daily/index.xml +++ b/sql/daily/index.xml @@ -1,7 +1,7 @@ GitHub SQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:11Z + 2024-08-22T01:34:17Z Daily Trending of SQL in GitHub \ No newline at end of file diff --git a/sqlpl/daily/index.xml b/sqlpl/daily/index.xml index c8295edb6db..0636e08b111 100644 --- a/sqlpl/daily/index.xml +++ b/sqlpl/daily/index.xml @@ -1,7 +1,7 @@ GitHub SQLPL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:11Z + 2024-08-22T01:34:16Z Daily Trending of SQLPL in GitHub \ No newline at end of file diff --git a/squirrel/daily/index.xml b/squirrel/daily/index.xml index 5c5650d9c2c..0891e378d35 100644 --- a/squirrel/daily/index.xml +++ b/squirrel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Squirrel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:12Z + 2024-08-22T01:34:17Z Daily Trending of Squirrel in GitHub \ No newline at end of file diff --git a/srecode-template/daily/index.xml b/srecode-template/daily/index.xml index b55c63c659c..7794674b9a3 100644 --- a/srecode-template/daily/index.xml +++ b/srecode-template/daily/index.xml @@ -1,7 +1,7 @@ GitHub SRecode Template Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:12Z + 2024-08-22T01:34:18Z Daily Trending of SRecode Template in GitHub \ No newline at end of file diff --git a/ssh-config/daily/index.xml b/ssh-config/daily/index.xml index 11899e1f7e3..d4149999136 100644 --- a/ssh-config/daily/index.xml +++ b/ssh-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub SSH Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:12Z + 2024-08-22T01:34:18Z Daily Trending of SSH Config in GitHub \ No newline at end of file diff --git a/stan/daily/index.xml b/stan/daily/index.xml index e2771205f98..569b9a4dc49 100644 --- a/stan/daily/index.xml +++ b/stan/daily/index.xml @@ -1,7 +1,7 @@ GitHub Stan Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:13Z + 2024-08-22T01:34:18Z Daily Trending of Stan in GitHub \ No newline at end of file diff --git a/standard-ml/daily/index.xml b/standard-ml/daily/index.xml index 6d51179b072..422e21be1d6 100644 --- a/standard-ml/daily/index.xml +++ b/standard-ml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Standard ML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:14Z + 2024-08-22T01:34:19Z Daily Trending of Standard ML in GitHub \ No newline at end of file diff --git a/starlark/daily/index.xml b/starlark/daily/index.xml index 7b026b33ee7..3cf7e4b08a4 100644 --- a/starlark/daily/index.xml +++ b/starlark/daily/index.xml @@ -1,14 +1,7 @@ GitHub Starlark Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:15Z + 2024-08-22T01:34:21Z Daily Trending of Starlark in GitHub - - bazel-contrib/rules_nodejs - 2024-08-21T01:34:15Z - tag:github.com,2024-08-21:/bazel-contrib/rules_nodejs - - <p>NodeJS toolchain for Bazel.</p><hr> - \ No newline at end of file diff --git a/stata/daily/index.xml b/stata/daily/index.xml index 3995838068e..3886e2e081a 100644 --- a/stata/daily/index.xml +++ b/stata/daily/index.xml @@ -1,7 +1,7 @@ GitHub Stata Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:14Z + 2024-08-22T01:34:19Z Daily Trending of Stata in GitHub \ No newline at end of file diff --git a/ston/daily/index.xml b/ston/daily/index.xml index ed8a4e6f2c1..1b4d03eb866 100644 --- a/ston/daily/index.xml +++ b/ston/daily/index.xml @@ -1,7 +1,7 @@ GitHub STON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:16Z + 2024-08-22T01:34:22Z Daily Trending of STON in GitHub \ No newline at end of file diff --git a/stringtemplate/daily/index.xml b/stringtemplate/daily/index.xml index c22df2aa257..27ff55432ef 100644 --- a/stringtemplate/daily/index.xml +++ b/stringtemplate/daily/index.xml @@ -1,7 +1,7 @@ GitHub StringTemplate Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:16Z + 2024-08-22T01:34:22Z Daily Trending of StringTemplate in GitHub \ No newline at end of file diff --git a/stylus/daily/index.xml b/stylus/daily/index.xml index 23b62aa3265..429389fa435 100644 --- a/stylus/daily/index.xml +++ b/stylus/daily/index.xml @@ -1,7 +1,7 @@ GitHub Stylus Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:17Z + 2024-08-22T01:34:23Z Daily Trending of Stylus in GitHub \ No newline at end of file diff --git a/subrip-text/daily/index.xml b/subrip-text/daily/index.xml index ef5b70fffa5..1fcc9098536 100644 --- a/subrip-text/daily/index.xml +++ b/subrip-text/daily/index.xml @@ -1,7 +1,7 @@ GitHub SubRip Text Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:17Z + 2024-08-22T01:34:23Z Daily Trending of SubRip Text in GitHub \ No newline at end of file diff --git a/sugarss/daily/index.xml b/sugarss/daily/index.xml index 98fc8838b20..09b3238312c 100644 --- a/sugarss/daily/index.xml +++ b/sugarss/daily/index.xml @@ -1,7 +1,7 @@ GitHub SugarSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:18Z + 2024-08-22T01:34:23Z Daily Trending of SugarSS in GitHub \ No newline at end of file diff --git a/supercollider/daily/index.xml b/supercollider/daily/index.xml index 4c8b009fc7e..b44f951a7d5 100644 --- a/supercollider/daily/index.xml +++ b/supercollider/daily/index.xml @@ -1,7 +1,7 @@ GitHub SuperCollider Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:18Z + 2024-08-22T01:34:24Z Daily Trending of SuperCollider in GitHub \ No newline at end of file diff --git a/svelte/daily/index.xml b/svelte/daily/index.xml index 41bc30c4f19..105ca84aed6 100644 --- a/svelte/daily/index.xml +++ b/svelte/daily/index.xml @@ -1,14 +1,7 @@ GitHub Svelte Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:19Z + 2024-08-22T01:34:25Z Daily Trending of Svelte in GitHub - - brave/leo - 2024-08-21T01:34:19Z - tag:github.com,2024-08-21:/brave/leo - - <p>Design tokens for the Brave's design system known as Leo</p><hr> - \ No newline at end of file diff --git a/svg/daily/index.xml b/svg/daily/index.xml index 3c288c05924..75531d6fb6f 100644 --- a/svg/daily/index.xml +++ b/svg/daily/index.xml @@ -1,7 +1,7 @@ GitHub SVG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:21Z + 2024-08-22T01:34:27Z Daily Trending of SVG in GitHub \ No newline at end of file diff --git a/swift/daily/index.xml b/swift/daily/index.xml index 87e2ddd96c8..3a158ec56b1 100644 --- a/swift/daily/index.xml +++ b/swift/daily/index.xml @@ -1,14 +1,14 @@ GitHub Swift Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:22Z + 2024-08-22T01:34:28Z Daily Trending of Swift in GitHub - pointfreeco/swift-navigation - 2024-08-21T01:34:22Z - tag:github.com,2024-08-21:/pointfreeco/swift-navigation - - <p>Bringing simple and powerful navigation tools to all Swift platforms, inspired by SwiftUI.</p><hr><h1>Swift Navigation</h1> <p><a href="https://github.com/pointfreeco/swift-navigation/actions/workflows/ci.yml"><img src="https://github.com/pointfreeco/swift-navigation/actions/workflows/ci.yml/badge.svg?sanitize=true" alt="CI"></a> <a href="http://pointfree.co/slack-invite"><img src="https://img.shields.io/badge/slack-chat-informational.svg?label=Slack&amp;logo=slack" alt="Slack"></a> <a href="https://swiftpackageindex.com/pointfreeco/swift-navigation"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fpointfreeco%2Fswift-navigation%2Fbadge%3Ftype%3Dswift-versions" alt=""></a> <a href="https://swiftpackageindex.com/pointfreeco/swift-navigation"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fpointfreeco%2Fswift-navigation%2Fbadge%3Ftype%3Dplatforms" alt=""></a></p> <p>Bringing simple and powerful navigation tools to all Swift platforms, inspired by SwiftUI.</p> <h2>Overview</h2> <p>This library contains a suite of tools that form the foundation for building powerful state management and navigation APIs for Apple platforms, such as SwiftUI, UIKit, and AppKit, as well as for non-Apple platforms, such as Windows, Linux, Wasm, and more.</p> <p>The SwiftNavigation library forms the foundation that more advanced tools can be built upon, such as the UIKitNavigation and SwiftUINavigation libraries. There are two primary tools provided:</p> <ul> <li><code>observe</code>: Minimally observe changes in a model.</li> <li><code>UIBinding</code>: Two-way binding for connecting navigation and UI components to an observable model.</li> </ul> <p>In addition to these tools there are some supplementary concepts that allow you to build more powerful tools, such as <code>UITransaction</code>, which associates animations and other data with state changes, and <code>UINavigationPath</code>, which is a type-erased stack of data that helps in describing stack-based navigation.</p> <p>All of these tools form the foundation for how one can build more powerful and robust tools for SwiftUI, UIKit, AppKit, and even non-Apple platforms.</p> <h4>SwiftUI</h4> <blockquote> <p>[!IMPORTANT] To get access to the tools described below you must depend on the SwiftNavigation package and import the SwiftUINavigation library.</p> </blockquote> <p>SwiftUI already comes with incredibly powerful navigation APIs, but there are a few areas lacking that can be filled. In particular, driving navigation from enum state so that you can have compile-time guarantees that only one destination can be active at a time.</p> <p>For example, suppose you have a feature that can present a sheet for creating an item, drill-down to a view for editing an item, and can present an alert for confirming to delete an item. One can technically model this with 3 separate optionals:</p> <pre><code class="language-swift">@Observable class FeatureModel { var addItem: AddItemModel? var deleteItemAlertIsPresented: Bool var editItem: EditItemModel? } </code></pre> <p>And then in the view one can use the <code>sheet</code>, <code>navigationDestination</code> and <code>alert</code> view modifiers to describe the type of navigation:</p> <pre><code class="language-swift">.sheet(item: $model.addItem) { addItemModel in AddItemView(model: addItemModel) } .alert("Delete?", isPresented: $model.deleteItemAlertIsPresented) { Button("Yes", role: .destructive) { /* ... */ } Button("No", role: .cancel) {} } .navigationDestination(item: $model.editItem) { editItemModel in EditItemModel(model: editItemModel) } </code></pre> <p>This works great at first, but also introduces a lot of unnecessary complexity into your feature. These 3 optionals means that there are technically 8 different states: All can be <code>nil</code>, one can be non-<code>nil</code>, two could be non-<code>nil</code>, or all three could be non-<code>nil</code>. But only 4 of those states are valid: either all are <code>nil</code> or exactly one is non-<code>nil</code>.</p> <p>By allowing these 4 other invalid states we can accidentally tell SwiftUI to both present a sheet and alert at the same time, but that is not a valid thing to do in SwiftUI, and SwiftUI will even print a message to the console letting you know that in the future it may actually crash your app.</p> <p>Luckily Swift comes with the perfect tool for dealing with this kind of situation: enums! They allow you to concisely define a type that can be one of many cases. So, we can refactor our 3 optionals as an enum with 3 cases, and then hold onto a single piece of optional state:</p> <pre><code class="language-swift">@Observable class FeatureModel { var destination: Destination? enum Destination { case addItem(AddItemModel) case deleteItemAlert case editItem(EditItemModel) } } </code></pre> <p>This is more concise, and we get compile-time verification that at most one destination can be active at a time. However, SwiftUI does not come with the tools to drive navigation from this model. This is where the SwiftUINavigation tools becomes useful.</p> <p>We start by annotating the <code>Destination</code> enum with the <code>@CasePathable</code> macro, which allows one to refer to the cases of an enum with dot-syntax just like one does with structs and properties:</p> <pre><code class="language-diff">+@CasePathable enum Destination { // ... } </code></pre> <p>And now one can use simple dot-chaining syntax to derive a binding from a particular case of the <code>destination</code> property:</p> <pre><code class="language-swift">.sheet(item: $model.destination.addItem) { addItemModel in AddItemView(model: addItemModel) } .alert("Delete?", isPresented: Binding($model.destination.deleteItemAlert)) { Button("Yes", role: .destructive) { /* ... */ } Button("No", role: .cancel) {} } .navigationDestination(item: $model.destination.editItem) { editItemModel in EditItemView(model: editItemModel) } </code></pre> <blockquote> <p>[!NOTE] For the alert we are using the special <code>Binding</code> initializer that turns a <code>Binding&lt;Void?&gt;</code> into a <code>Binding&lt;Bool&gt;</code>.</p> </blockquote> <p>We now have a concise way of describing all of the destinations a feature can navigate to, and we can still use SwiftUI's navigation APIs.</p> <h4>UIKit</h4> <blockquote> <p>[!IMPORTANT] To get access to the tools described below you must depend on the SwiftNavigation package and import the UIKitNavigation library.</p> </blockquote> <p>Unlike SwiftUI, UIKit does not come with state-driven navigation tools. Its navigation tools are "fire-and-forget", meaning you simply invoke a method to trigger a navigation, but there is no representation of that in your feature's state.</p> <p>For example, to present a sheet from a button press one can simply do:</p> <pre><code class="language-swift">let button = UIButton(type: .system, primaryAction: UIAction { [weak self] _ in present(SettingsViewController(), animated: true) }) </code></pre> <p>This makes it easy to get started with navigation, but as SwiftUI has taught us, it is incredibly powerful to be able to drive navigation from state. It allows you to encapsulate more of your feature's logic in an isolated and testable domain, and it unlocks deep linking for free since one just needs to construct a piece of state that represents where you want to navigate to, hand it to SwiftUI, and let SwiftUI handle the rest.</p> <p>The UIKitNavigation library brings a powerful suite of navigation tools to UIKit that are heavily inspired by SwiftUI. For example, if you have a feature model like the one discussed above in the <a href="https://raw.githubusercontent.com/pointfreeco/swift-navigation/main/#swiftui">SwiftUI</a> section:</p> <pre><code class="language-swift">@Observable class FeatureModel { var destination: Destination? enum Destination { case addItem(AddItemModel) case deleteItemAlert case editItem(EditItemModel) } } </code></pre> <p>…then one can drive navigation in a <em>view controller</em> using tools in the library:</p> <pre><code class="language-swift">class FeatureViewController: UIViewController { @UIBindable var model: FeatureModel func viewDidLoad() { super.viewDidLoad() // Set up view hierarchy present(item: $model.destination.addItem) { addItemModel in AddItemViewController(model: addItemModel) } present(isPresented: Binding($model.destination.deleteItemAlert)) { let alert = UIAlertController(title: "Delete?", message: message, preferredStyle: .alert) alert.addAction(UIAlertAction(title: "Yes", style: .destructive)) alert.addAction(UIAlertAction(title: "No", style: .cancel)) return alert } navigationDestination(item: $model.destination.editItem) { editItemModel in EditItemViewController(model: editItemModel) } } } </code></pre> <p>By using the libraries navigation tools we can be guaranteed that the model will be kept in sync with the view. When the state becomes non-<code>nil</code> the corresponding form of navigation will be triggered, and when the presented view is dismissed, the state will be <code>nil</code>'d out.</p> <p>Another powerful aspect of SwiftUI is its ability to update its UI whenever state in an observable model changes. And thanks to Swift's observation tools this can be done done implicitly and minimally: whichever fields are accessed in the <code>body</code> of the view are automatically tracked so that when they change the view updates.</p> <p>Our UIKitNavigation library comes with a tool that brings this power to UIKit, and it's called <code>observe</code>:</p> <pre><code class="language-swift">observe { [weak self] in guard let self else { return } countLabel.text = "Count: \(model.count)" factLabel.isHidden = model.fact == nil if let fact = model.fact { factLabel.text = fact } activityIndicator.isHidden = !model.isLoadingFact } </code></pre> <p>Whichever fields are accessed inside <code>observe</code> (such as <code>count</code>, <code>fact</code> and <code>isLoadingFact</code> above) are automatically tracked, so that whenever they are mutated the trailing closure of <code>observe</code> will be invoked again, allowing us to update the UI with the freshest data.</p> <p>All of these tools are built on top of Swift's powerful Observation framework. However, that framework only works on newer versions of Apple's platforms: iOS 17+, macOS 14+, tvOS 17+ and watchOS 10+. However, thanks to our back-port of Swift's observation tools (see <a href="http://github.com/pointfreeco/swift-perception">Perception</a>), you can make use of our tools right away, going all the way back to the iOS 13 era of platforms.</p> <h4>Non-Apple platforms</h4> <p>The tools provided by this library can also form the foundation of building navigation tools for non-Apple platforms, such as Windows, Linux, Wasm and more. We do not currently provide any such tools at this moment, but it is possible for them to be built externally.</p> <p>For example, in Wasm it is possible to use the <code>observe(isolation:_:)-93yzu</code> function to observe changes to a model and update the DOM:</p> <pre><code class="language-swift">import JavaScriptKit var countLabel = document.createElement("span") _ = document.body.appendChild(countLabel) let token = observe { countLabel.innerText = .string("Count: \(model.count)") } </code></pre> <p>And it's possible to drive navigation from state, such as an alert:</p> <pre><code class="language-swift">alert(isPresented: $model.isShowingErrorAlert) { "Something went wrong" } </code></pre> <p>And you can build more advanced tools for presenting and dismissing <code>&lt;dialog&gt;</code>'s in the browser.</p> <h2>Examples</h2> <p>This repo comes with lots of examples to demonstrate how to solve common and complex navigation problems with the library. Check out <a href="https://raw.githubusercontent.com/pointfreeco/swift-navigation/main/Examples">this</a> directory to see them all, including:</p> <ul> <li><a href="https://raw.githubusercontent.com/pointfreeco/swift-navigation/main/Examples/CaseStudies">Case Studies</a>: A collection of SwiftUI and UIKit case studies demonstrating this library's APIs.</li> <li><a href="https://raw.githubusercontent.com/pointfreeco/swift-navigation/main/Examples/Inventory">Inventory</a>: A multi-screen application with lists, sheets, popovers and alerts, all driven by state and deep-linkable.</li> </ul> <h2>Learn More</h2> <p>Swift Navigation's tools were motivated and designed over the course of many episodes on <a href="https://www.pointfree.co">Point-Free</a>, a video series exploring functional programming and the Swift language, hosted by <a href="https://twitter.com/mbrandonw">Brandon Williams</a> and <a href="https://twitter.com/stephencelis">Stephen Celis</a>.</p> <p>You can watch all of the episodes <a href="https://www.pointfree.co/collections/swiftui/navigation">here</a>.</p> <a href="https://www.pointfree.co/collections/swiftui/navigation"> <img alt="video poster image" src="https://d3rccdn33rt8ze.cloudfront.net/email-assets/pf-email-header.png" width="600"> </a> <h2>Community</h2> <p>If you want to discuss this library or have a question about how to use it to solve a particular problem, there are a number of places you can discuss with fellow <a href="http://www.pointfree.co">Point-Free</a> enthusiasts:</p> <ul> <li>For long-form discussions, we recommend the <a href="http://github.com/pointfreeco/swift-navigation/discussions">discussions</a> tab of this repo.</li> <li>For casual chat, we recommend the <a href="http://pointfree.co/slack-invite">Point-Free Community slack</a>.</li> </ul> <h2>Installation</h2> <p>You can add Swift Navigation to an Xcode project by adding it as a package dependency.</p> <blockquote> <p><a href="https://github.com/pointfreeco/swift-navigation">https://github.com/pointfreeco/swift-navigation</a></p> </blockquote> <p>If you want to use Swift Navigation in a <a href="https://swift.org/package-manager/">SwiftPM</a> project, it's as simple as adding it to a <code>dependencies</code> clause in your <code>Package.swift</code>:</p> <pre><code class="language-swift">dependencies: [ .package(url: "https://github.com/pointfreeco/swift-navigation", from: "2.0.0") ] </code></pre> <h2>Documentation</h2> <p>The latest documentation for the Swift Navigation APIs is available <a href="https://swiftpackageindex.com/pointfreeco/swift-navigation/main/documentation/swiftnavigation">here</a>.</p> <h2>License</h2> <p>This library is released under the MIT license. See <a href="https://raw.githubusercontent.com/pointfreeco/swift-navigation/main/LICENSE">LICENSE</a> for details.</p> + CSolanaM/SkeletonUI + 2024-08-22T01:34:28Z + tag:github.com,2024-08-22:/CSolanaM/SkeletonUI + + <p>☠️ Elegant skeleton loading animation in lightweight SwiftUI</p><hr><picture> <source media="(prefers-color-scheme: dark)" srcset="./Assets/headerdark.gif"> <img src="https://raw.githubusercontent.com/CSolanaM/SkeletonUI/develop/Assets/header.gif"> </picture> <p align="center"> <img src="https://github.com/CSolanaM/SkeletonUI/workflows/build/badge.svg?sanitize=true"> <img src="https://github.com/CSolanaM/SkeletonUI/workflows/test/badge.svg?sanitize=true"> <a href="https://codecov.io/gh/CSolanaM/SkeletonUI"><img src="https://codecov.io/gh/CSolanaM/SkeletonUI/branch/master/graph/badge.svg?sanitize=true"></a> <img src="https://img.shields.io/cocoapods/p/SkeletonUI"> <img src="https://img.shields.io/github/v/tag/CSolanaM/SkeletonUI?color=lightGray&amp;label=version"> <img src="https://img.shields.io/github/license/CSolanaM/SkeletonUI?color=lightGray"> <a href="https://twitter.com/CSolanaM"><img src="https://img.shields.io/badge/twitter-@CSolanaM-lightGray.svg?style=flat&amp;label=contact"></a> </p> <p>SkeletonUI aims to bring an elegant, declarative syntax to skeleton loading animations. Get rid of loading screens or spinners and start using skeletons to represent final content shapes.</p> <h1>Requirements <span>⚙</span></h1> <ul> <li>macOS 10.15.</li> <li>Xcode 11.0.</li> <li>Swift 5.0.</li> </ul> <h1>Supported Platforms <span>📱</span></h1> <ul> <li>iOS 13.0.</li> <li>tvOS 13.0.</li> <li>watchOS 6.0.</li> <li>macOS 10.15.</li> </ul> <h1>Installation <span>💻</span></h1> <h3>Swift Package Manager</h3> <p><a href="https://swift.org/package-manager/">Swift Package Manager</a> is a tool for automating the distribution of Swift code and is integrated into the <code>swift</code> compiler. Once you have your Swift package set up, adding <code>SkeletonUI</code> as a dependency is as easy as adding it to the <code>dependencies</code> value of your <code>Package.swift</code>.</p> <pre><code class="language-swift"> dependencies: [ .package(url: "https://github.com/CSolanaM/SkeletonUI.git", .branch("master")) ] </code></pre> <h3>CocoaPods</h3> <p><a href="https://cocoapods.org">CocoaPods</a> is a centralized dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate SkeletonUI into your Xcode project using CocoaPods, specify it in your <code>Podfile</code>:</p> <pre><code class="language-ruby">pod 'SkeletonUI' </code></pre> <h1>Features <span>✨</span></h1> <ul> <li><input type="checkbox" checked disabled> SwiftUI simple, declarative syntax.</li> <li><input type="checkbox" checked disabled> Super easy and simple to set up.</li> <li><input type="checkbox" checked disabled> All Views are skeletonables.</li> <li><input type="checkbox" checked disabled> Fully customizable.</li> <li><input type="checkbox" checked disabled> Universal (iPhone, iPad, iPod, Apple TV, Apple Watch, Mac).</li> <li><input type="checkbox" checked disabled> SwiftUI ViewModifier power.</li> <li><input type="checkbox" checked disabled> Lightweight codebase.</li> </ul> <h1>Usage <span>🚀</span></h1> <h3>Basic one-liner:</h3> <pre><code class="language-swift">import SkeletonUI import SwiftUI struct UsersView: View { @State var users = [String]() var body: some View { Text("Finished requesting \(users.count) users!") .skeleton(with: users.isEmpty) .onAppear { DispatchQueue.main.asyncAfter(deadline: .now() + 5) { self.users = ["John Doe", "Jane Doe", "James Doe", "Judy Doe"] } } } } </code></pre> <h3>Advanced customization:</h3> <pre><code class="language-swift">import SkeletonUI import SwiftUI struct User: Identifiable { let id = UUID() let name: String } struct UsersView: View { @State var users = [User]() var body: some View { SkeletonList(with: users, quantity: 6) { loading, user in Text(user?.name) .skeleton(with: loading, animation: .pulse(), appearance: .solid(color: .red, background: .blue), shape: .rectangle, lines: 3, scales: [1: 0.5]) } .onAppear { DispatchQueue.main.asyncAfter(deadline: .now() + 5) { self.users = [User(name: "John Doe"), User(name: "Jane Doe"), User(name: "James Doe"), User(name: "Judy Doe")] } } } } </code></pre> <h1>Change Log <span>📆</span></h1> <p>See <a href="https://github.com/CSolanaM/SkeletonUI/raw/master/CHANGELOG.md">CHANGELOG.md</a> for details.</p> <h1>Contributing <span>🎉</span></h1> <ul> <li>Suggest your idea as a <a href="https://github.com/CSolanaM/SkeletonUI/issues/new?assignees=&amp;labels=&amp;template=feature_request.md&amp;title=">feature request</a> for this project.</li> <li>Create a <a href="https://github.com/CSolanaM/SkeletonUI/issues/new?assignees=&amp;labels=&amp;template=bug_report.md&amp;title=">bug report</a> to help us improve.</li> <li>Propose your own fixes, suggestions and open a pull request with the changes.</li> </ul> <p>See <a href="https://github.com/CSolanaM/SkeletonUI/raw/master/CONTRIBUTING.md">CONTRIBUTING.md</a> for details.</p> <h1>Code of Conduct <span>💬</span></h1> <p>See <a href="https://github.com/CSolanaM/SkeletonUI/raw/master/CODE_OF_CONDUCT.md">CODE_OF_CONDUCT.md</a> for details.</p> <h1>Credits <span>🙊</span></h1> <p>SkeletonUI is owned and maintained by <a href="https://csolanam.io">CSolanaM</a>. You can follow me on Twitter at <a href="https://twitter.com/CSolanaM">@CSolanaM</a> or contact me via <a href="mailto:apps@csolanam.io">email</a> for project updates and releases.</p> <h1>License <span>🎓</span></h1> <p>SkeletonUI is released under the MIT license. See <a href="https://github.com/CSolanaM/SkeletonUI/raw/master/LICENSE">LICENSE</a> for details.</p> \ No newline at end of file diff --git a/swig/daily/index.xml b/swig/daily/index.xml index db88e9fc2af..2529673a140 100644 --- a/swig/daily/index.xml +++ b/swig/daily/index.xml @@ -1,7 +1,7 @@ GitHub SWIG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:28Z + 2024-08-22T01:34:34Z Daily Trending of SWIG in GitHub \ No newline at end of file diff --git a/systemverilog/daily/index.xml b/systemverilog/daily/index.xml index 40d8906d654..0dbfe1a2ab7 100644 --- a/systemverilog/daily/index.xml +++ b/systemverilog/daily/index.xml @@ -1,7 +1,7 @@ GitHub SystemVerilog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:28Z + 2024-08-22T01:34:34Z Daily Trending of SystemVerilog in GitHub \ No newline at end of file diff --git a/talon/daily/index.xml b/talon/daily/index.xml index 9b55891cac8..e4d97c1438c 100644 --- a/talon/daily/index.xml +++ b/talon/daily/index.xml @@ -1,7 +1,7 @@ GitHub Talon Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:27Z + 2024-08-22T01:34:33Z Daily Trending of Talon in GitHub \ No newline at end of file diff --git a/tcl/daily/index.xml b/tcl/daily/index.xml index f67fed19212..8d62c120d99 100644 --- a/tcl/daily/index.xml +++ b/tcl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Tcl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:29Z + 2024-08-22T01:34:33Z Daily Trending of Tcl in GitHub \ No newline at end of file diff --git a/tcsh/daily/index.xml b/tcsh/daily/index.xml index 41745639a6e..aa23bb04cdb 100644 --- a/tcsh/daily/index.xml +++ b/tcsh/daily/index.xml @@ -1,7 +1,7 @@ GitHub Tcsh Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:29Z + 2024-08-22T01:34:36Z Daily Trending of Tcsh in GitHub \ No newline at end of file diff --git a/tea/daily/index.xml b/tea/daily/index.xml index 5922019a874..454d291cf72 100644 --- a/tea/daily/index.xml +++ b/tea/daily/index.xml @@ -1,7 +1,7 @@ GitHub Tea Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:30Z + 2024-08-22T01:34:35Z Daily Trending of Tea in GitHub \ No newline at end of file diff --git a/terra/daily/index.xml b/terra/daily/index.xml index 9e23b5aab48..89922c0f76c 100644 --- a/terra/daily/index.xml +++ b/terra/daily/index.xml @@ -1,7 +1,7 @@ GitHub Terra Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:29Z + 2024-08-22T01:34:35Z Daily Trending of Terra in GitHub \ No newline at end of file diff --git a/tex/daily/index.xml b/tex/daily/index.xml index 4d4bc83bbf7..c7204227962 100644 --- a/tex/daily/index.xml +++ b/tex/daily/index.xml @@ -1,7 +1,7 @@ GitHub TeX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:32Z + 2024-08-22T01:34:38Z Daily Trending of TeX in GitHub \ No newline at end of file diff --git a/texinfo/daily/index.xml b/texinfo/daily/index.xml index 95a85d69f93..d877e3f2482 100644 --- a/texinfo/daily/index.xml +++ b/texinfo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Texinfo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:31Z + 2024-08-22T01:34:37Z Daily Trending of Texinfo in GitHub \ No newline at end of file diff --git a/text/daily/index.xml b/text/daily/index.xml index ea393cf8366..7b786174051 100644 --- a/text/daily/index.xml +++ b/text/daily/index.xml @@ -1,7 +1,7 @@ GitHub Text Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:31Z + 2024-08-22T01:34:37Z Daily Trending of Text in GitHub \ No newline at end of file diff --git a/textile/daily/index.xml b/textile/daily/index.xml index 705a998e138..d7bf1899083 100644 --- a/textile/daily/index.xml +++ b/textile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Textile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:36Z + 2024-08-22T01:34:41Z Daily Trending of Textile in GitHub \ No newline at end of file diff --git a/textmate-properties/daily/index.xml b/textmate-properties/daily/index.xml index 7b89e1851c4..bdba71a2919 100644 --- a/textmate-properties/daily/index.xml +++ b/textmate-properties/daily/index.xml @@ -1,7 +1,7 @@ GitHub TextMate Properties Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:36Z + 2024-08-22T01:34:40Z Daily Trending of TextMate Properties in GitHub \ No newline at end of file diff --git a/thrift/daily/index.xml b/thrift/daily/index.xml index 2431266ef97..da4265effe0 100644 --- a/thrift/daily/index.xml +++ b/thrift/daily/index.xml @@ -1,7 +1,7 @@ GitHub Thrift Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:35Z + 2024-08-22T01:34:41Z Daily Trending of Thrift in GitHub \ No newline at end of file diff --git a/ti-program/daily/index.xml b/ti-program/daily/index.xml index 921aa75bed7..919e82f8e41 100644 --- a/ti-program/daily/index.xml +++ b/ti-program/daily/index.xml @@ -1,7 +1,7 @@ GitHub TI Program Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:35Z + 2024-08-22T01:34:40Z Daily Trending of TI Program in GitHub \ No newline at end of file diff --git a/tla/daily/index.xml b/tla/daily/index.xml index 18930f79e64..def145ee4e0 100644 --- a/tla/daily/index.xml +++ b/tla/daily/index.xml @@ -1,7 +1,7 @@ GitHub TLA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:37Z + 2024-08-22T01:34:42Z Daily Trending of TLA in GitHub \ No newline at end of file diff --git a/toml/daily/index.xml b/toml/daily/index.xml index 666dc9cf0fc..9e32e0bfe06 100644 --- a/toml/daily/index.xml +++ b/toml/daily/index.xml @@ -1,7 +1,7 @@ GitHub TOML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:37Z + 2024-08-22T01:34:43Z Daily Trending of TOML in GitHub \ No newline at end of file diff --git a/tsql/daily/index.xml b/tsql/daily/index.xml index 0dfe7e3b98c..f8af4390c9a 100644 --- a/tsql/daily/index.xml +++ b/tsql/daily/index.xml @@ -1,7 +1,7 @@ GitHub TSQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:39Z + 2024-08-22T01:34:44Z Daily Trending of TSQL in GitHub \ No newline at end of file diff --git a/tsv/daily/index.xml b/tsv/daily/index.xml index c93e00aa5ea..f10aa75f6bf 100644 --- a/tsv/daily/index.xml +++ b/tsv/daily/index.xml @@ -1,7 +1,7 @@ GitHub TSV Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:39Z + 2024-08-22T01:34:43Z Daily Trending of TSV in GitHub \ No newline at end of file diff --git a/tsx/daily/index.xml b/tsx/daily/index.xml index 4407a7192da..4db2a93ea57 100644 --- a/tsx/daily/index.xml +++ b/tsx/daily/index.xml @@ -1,7 +1,7 @@ GitHub TSX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:39Z + 2024-08-22T01:34:43Z Daily Trending of TSX in GitHub \ No newline at end of file diff --git a/turing/daily/index.xml b/turing/daily/index.xml index 90945942a3c..0397794e5c3 100644 --- a/turing/daily/index.xml +++ b/turing/daily/index.xml @@ -1,7 +1,7 @@ GitHub Turing Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:38Z + 2024-08-22T01:34:44Z Daily Trending of Turing in GitHub \ No newline at end of file diff --git a/turtle/daily/index.xml b/turtle/daily/index.xml index 5ff0727fbc3..79b9f85021a 100644 --- a/turtle/daily/index.xml +++ b/turtle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Turtle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:40Z + 2024-08-22T01:34:45Z Daily Trending of Turtle in GitHub \ No newline at end of file diff --git a/twig/daily/index.xml b/twig/daily/index.xml index 1af2c8a0c88..11015bd8290 100644 --- a/twig/daily/index.xml +++ b/twig/daily/index.xml @@ -1,7 +1,7 @@ GitHub Twig Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:41Z + 2024-08-22T01:34:45Z Daily Trending of Twig in GitHub \ No newline at end of file diff --git a/txl/daily/index.xml b/txl/daily/index.xml index 8e6d1fb9ac2..23ba2a5a3d4 100644 --- a/txl/daily/index.xml +++ b/txl/daily/index.xml @@ -1,7 +1,7 @@ GitHub TXL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:40Z + 2024-08-22T01:34:45Z Daily Trending of TXL in GitHub \ No newline at end of file diff --git a/type-language/daily/index.xml b/type-language/daily/index.xml index 38c20d9f336..fff23ff5301 100644 --- a/type-language/daily/index.xml +++ b/type-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Type Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:40Z + 2024-08-22T01:34:46Z Daily Trending of Type Language in GitHub \ No newline at end of file diff --git a/typescript/daily/index.xml b/typescript/daily/index.xml index 5bb6a7d69de..8446923d10b 100644 --- a/typescript/daily/index.xml +++ b/typescript/daily/index.xml @@ -1,7 +1,14 @@ GitHub TypeScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:43Z + 2024-08-22T01:34:48Z Daily Trending of TypeScript in GitHub + + mattpocock/total-typescript-monorepo + 2024-08-22T01:34:48Z + tag:github.com,2024-08-22:/mattpocock/total-typescript-monorepo + + <p>The home of all Matt's internal tooling</p><hr> + \ No newline at end of file diff --git a/unified-parallel-c/daily/index.xml b/unified-parallel-c/daily/index.xml index fcc5b003985..aa930786b19 100644 --- a/unified-parallel-c/daily/index.xml +++ b/unified-parallel-c/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unified Parallel C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:41Z + 2024-08-22T01:34:47Z Daily Trending of Unified Parallel C in GitHub \ No newline at end of file diff --git a/unity3d-asset/daily/index.xml b/unity3d-asset/daily/index.xml index ee87da63c31..dd9944a59c2 100644 --- a/unity3d-asset/daily/index.xml +++ b/unity3d-asset/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unity3D Asset Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:42Z + 2024-08-22T01:34:46Z Daily Trending of Unity3D Asset in GitHub \ No newline at end of file diff --git a/unix-assembly/daily/index.xml b/unix-assembly/daily/index.xml index bb16d2e4bb6..2e6f3896af9 100644 --- a/unix-assembly/daily/index.xml +++ b/unix-assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unix Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:46Z + 2024-08-22T01:34:52Z Daily Trending of Unix Assembly in GitHub \ No newline at end of file diff --git a/unknown/daily/index.xml b/unknown/daily/index.xml index 76932353208..6a284b42f7f 100644 --- a/unknown/daily/index.xml +++ b/unknown/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unknown languages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:27:46Z + 2024-08-22T01:27:58Z Daily Trending of Unknown languages in GitHub \ No newline at end of file diff --git a/uno/daily/index.xml b/uno/daily/index.xml index d26f6e7c6e2..9c39526e636 100644 --- a/uno/daily/index.xml +++ b/uno/daily/index.xml @@ -1,7 +1,7 @@ GitHub Uno Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:46Z + 2024-08-22T01:34:51Z Daily Trending of Uno in GitHub \ No newline at end of file diff --git a/unrealscript/daily/index.xml b/unrealscript/daily/index.xml index 214644f09a3..faec96391b3 100644 --- a/unrealscript/daily/index.xml +++ b/unrealscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub UnrealScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:47Z + 2024-08-22T01:34:52Z Daily Trending of UnrealScript in GitHub \ No newline at end of file diff --git a/urweb/daily/index.xml b/urweb/daily/index.xml index 7ae8bbd6082..13c03684e98 100644 --- a/urweb/daily/index.xml +++ b/urweb/daily/index.xml @@ -1,7 +1,7 @@ GitHub UrWeb Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:47Z + 2024-08-22T01:34:52Z Daily Trending of UrWeb in GitHub \ No newline at end of file diff --git a/v/daily/index.xml b/v/daily/index.xml index 8ba5a484c24..89f98c05c18 100644 --- a/v/daily/index.xml +++ b/v/daily/index.xml @@ -1,7 +1,7 @@ GitHub V Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:48Z + 2024-08-22T01:34:54Z Daily Trending of V in GitHub \ No newline at end of file diff --git a/vala/daily/index.xml b/vala/daily/index.xml index 4f3a1f789f8..53ade4bfbd7 100644 --- a/vala/daily/index.xml +++ b/vala/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vala Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:49Z + 2024-08-22T01:34:54Z Daily Trending of Vala in GitHub \ No newline at end of file diff --git a/valve-data-format/daily/index.xml b/valve-data-format/daily/index.xml index 2b8e9e4ae5d..f944c8008d3 100644 --- a/valve-data-format/daily/index.xml +++ b/valve-data-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Valve Data Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:48Z + 2024-08-22T01:34:53Z Daily Trending of Valve Data Format in GitHub \ No newline at end of file diff --git a/vba/daily/index.xml b/vba/daily/index.xml index f6c6299217d..1a3fa9e8f4c 100644 --- a/vba/daily/index.xml +++ b/vba/daily/index.xml @@ -1,7 +1,7 @@ GitHub VBA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:48Z + 2024-08-22T01:34:54Z Daily Trending of VBA in GitHub \ No newline at end of file diff --git a/vbscript/daily/index.xml b/vbscript/daily/index.xml index 9b5006622fb..1ae3632f352 100644 --- a/vbscript/daily/index.xml +++ b/vbscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub VBScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:50Z + 2024-08-22T01:34:56Z Daily Trending of VBScript in GitHub \ No newline at end of file diff --git a/vcl/daily/index.xml b/vcl/daily/index.xml index f160e09cf80..1fba597226c 100644 --- a/vcl/daily/index.xml +++ b/vcl/daily/index.xml @@ -1,7 +1,7 @@ GitHub VCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:49Z + 2024-08-22T01:34:55Z Daily Trending of VCL in GitHub \ No newline at end of file diff --git a/verilog/daily/index.xml b/verilog/daily/index.xml index 9fe8a7093c7..52c2513261d 100644 --- a/verilog/daily/index.xml +++ b/verilog/daily/index.xml @@ -1,7 +1,7 @@ GitHub Verilog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:51Z + 2024-08-22T01:34:56Z Daily Trending of Verilog in GitHub \ No newline at end of file diff --git a/vhdl/daily/index.xml b/vhdl/daily/index.xml index e7b058f2606..8b16e428f35 100644 --- a/vhdl/daily/index.xml +++ b/vhdl/daily/index.xml @@ -1,7 +1,7 @@ GitHub VHDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:52Z + 2024-08-22T01:34:57Z Daily Trending of VHDL in GitHub \ No newline at end of file diff --git a/vim-help-file/daily/index.xml b/vim-help-file/daily/index.xml index c2dce89edf2..23e9fc4bf9d 100644 --- a/vim-help-file/daily/index.xml +++ b/vim-help-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vim Help File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:51Z + 2024-08-22T01:34:57Z Daily Trending of Vim Help File in GitHub \ No newline at end of file diff --git a/vim-script/daily/index.xml b/vim-script/daily/index.xml index 82a05093cf8..e4972525d1d 100644 --- a/vim-script/daily/index.xml +++ b/vim-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vim Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:53Z + 2024-08-22T01:34:59Z Daily Trending of Vim Script in GitHub \ No newline at end of file diff --git a/vim-snippet/daily/index.xml b/vim-snippet/daily/index.xml index 8c678df0dbd..bee995b529f 100644 --- a/vim-snippet/daily/index.xml +++ b/vim-snippet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vim Snippet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:52Z + 2024-08-22T01:34:58Z Daily Trending of Vim Snippet in GitHub \ No newline at end of file diff --git a/visual-basic-.net/daily/index.xml b/visual-basic-.net/daily/index.xml index 53fac822585..9cc8d2c32a3 100644 --- a/visual-basic-.net/daily/index.xml +++ b/visual-basic-.net/daily/index.xml @@ -1,7 +1,7 @@ GitHub Visual Basic .NET Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:54Z + 2024-08-22T01:35:00Z Daily Trending of Visual Basic .NET in GitHub \ No newline at end of file diff --git a/volt/daily/index.xml b/volt/daily/index.xml index 8111ad64d1f..5af4e306891 100644 --- a/volt/daily/index.xml +++ b/volt/daily/index.xml @@ -1,7 +1,7 @@ GitHub Volt Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:54Z + 2024-08-22T01:34:59Z Daily Trending of Volt in GitHub \ No newline at end of file diff --git a/vue/daily/index.xml b/vue/daily/index.xml index c2e46ea79b2..fdde2fb7d76 100644 --- a/vue/daily/index.xml +++ b/vue/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vue Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:55Z + 2024-08-22T01:35:01Z Daily Trending of Vue in GitHub \ No newline at end of file diff --git a/vyper/daily/index.xml b/vyper/daily/index.xml index 246f52eab07..92fad153491 100644 --- a/vyper/daily/index.xml +++ b/vyper/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vyper Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:56Z + 2024-08-22T01:35:02Z Daily Trending of Vyper in GitHub \ No newline at end of file diff --git a/wavefront-material/daily/index.xml b/wavefront-material/daily/index.xml index fe9e160c406..9d88a858a3f 100644 --- a/wavefront-material/daily/index.xml +++ b/wavefront-material/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wavefront Material Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:56Z + 2024-08-22T01:35:02Z Daily Trending of Wavefront Material in GitHub \ No newline at end of file diff --git a/wavefront-object/daily/index.xml b/wavefront-object/daily/index.xml index 92406ef719f..4689c3c3798 100644 --- a/wavefront-object/daily/index.xml +++ b/wavefront-object/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wavefront Object Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:56Z + 2024-08-22T01:35:01Z Daily Trending of Wavefront Object in GitHub \ No newline at end of file diff --git a/wdl/daily/index.xml b/wdl/daily/index.xml index 3475ce42ce4..aefdeac8f72 100644 --- a/wdl/daily/index.xml +++ b/wdl/daily/index.xml @@ -1,7 +1,7 @@ GitHub WDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:57Z + 2024-08-22T01:35:02Z Daily Trending of WDL in GitHub \ No newline at end of file diff --git a/web-ontology-language/daily/index.xml b/web-ontology-language/daily/index.xml index 7471c6b3f4e..3ab0139b833 100644 --- a/web-ontology-language/daily/index.xml +++ b/web-ontology-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Web Ontology Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:57Z + 2024-08-22T01:35:03Z Daily Trending of Web Ontology Language in GitHub \ No newline at end of file diff --git a/webassembly/daily/index.xml b/webassembly/daily/index.xml index 17088c81e74..9d62d574d5c 100644 --- a/webassembly/daily/index.xml +++ b/webassembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub WebAssembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:58Z + 2024-08-22T01:35:04Z Daily Trending of WebAssembly in GitHub \ No newline at end of file diff --git a/webidl/daily/index.xml b/webidl/daily/index.xml index eceb6bae427..06ca31aac5e 100644 --- a/webidl/daily/index.xml +++ b/webidl/daily/index.xml @@ -1,7 +1,7 @@ GitHub WebIDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:58Z + 2024-08-22T01:35:03Z Daily Trending of WebIDL in GitHub \ No newline at end of file diff --git a/webvtt/daily/index.xml b/webvtt/daily/index.xml index 3808f9b8782..54386c17664 100644 --- a/webvtt/daily/index.xml +++ b/webvtt/daily/index.xml @@ -1,7 +1,7 @@ GitHub WebVTT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:34:59Z + 2024-08-22T01:35:05Z Daily Trending of WebVTT in GitHub \ No newline at end of file diff --git a/wget-config/daily/index.xml b/wget-config/daily/index.xml index dabfca992db..6891d71725d 100644 --- a/wget-config/daily/index.xml +++ b/wget-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wget Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:00Z + 2024-08-22T01:35:05Z Daily Trending of Wget Config in GitHub \ No newline at end of file diff --git a/wikitext/daily/index.xml b/wikitext/daily/index.xml index d1f4abd9d02..57a6418ad78 100644 --- a/wikitext/daily/index.xml +++ b/wikitext/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wikitext Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:31:44Z + 2024-08-22T01:32:01Z Daily Trending of Wikitext in GitHub \ No newline at end of file diff --git a/windows-registry-entries/daily/index.xml b/windows-registry-entries/daily/index.xml index c9cf8816782..b49f34853ad 100644 --- a/windows-registry-entries/daily/index.xml +++ b/windows-registry-entries/daily/index.xml @@ -1,7 +1,7 @@ GitHub Windows Registry Entries Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:02Z + 2024-08-22T01:35:07Z Daily Trending of Windows Registry Entries in GitHub \ No newline at end of file diff --git a/wisp/daily/index.xml b/wisp/daily/index.xml index d8fec0340a7..61d3fd9c38a 100644 --- a/wisp/daily/index.xml +++ b/wisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub wisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:01Z + 2024-08-22T01:35:07Z Daily Trending of wisp in GitHub \ No newline at end of file diff --git a/witcher-script/daily/index.xml b/witcher-script/daily/index.xml index c6a39e4d95e..4261091deb9 100644 --- a/witcher-script/daily/index.xml +++ b/witcher-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Witcher Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:01Z + 2024-08-22T01:35:06Z Daily Trending of Witcher Script in GitHub \ No newline at end of file diff --git a/wollok/daily/index.xml b/wollok/daily/index.xml index c8b9ab4eafd..3bf72364df2 100644 --- a/wollok/daily/index.xml +++ b/wollok/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wollok Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:03Z + 2024-08-22T01:35:08Z Daily Trending of Wollok in GitHub \ No newline at end of file diff --git a/world-of-warcraft-addon-data/daily/index.xml b/world-of-warcraft-addon-data/daily/index.xml index 5c4586d1623..8530c28bffa 100644 --- a/world-of-warcraft-addon-data/daily/index.xml +++ b/world-of-warcraft-addon-data/daily/index.xml @@ -1,7 +1,7 @@ GitHub World of Warcraft Addon Data Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:03Z + 2024-08-22T01:35:08Z Daily Trending of World of Warcraft Addon Data in GitHub \ No newline at end of file diff --git a/x-bitmap/daily/index.xml b/x-bitmap/daily/index.xml index d0acf1e7998..0d5906d7615 100644 --- a/x-bitmap/daily/index.xml +++ b/x-bitmap/daily/index.xml @@ -1,7 +1,7 @@ GitHub X BitMap Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:02Z + 2024-08-22T01:35:08Z Daily Trending of X BitMap in GitHub \ No newline at end of file diff --git a/x-font-directory-index/daily/index.xml b/x-font-directory-index/daily/index.xml index 03faccfc5f8..fb9526ae9f9 100644 --- a/x-font-directory-index/daily/index.xml +++ b/x-font-directory-index/daily/index.xml @@ -1,7 +1,7 @@ GitHub X Font Directory Index Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:04Z + 2024-08-22T01:35:10Z Daily Trending of X Font Directory Index in GitHub \ No newline at end of file diff --git a/x-pixmap/daily/index.xml b/x-pixmap/daily/index.xml index 88130f9da00..f49d28d814c 100644 --- a/x-pixmap/daily/index.xml +++ b/x-pixmap/daily/index.xml @@ -1,7 +1,7 @@ GitHub X PixMap Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:04Z + 2024-08-22T01:35:10Z Daily Trending of X PixMap in GitHub \ No newline at end of file diff --git a/x10/daily/index.xml b/x10/daily/index.xml index 74bbfa78386..c01c61cae71 100644 --- a/x10/daily/index.xml +++ b/x10/daily/index.xml @@ -1,7 +1,7 @@ GitHub X10 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:05Z + 2024-08-22T01:35:09Z Daily Trending of X10 in GitHub \ No newline at end of file diff --git a/xbase/daily/index.xml b/xbase/daily/index.xml index c63ef16a6a7..c912bcb9c09 100644 --- a/xbase/daily/index.xml +++ b/xbase/daily/index.xml @@ -1,7 +1,7 @@ GitHub xBase Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:04Z + 2024-08-22T01:35:09Z Daily Trending of xBase in GitHub \ No newline at end of file diff --git a/xc/daily/index.xml b/xc/daily/index.xml index ffbf4569419..cf89bdd94c6 100644 --- a/xc/daily/index.xml +++ b/xc/daily/index.xml @@ -1,7 +1,7 @@ GitHub XC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:06Z + 2024-08-22T01:35:11Z Daily Trending of XC in GitHub \ No newline at end of file diff --git a/xcompose/daily/index.xml b/xcompose/daily/index.xml index 53ce3d7ad77..5392c90e263 100644 --- a/xcompose/daily/index.xml +++ b/xcompose/daily/index.xml @@ -1,7 +1,7 @@ GitHub XCompose Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:06Z + 2024-08-22T01:35:12Z Daily Trending of XCompose in GitHub \ No newline at end of file diff --git a/xml-property-list/daily/index.xml b/xml-property-list/daily/index.xml index ca46ef5fd4e..08af5d9a7fc 100644 --- a/xml-property-list/daily/index.xml +++ b/xml-property-list/daily/index.xml @@ -1,7 +1,7 @@ GitHub XML Property List Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:06Z + 2024-08-22T01:35:11Z Daily Trending of XML Property List in GitHub \ No newline at end of file diff --git a/xml/daily/index.xml b/xml/daily/index.xml index 4059a8f4afd..4dd901f2d3a 100644 --- a/xml/daily/index.xml +++ b/xml/daily/index.xml @@ -1,7 +1,7 @@ GitHub XML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:05Z + 2024-08-22T01:35:11Z Daily Trending of XML in GitHub \ No newline at end of file diff --git a/xojo/daily/index.xml b/xojo/daily/index.xml index 0bdc9b7237c..01fdb02a0e8 100644 --- a/xojo/daily/index.xml +++ b/xojo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Xojo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:08Z + 2024-08-22T01:35:12Z Daily Trending of Xojo in GitHub \ No newline at end of file diff --git a/xonsh/daily/index.xml b/xonsh/daily/index.xml index 298817e0d53..453036c3454 100644 --- a/xonsh/daily/index.xml +++ b/xonsh/daily/index.xml @@ -1,7 +1,7 @@ GitHub Xonsh Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:07Z + 2024-08-22T01:35:12Z Daily Trending of Xonsh in GitHub \ No newline at end of file diff --git a/xpages/daily/index.xml b/xpages/daily/index.xml index 30d62d95689..cdc447ae661 100644 --- a/xpages/daily/index.xml +++ b/xpages/daily/index.xml @@ -1,7 +1,7 @@ GitHub XPages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:07Z + 2024-08-22T01:35:13Z Daily Trending of XPages in GitHub \ No newline at end of file diff --git a/xproc/daily/index.xml b/xproc/daily/index.xml index dc68e42ada3..4f17682dd94 100644 --- a/xproc/daily/index.xml +++ b/xproc/daily/index.xml @@ -1,7 +1,7 @@ GitHub XProc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:08Z + 2024-08-22T01:35:13Z Daily Trending of XProc in GitHub \ No newline at end of file diff --git a/xquery/daily/index.xml b/xquery/daily/index.xml index 4af586582e3..f00562f0efd 100644 --- a/xquery/daily/index.xml +++ b/xquery/daily/index.xml @@ -1,7 +1,7 @@ GitHub XQuery Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:08Z + 2024-08-22T01:35:14Z Daily Trending of XQuery in GitHub \ No newline at end of file diff --git a/xs/daily/index.xml b/xs/daily/index.xml index d1e600e416a..a0d97c057e6 100644 --- a/xs/daily/index.xml +++ b/xs/daily/index.xml @@ -1,7 +1,7 @@ GitHub XS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:09Z + 2024-08-22T01:35:14Z Daily Trending of XS in GitHub \ No newline at end of file diff --git a/xslt/daily/index.xml b/xslt/daily/index.xml index c5f34ddebe8..7087a33a98d 100644 --- a/xslt/daily/index.xml +++ b/xslt/daily/index.xml @@ -1,7 +1,7 @@ GitHub XSLT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:10Z + 2024-08-22T01:35:15Z Daily Trending of XSLT in GitHub \ No newline at end of file diff --git a/xtend/daily/index.xml b/xtend/daily/index.xml index efcd0b9deaa..a59232adaeb 100644 --- a/xtend/daily/index.xml +++ b/xtend/daily/index.xml @@ -1,7 +1,7 @@ GitHub Xtend Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:09Z + 2024-08-22T01:35:15Z Daily Trending of Xtend in GitHub \ No newline at end of file diff --git a/yacc/daily/index.xml b/yacc/daily/index.xml index 367247c7546..d747db887fe 100644 --- a/yacc/daily/index.xml +++ b/yacc/daily/index.xml @@ -1,7 +1,7 @@ GitHub Yacc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:11Z + 2024-08-22T01:35:15Z Daily Trending of Yacc in GitHub \ No newline at end of file diff --git a/yaml/daily/index.xml b/yaml/daily/index.xml index ec144aaeb57..36124ac546f 100644 --- a/yaml/daily/index.xml +++ b/yaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub YAML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:12Z + 2024-08-22T01:35:16Z Daily Trending of YAML in GitHub \ No newline at end of file diff --git a/yang/daily/index.xml b/yang/daily/index.xml index e2ba07c965f..b3f9fc6dea9 100644 --- a/yang/daily/index.xml +++ b/yang/daily/index.xml @@ -1,7 +1,7 @@ GitHub YANG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:11Z + 2024-08-22T01:35:16Z Daily Trending of YANG in GitHub \ No newline at end of file diff --git a/yara/daily/index.xml b/yara/daily/index.xml index 6c68552ffca..9078b6a9aaf 100644 --- a/yara/daily/index.xml +++ b/yara/daily/index.xml @@ -1,7 +1,7 @@ GitHub YARA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:12Z + 2024-08-22T01:35:17Z Daily Trending of YARA in GitHub \ No newline at end of file diff --git a/yasnippet/daily/index.xml b/yasnippet/daily/index.xml index ef8f6d2f70a..414fcc028ed 100644 --- a/yasnippet/daily/index.xml +++ b/yasnippet/daily/index.xml @@ -1,7 +1,7 @@ GitHub YASnippet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:13Z + 2024-08-22T01:35:17Z Daily Trending of YASnippet in GitHub \ No newline at end of file diff --git a/zap/daily/index.xml b/zap/daily/index.xml index ecfd453e773..1e71bb87496 100644 --- a/zap/daily/index.xml +++ b/zap/daily/index.xml @@ -1,7 +1,7 @@ GitHub ZAP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:13Z + 2024-08-22T01:35:18Z Daily Trending of ZAP in GitHub \ No newline at end of file diff --git a/zeek/daily/index.xml b/zeek/daily/index.xml index 254c24daf65..683fbee409d 100644 --- a/zeek/daily/index.xml +++ b/zeek/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zeek Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:28:24Z + 2024-08-22T01:28:26Z Daily Trending of Zeek in GitHub \ No newline at end of file diff --git a/zenscript/daily/index.xml b/zenscript/daily/index.xml index 67581c77588..3f9ff77413f 100644 --- a/zenscript/daily/index.xml +++ b/zenscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ZenScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:14Z + 2024-08-22T01:35:18Z Daily Trending of ZenScript in GitHub \ No newline at end of file diff --git a/zephir/daily/index.xml b/zephir/daily/index.xml index a1dcc292609..e5d5302ca46 100644 --- a/zephir/daily/index.xml +++ b/zephir/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zephir Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:15Z + 2024-08-22T01:35:19Z Daily Trending of Zephir in GitHub \ No newline at end of file diff --git a/zig/daily/index.xml b/zig/daily/index.xml index 279a783b9c5..ace177909ca 100644 --- a/zig/daily/index.xml +++ b/zig/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zig Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:15Z + 2024-08-22T01:35:20Z Daily Trending of Zig in GitHub \ No newline at end of file diff --git a/zil/daily/index.xml b/zil/daily/index.xml index 52c56b1697c..143355241c7 100644 --- a/zil/daily/index.xml +++ b/zil/daily/index.xml @@ -1,7 +1,7 @@ GitHub ZIL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:15Z + 2024-08-22T01:35:19Z Daily Trending of ZIL in GitHub \ No newline at end of file diff --git a/zimpl/daily/index.xml b/zimpl/daily/index.xml index 276a345c920..b70cfb8ccfe 100644 --- a/zimpl/daily/index.xml +++ b/zimpl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zimpl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-08-21T01:35:14Z + 2024-08-22T01:35:19Z Daily Trending of Zimpl in GitHub \ No newline at end of file