Skip to content
A key/value based caching mechanism.
Swift
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Sources/KeyedCache
Tests
.gitignore
.jazzy.yaml
Package.swift
README.md

README.md

KeyedCache

A dictionary (key/value) based caching protocol.

SwifterSockets is part of the Swiftfire webserver.

The Swiftfire website

The Reference manual

Description

A key/value based caching mechanism with an implementation for an in-memory cache.

The cache can be limited in size by either a maximum number of items or a maximum memory usage.

If a new item must be placed and an old item must be purged, the purging strategy can be either "least recently used" or "least used".

To allow limiting by size, items to be stored in the cache must implement the EstimatedMemoryConsumption protocol. A default implementation is provided if this limiting strategy is not used. When using this strategy, the EstimatedMemoryConsumption should make a "best guess" at the memory consumption. The better the "guess" the better this limiting strategy will work. Note that for many (most?) uses it will not be necessary to use exact values.

Version history

No new features planned. Updates are made on an ad-hoc basis as needed to support Swiftfire development.

1.2.1

  • Restructured the time baed getter

1.2.0

  • Added time based criteria to subscript get
  • Added estimated memory consumption protocol to swift type Data
  • Improved removal algorithm to prevent lock-out and cyclical removal

1.1.0

  • Added remove operation to the cache protocol

1.0.2

  • Documentation updates

1.0.1

  • Documentation updates

1.0.0

  • To accompany Swiftfire 1.0.0
You can’t perform that action at this time.