All Projects → jonasmalacofilho → git-cache-http-server

jonasmalacofilho / git-cache-http-server

Licence: other
A caching Git HTTP server

Programming Languages

haxe
709 projects

Labels

Projects that are alternatives of or similar to git-cache-http-server

papercut
Papercut is a scraping/crawling library for Node.js built on top of JSDOM. It provides basic selector features together with features like Page Caching and Geosearch.
Stars: ✭ 15 (-76.92%)
Mutual labels:  cache
eloquent-cache
Easily cache your Laravel's Eloquent models.
Stars: ✭ 55 (-15.38%)
Mutual labels:  cache
sCache
Kolay PHP Cache sistemi sadece 1 satırda cache sisteminizi kurun.
Stars: ✭ 50 (-23.08%)
Mutual labels:  cache
salad
Asynchronous Scala Redis Client supporting Sentinel and Redis Cluster
Stars: ✭ 14 (-78.46%)
Mutual labels:  cache
transitory
In-memory cache with high hit rates via LFU eviction for Node and browsers. Supports time-based expiration, automatic loading and metrics.
Stars: ✭ 24 (-63.08%)
Mutual labels:  cache
cachepot
cachepot is `sccache` with extra sec, which in turn is `ccache` with cloud storage
Stars: ✭ 106 (+63.08%)
Mutual labels:  cache
cacheme-go
🚀 Schema based, typed Redis caching/memoize framework for Go
Stars: ✭ 19 (-70.77%)
Mutual labels:  cache
cache-trace
A collection of Twitter's anonymized production cache traces.
Stars: ✭ 89 (+36.92%)
Mutual labels:  cache
DTC
DTC is a high performance Distributed Table Cache system designed by JD.com that offering hotspot data cache for databases in order to reduce pressure of database and improve QPS.
Stars: ✭ 21 (-67.69%)
Mutual labels:  cache
magento2-LiteSpeed LiteMage
LiteMage Cache Extension for Magento 2
Stars: ✭ 27 (-58.46%)
Mutual labels:  cache
component-box
A little component cacher 📦
Stars: ✭ 25 (-61.54%)
Mutual labels:  cache
hitbox
A high-performance caching framework suitable for single-machine and for distributed applications in Rust
Stars: ✭ 61 (-6.15%)
Mutual labels:  cache
stash
A Go package for disk-based blob cache
Stars: ✭ 14 (-78.46%)
Mutual labels:  cache
composer-install
A GitHub Action to streamline installation of PHP dependencies with Composer.
Stars: ✭ 151 (+132.31%)
Mutual labels:  cache
AppleCache
Apple Content Cache Reverse Engineering
Stars: ✭ 82 (+26.15%)
Mutual labels:  cache
GraphCMS-cache-boilerplate
The main goal of this service is to provide a reliable cache contingency backup plan in case a GraphCMS/GraphQL endpoint is failing.
Stars: ✭ 24 (-63.08%)
Mutual labels:  cache
ecommerce
(Live Link) Extensive ecommerce site with vendors, mods & ability to add to cart without being logged in. Check out v4!
Stars: ✭ 13 (-80%)
Mutual labels:  cache
justreq
A caching proxy server for testing interface of HTTP or HTTPS. A never offline testing interface server. A mock server
Stars: ✭ 15 (-76.92%)
Mutual labels:  cache
bk flutter image
flutter image,降低内存使用
Stars: ✭ 32 (-50.77%)
Mutual labels:  cache
node-backend-template
A template for NodeJS backend projects
Stars: ✭ 19 (-70.77%)
Mutual labels:  cache

A caching Git HTTP server

Mirror remote repositories and serve them over HTTP, automatically updating them as needed.

Currently supported client operations are fetch and clone. Authentication to the upstream repository is always enforced (for now, only HTTP Basic is supported), but public repositories can be used as well.

Usage

Usage:
  git-cache-http-server.js [options]

Options:
  -c,--cache-dir <path>   Location of the git cache [default: /var/cache/git]
  -p,--port <port>        Bind to port [default: 8080]
  -h,--help               Print this message
  --version               Print the current version

The upstream remote is extracted from the URL, taking the first component as the remote hostname.

Example:

git-cache-http-server --port 1234 --cache-dir /tmp/cache/git &
git clone http://localhost:1234/github.com/jonasmalacofilho/git-cache-http-server

If you run your git-cache on a dedicated server or container (i.e. named gitcache), you can then also configure git to always use your cache like in the following example (don't use this configuration on the git-cache machine itself):.

git config --global url."http://gitcache:1234/".insteadOf https://

Installing

Requirements: nodejs and git.

npm install --global git-cache-http-server

To install a cache service on Linux systems, check the example doc/git-cache-http-server.service unit file.

For Systemd init users that file should not require major tweaks, other than specifying a different than default port number or cache directory. After installed in the proper Systemd unit path for your distribution:

systemctl daemon-reload
systemctl start git-cache-http-server
systemctl enable git-cache-http-server

Working with the Haxe sources

To modify the code or use the latest features and fixes, it is necessary to build the Haxe sources in src/.

The process of installing Haxe, any additional dependencies, and building the project has been automated with the use of a prepare script, and should work transparently with the usual npm commands. The resulting JS script will be placed in bin/.

# clone the repository (adjust the protocol)
git clone https://github.com/jonasmalacofilho/git-cache-http-server

# install development dependencies and build the sources
npm install

# install the built code globally (might require sudo)
npm install --global

Additionally, the following scripts are available should there be a need to update the Haxe dependencies or quickly rebuild the Haxe code alone:

npm run installHaxelibs
npm run build

Note: after upgrading it might be necessary to purge old .haxelib and node_modules directories, as well any remaining of old installations.

Implementation

The current implementation is somewhat oversimplified; any help in improving it is greatly appreciated!

References:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].