Quando le persone parlano di "binding", tipicamente intendono usare una FFI (foreign function interface) per rendere un'interfaccia di una libreria scritta in qualche lingua disponibile in un'altra lingua. A seconda delle differenze tra le lingue, questo può variare da una semplice e superficiale mappatura di tipi e valori a un grande cambiamento nel modo in cui i client interagiscono con la libreria. Quindi, scrivere binding può essere un compito banale o un grande sforzo di progettazione.
Come esempio del primo, consideriamo ruby-opengl, che fornisce l'accesso all'API OpenGL dal linguaggio di programmazione Ruby. Come dice il tutorial:
Le funzioni e le costanti hanno lo stesso nome delle loro controparti C: . . .
Se sapete già come usare OpenGL da C, allora questo è un vantaggio, poiché la vostra conoscenza di quali funzioni usare e come eseguire i compiti si traduce direttamente. Scrivere questi binding di solito non è molto difficile, dato che non richiede di pensare alla progettazione di librerie o interfacce; piuttosto, si tratta soprattutto di specificare quali nomi Ruby mappano quali nomi C, e come i valori C vengono impacchettati come oggetti Ruby (i cui dettagli sono determinati dalla FFI di Ruby). Ci sono strumenti che possono aiutare a generare i wrapper necessari basati su un file header C, sebbene in molti casi abbia più senso fare il lavoro manualmente.