Hi,

I was doing some work on erlfdb today and I was reminded that we’ve developed a 
series of Erlang applications that have no dependency on CouchDB on could be 
generally useful in other Erlang applications. Some examples include:

b64url - NIF for encoding / decoding strings using a url-safe base64 scheme
erlfdb - Erlang bindings for FoundationDB
ets-lru - a bounded LRU cache using ETS tables as the backing store
khash - NIF wrapper around the Kazlib hashing module
snappy - NIF wrapper for Google’s snappy compression library

There are others as well. Each of these libraries is maintained in its own 
GitHub repo, prefixed with a CouchDB name, e.g.

https://github.com/apache/couchdb-b64url

Unlike the main CouchDB repo, we do not enable Issues or Discussions on these 
repositories. In many cases the project description and documentation is almost 
non-existent, e.g. for b64url above the description is “Mirror of Apache 
CouchDB”.

I think we could benefit from making these projects more visible. Paul’s jiffy 
library for JSON processing is a nice counterexample where he's gotten 
non-trivial contributions from the broader Erlang community by putting a little 
distance between it and CouchDB. Do others agree? If so, I’ve been thinking 
about some next steps that would help on that front:

- rebar3 compatibility
- project READMEs that clarify the app is independent of (but maintained by) 
CouchDB
- activating GH Issues (and maybe even Discussions?)
- releases published in Hex? (bit worried about the interaction with ASF 
release requirements here)
- a page in the CouchDB docs that talks a bit about the Erlang internals and 
catalogs these apps alongside third-party dependencies

I suppose there are more dramatic steps one could take as well like renaming 
the repo, but I think it’d be better to start small.

Cheers, Adam

Reply via email to