1. A network system comprising: one or more ternary content-addressable memories (TCAMs); a processor; and a non-transitory computer readable storage medium having stored thereon instructions that, when executed by the processor, cause the processor to: execute, for each TCAM in the one or more TCAMs, a TCAM manager, wherein each TCAM manager: manages allocation of resources of its associated TCAM; and manages access to the TCAM by one or more network applications running on the network system.