Liking cljdoc? Tell your friends :D

taoensso.encore

Extended core library for Clojure/Script that emphasizes:

  • Cross platform API compatibility
  • Flexibility
  • Performance
  • Backwards compatibility

This lib's mostly for my own use and for advanced users that feel comfortable reading this source. Not providing much beginner-oriented documentation for this, sorry.

Quick Taoensso naming conventions: foo - Dynamic var foo! - Fn with side effects, or that should otherwise be used cautiously foo? - Truthy val or fn that returns truthy val foo!? - Fn that has side effects (or requires caution) and that return a truthy val. Note: !?, not ?! foo$ - Fn that's notably expensive to compute (e.g. hits db) foo_ - Derefable val (e.g. atom, volatile, delay, etc.) foo__ - Derefable in a derefable (e.g. delay in an atom), etc. _ - Unnamed val _foo - Named but unused val ?foo - Optional val (emphasize that val may be nil) foo* - A variation of foo (e.g. foo* macro vs foo fn) foo' - '' -foo - Public implementation detail or intermediate (e.g. uncoerced) val

foo - Val "to foo" (e.g. >sender, >host), or fn to put/coerce/transform <foo - Val "from foo" (e.g. <sender, <host), or fn to take/coerce/transform ->foo - Fn to put/coerce/transform

Type affixes may be used for clarity: <prefix>-<name> - m-users, v-users, n-users, etc. (also nusers when unambiguous) <name>-<postfix> - users-map, users-vec, user-count, etc.

Regarding name heirarchy: When there's a significant num of syms with a meaningful hierarchy, prefer names with descending hierarchy to emphasize structure and related groups/functionality, e.g.: user-add, user-remove, user-mod vs add-user, remove-user, mod-user, etc.

Commit message tags (in priority order): ~ - Work-in-progress (still under development) [mod] - Modify behaviour (=> breaking), [mod!], [mod!!], etc. for attention [fix] - Fix broken behaviour (=> usu. non-breaking) [new] - Add new behaviour (=> non-breaking) [nop] - Unmodified behaviour (=> non-breaking implementation or non-code changes, etc.) [x][y] - Single commit with multiple tags (in priority order), try avoid

Example commit messages: v1.0.0 (2022-01-27) ; Tagged release [new] [#122] Add new feature x (@contributor)

Version numbers: Ver tables: X.Y.Z (without backticks) Min ver: vX.Y.Z+ Elsewhere: vX.Y.Z

Extended core library for Clojure/Script that emphasizes:
  * Cross platform API compatibility
  * Flexibility
  * Performance
  * Backwards compatibility

This lib's mostly for my own use and for advanced users that feel
comfortable reading this source. Not providing much beginner-oriented
documentation for this, sorry.

Quick Taoensso naming conventions:
  **foo** - Dynamic var
  foo!    - Fn with side effects, or that should otherwise be used cautiously
  foo?    - Truthy val or fn that returns truthy val
  foo!?   - Fn that has side effects (or requires caution) and that return
            a truthy val. Note: !?, not ?!
  foo$    - Fn that's notably expensive to compute (e.g. hits db)
  foo_    - Derefable val (e.g. atom, volatile, delay, etc.)
  foo__   - Derefable in a derefable (e.g. delay in an atom), etc.
  _       - Unnamed val
  _foo    - Named but unused val
  ?foo    - Optional val (emphasize that val may be nil)
  foo*    - A variation of `foo` (e.g. `foo*` macro vs `foo` fn)
  foo'    - ''
  -foo    - Public implementation detail or intermediate (e.g. uncoerced) val
  >foo    - Val "to   foo" (e.g. >sender, >host), or fn to  put/coerce/transform
  <foo    - Val "from foo" (e.g. <sender, <host), or fn to take/coerce/transform
  ->foo   - Fn to put/coerce/transform

Type affixes may be used for clarity:
  <prefix>-<name>  - m-users,   v-users,   n-users,    etc. (also nusers when unambiguous)
  <name>-<postfix> - users-map, users-vec, user-count, etc.

Regarding name heirarchy:
  When there's a significant num of syms with a meaningful hierarchy,
  prefer names with descending hierarchy to emphasize structure and
  related groups/functionality, e.g.:
    `user-add`, `user-remove`, `user-mod` vs
    `add-user`, `remove-user`, `mod-user`, etc.

Commit message tags (in priority order):
  ~      - Work-in-progress (still under development)
  [mod]  - Modify     behaviour (=>          breaking), [mod!], [mod!!], etc. for attention
  [fix]  - Fix broken behaviour (=> usu. non-breaking)
  [new]  - Add new    behaviour (=>      non-breaking)
  [nop]  - Unmodified behaviour (=>      non-breaking implementation or non-code changes, etc.)
  [x][y] - Single commit with multiple tags (in priority order), try avoid

Example commit messages:
  v1.0.0 (2022-01-27) ; Tagged release
  [new] [#122] Add new feature x (@contributor)

Version numbers:
  Ver tables:  X.Y.Z (without backticks)
     Min ver: vX.Y.Z+
   Elsewhere: vX.Y.Z
raw docstring

taoensso.encore.ctx-filter

Alpha, subject to change without notice! Low-level toolkit for building context filters. Used by Telemere, Timbre, Tufte, etc.

Alpha, subject to change without notice!
Low-level toolkit for building context filters.
Used by Telemere, Timbre, Tufte, etc.
raw docstring

taoensso.encore.runner

Alpha, subject to change without notice! Runner util for easily configurable a/sync fn execution.

Compared to agents:

  • Runners have (configurable) back-pressure mechanism.
  • Runners may be non-linear when n-threads > 1.
  • Runners take nullary fns rather than unary fns of state.
  • Runners have no validators or watches.
  • Runners auto shutdown their threads on JVM shutdown.
Alpha, subject to change without notice!
Runner util for easily configurable a/sync fn execution.

Compared to agents:
  - Runners have (configurable) back-pressure mechanism.
  - Runners may be non-linear when n-threads > 1.
  - Runners take nullary fns rather than unary fns of state.
  - Runners have no validators or watches.
  - Runners auto shutdown their threads on JVM shutdown.
raw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close