The halo library is used to draw glowing outlines around entities, an example of this can be seen by picking up props with the physgun in Garry's Mod 13.
halo.Add( table entities, table color, number blurX = 2, number blurY = 2, number passes = 1, boolean additive = true, boolean ignoreZ = false )
Applies a halo glow effect to one or multiple entities. Using this function outside of the GM:PreDrawHalos hook can cause instability or crashes. The ignoreZ parameter will cause the halos to draw over the player's viewmodel. You can work around this using render. DepthRange in the GM:PreDrawViewModel, GM:PostDrawViewModel, GM:PreDrawPlayerHands and GM:PostDrawPlayerHands hooks.
halo.Render( table entry )
This is used internally - although you're able to use it you probably shouldn't. Renders a halo according to the specified table, only used internally, called from a GM:PostDrawEffects hook added by the halo library.
Returns the entity the halo library is currently rendering the halo for. The main purpose of this function is to be used in ENTITY:Draw in order not to draw certain parts of the entity when the halo is being rendered, so there's no halo around unwanted entity parts, such as lasers, 3D2D displays, etc.