Best for: High-performance, data-sensitive, or offline environments
Benefits:
Low latency - Microseconds per detection when the data file is held in memory, with no network call
Processing on your servers - All processing stays within your infrastructure
High throughput - Over 1 million detections per second on an eight-core AWS Graviton3 instance, with the data file in memory (measured results)
Fast startup - Loads the data file into memory and is ready to detect in under 150 milliseconds on the same Graviton3 instance, which matters most where servers start and stop as demand changes
Offline capable - No internet dependency for detection
Full control - Customize update schedules and deployment architecture
Things to consider:
Setup required - Initial configuration and data file management
Resource usage - Uses local CPU/RAM (optimized but measurable)
Most programming languages support both integration models. Select your language below for detailed setup instructions:
Select a language.
C does not have a Pipeline implementation or the ability to use the cloud-based version of Device Detection. To get started with C device detection On-premise:
Download the free Lite data file by running sh data/get-data-files.sh 51Degrees-LiteV4.1.hash from the repository root, or ./data/get-data-files.ps1 51Degrees-LiteV4.1.hash in PowerShell. The scripts are part of the data repository, which is the data submodule. The examples also download the file themselves when it is missing.
(optional) For a data file with more devices and properties, contact 51Degrees about the Bespoke plan, the only paid plan that includes on-premise use. See our pricing page for details.
C++ does not have a Pipeline implementation or the ability to use the cloud-based version of Device Detection. To get started with C++ device detection On-premise:
Download the free Lite data file by running sh data/get-data-files.sh 51Degrees-LiteV4.1.hash from the repository root, or ./data/get-data-files.ps1 51Degrees-LiteV4.1.hash in PowerShell. The scripts are part of the data repository, which is the data submodule. The examples also download the file themselves when it is missing.
(optional) For a data file with more devices and properties, contact 51Degrees about the Bespoke plan, the only paid plan that includes on-premise use. See our pricing page for details.
The cloud implementation uses the 51Degrees Cloud Service and requires less memory and CPU than the on-premise implementation. It is slower because each request adds Internet latency. Choose on-premise detection if detection speed is your priority.
Device detection processing is performed locally using a data file that must be kept updated. Due to the restrictions imposed by Composer and Packagist, we cannot supply the On-premise Engines through the usual package management ecosystem. Instead, you'll need to clone the repository from GitHub and follow the instructions there in order to build and use the On-premise implementation.
Follow the appropriate example from the options below:
Cloud Example - Negligible processing and memory overhead but slower due to Internet latency.
On-premise Example - Device detection processing is performed locally using a data file that must be kept updated.
Varnish does not have a Pipeline implementation or the ability to use the cloud-based version of Device Detection. To get started with Varnish device detection On-premise:
Download the free Lite data file, and the free Asn data file that the IP Intelligence tests use, by running sh cxx/data/get-data-files.sh 51Degrees-LiteV4.1.hash 51Degrees-IPIV4AsnIpiV41.ipi from the repository root. The script is part of the data repository, which the cxx submodule includes at cxx/data.
(optional) For a data file with more devices and properties, contact 51Degrees about the Bespoke plan, the only paid plan that includes on-premise use. See our pricing page for details.
Nginx does not have a Pipeline implementation or the ability to use the cloud-based version of Device Detection. To get started with Nginx device detection On-premise:
Download the free Lite data file by running sh cxx/data/get-data-files.sh 51Degrees-LiteV4.1.hash from the repository root. The script is part of the data repository, which the cxx submodule includes at cxx/data.
(optional) For a data file with more devices and properties, contact 51Degrees about the Bespoke plan, the only paid plan that includes on-premise use. See our pricing page for details.
Download the free Lite data file by running sh cxx/data/get-data-files.sh 51Degrees-LiteV4.1.hash from the repository root, or ./cxx/data/get-data-files.ps1 51Degrees-LiteV4.1.hash in PowerShell. The scripts are part of the data repository, which the cxx submodule includes at cxx/data.
(optional) For a data file with more devices and properties, contact 51Degrees about the Bespoke plan, the only paid plan that includes on-premise use. See our pricing page for details.