an [abandoned] attempt to slice out the docker/docker/pkg package
Find a file
David Calavera a72c316bf4 Add PubSub topics.
A TopicFunc is an interface to let the pubisher decide whether it needs
to send a message to a subscriber or not. It returns true if the
publisher must send the message and false otherwise.

Users of the pubsub package can create a subscriber with a topic
function by calling `pubsub.SubscribeTopic`.

Message delivery has also been modified to use concurrent channels per
subscriber. That way, topic verification and message delivery is not
o(N+M) anymore, based on the number of subscribers and topic verification
complexity.

Using pubsub topics, the API stops controlling the message delivery,
delegating that function to a topic generated with the filtering
provided by the user. The publisher sends every message to the
subscriber if there is no filter, but the api doesn't have to select
messages to return anymore.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-02 16:43:49 -05:00
aaparser check version for docker-default aa profile 2015-11-30 10:18:12 -08:00
ansiescape
archive Fix for zero-sized layers 2015-11-25 18:02:03 -08:00
blkiodev Add support for blkio.weight_device 2015-11-11 23:06:36 +08:00
broadcaster
chrootarchive
devicemapper Fix golint warnings 2015-11-02 08:02:25 -08:00
directory
discovery Enhancing --cluster-advertise to support <interface-name> 2015-10-27 11:03:22 -07:00
filenotify Fix spelling of 'existent' 2015-11-25 13:45:37 +00:00
fileutils Support multi-dir wildcards in .dockerignore 2015-11-13 13:44:07 -08:00
graphdb
homedir
httputils
idtools
integration Build and test Docker on IBM Power and Z using gccgo. Enable CI on Power and Z. 2015-11-14 03:16:45 +00:00
ioutils Cap the amount of buffering done by BytesPipe 2015-11-12 10:11:29 -08:00
jsonlog
jsonmessage
locker Fix race in locker call to dec() 2015-11-24 11:59:09 -05:00
longpath
mflag Remove defaults for flags/options that expect no value 2015-11-19 08:37:51 -08:00
mount pkg: mount: golint 2015-07-22 10:26:10 +02:00
namesgenerator add james golick to names generator 2015-11-29 10:40:12 -08:00
nat Adding support to publish on custom host port ranges 2015-08-15 02:41:29 +00:00
parsers Make filtering a linear operation. 2015-12-02 11:12:42 -05:00
pidfile
platform Merge pull request #18090 from vdemeester/17478-follow-up-cleanup-pkg-platform 2015-11-19 14:00:23 -05:00
plugins
pools
progressreader
promise
proxy Lint on pkg/* packages 2015-07-27 21:26:21 +02:00
pubsub Add PubSub topics. 2015-12-02 16:43:49 -05:00
random
reexec make docker compile on freebsd 2015-07-29 21:25:56 +03:00
signal Define all of the signals defined by kill -l 2015-11-12 09:55:18 -05:00
sockets Remove usage of listenbuffer package 2015-11-30 09:04:55 -08:00
stdcopy
streamformatter Add newlines to FormatProgress for JSON as well 2015-10-28 12:58:47 +00:00
stringid Update daemon and docker core to use new content addressable storage 2015-11-24 09:40:25 -08:00
stringutils
symlink
sysinfo Add support for blkio.weight_device 2015-11-11 23:06:36 +08:00
system Merge pull request #17456 from Microsoft/TestChtimesFix 2015-11-20 18:07:09 +01:00
tailfile
tarsum Fix golint warnings 2015-11-02 08:02:25 -08:00
term kill TODO 2015-11-12 16:41:25 +08:00
timeoutconn
timeutils modifying docker --since and --until to support nanoseconds and time zones 2015-11-13 09:56:15 -06:00
tlsconfig Fix golint warnings 2015-11-02 08:02:25 -08:00
truncindex Do not rely on string comparison in truncindex 2015-11-04 11:34:05 -08:00
ulimit
units
urlutil
useragent
version
README.md

pkg/ is a collection of utility packages used by the Docker project without being specific to its internals.

Utility packages are kept separate from the docker core codebase to keep it as small and concise as possible. If some utilities grow larger and their APIs stabilize, they may be moved to their own repository under the Docker organization, to facilitate re-use by other projects. However that is not the priority.

The directory pkg is named after the same directory in the camlistore project. Since Brad is a core Go maintainer, we thought it made sense to copy his methods for organizing Go code :) Thanks Brad!

Because utility packages are small and neatly separated from the rest of the codebase, they are a good place to start for aspiring maintainers and contributors. Get in touch if you want to help maintain them!