1. A method for pattern matching comprising: receiving a request for a job at a hardware device from an application, the application being instantiated on a processor of a computing device and the hardware device comprising an ASIC (Application Specific Integrated Circuit) card mounted to the computing device and communicatively coupled to the processor of the computing device, the request comprising a pattern set identification and a data stream identification; locating a pattern set for the received job based on the pattern set identification; selecting a data stream based on the data stream identification; receiving the selected data stream at the ASIC card; and matching the pattern set against the data stream at the ASIC card.