In software, module A can call onto another module B to do stuff. Now I put a third module C in between A and B, whose job it is to catch calls from module A, possibly divert them, and otherwise pass them through to module B. What do you call this interposed C?

I'm pretty sure there is a term for this in mechanics/electronics/carpentry, and hence I'm not looking for a software-specific term. (Before anyone asks: a proxy is a hyponym of the hyperonym I'm looking for. An interface is also not the right term, since that denotes a thin layer.)

For some reason, my mind keeps going to "shunt" (an electrical term), but I don't think that's what I need. A "wedge" has no ability to pass things through, so that's not right.

  • Comments are not for extended discussion; this conversation has been moved to chat.
    – tchrist
    Nov 25 at 3:12

1 Answer 1


Shim is a term borrowed from carpentry and related fields, and has the benefit of having already been borrowed in computing for exactly this purpose.

(computing) A small library that transparently intercepts and modifies calls to an API, usually for compatibility purposes.

The non-computing definition is basically

[a] wedge


[a] thin piece of material, sometimes tapered, used for alignment or support.



Not the answer you're looking for? Browse other questions tagged or ask your own question.