SDKs overview

Icanhazepoch offers a straightforward API designed for retrieving the current Unix epoch timestamp. Given the API's simplicity—a single endpoint returning a numeric value—dedicated SDKs are primarily wrappers around standard HTTP request libraries, providing convenience functions for various programming environments. These SDKs abstract the HTTP request details, allowing developers to fetch the epoch timestamp with minimal code.

The core functionality relies on making an HTTP GET request to https://icanhazepoch.com/, which returns the current Unix epoch timestamp as a plain text string. A Unix epoch timestamp represents the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds, as defined by the Network Time Protocol (NTP) standard. This design philosophy emphasizes ease of use and rapid integration for developers needing a reliable, unauthenticated source for epoch timestamps.

While the API itself is minimal, SDKs and libraries enhance the developer experience by:

  • Handling HTTP request execution.
  • Parsing the response into a native language data type (e.g., integer or long).
  • Providing a consistent interface for time retrieval across different projects.

Official SDKs are maintained by the Icanhazepoch project, ensuring compatibility and adherence to the API's behavior. Community libraries extend this ecosystem, often providing additional features or supporting languages not covered by official releases.

Official SDKs by language

The official SDKs for Icanhazepoch are lightweight wrappers that simplify interaction with the API endpoint. They are designed for quick integration and provide a consistent way to obtain the current epoch timestamp across different programming languages. The following table details the officially supported SDKs:

Language Package/Module Installation Command Maturity
Python icanhazepoch-py pip install icanhazepoch-py Stable
Node.js icanhazepoch-js npm install icanhazepoch-js Stable
Ruby icanhazepoch-rb gem install icanhazepoch-rb Stable
PHP icanhazepoch-php composer require icanhazepoch/icanhazepoch-php Stable

Each official SDK provides a primary function or method to fetch the epoch timestamp. For example, the Python library might offer a function like get_epoch(), while the Node.js module might export an asynchronous function to achieve the same. These libraries typically handle potential network errors and provide robust error handling mechanisms, although the Icanhazepoch API itself is designed for high availability and minimal failure points.

Installation

Installation of Icanhazepoch SDKs follows standard package management practices for each respective language. Below are detailed instructions for installing the official SDKs.

Python

The Python SDK can be installed using pip, the Python package installer. Ensure you have Python and pip installed on your system. For more information on Python package management, refer to the official Python documentation on installing packages.

pip install icanhazepoch-py

Node.js

The Node.js SDK is available via npm, the Node.js package manager. You'll need Node.js and npm installed to proceed. Detailed instructions for npm are available on the npm install command reference.

npm install icanhazepoch-js

Ruby

The Ruby SDK is distributed as a Gem. Use the gem command-line tool to install it.

gem install icanhazepoch-rb

PHP

For PHP, the SDK is managed through Composer, the dependency manager for PHP. Ensure Composer is installed globally on your machine.

composer require icanhazepoch/icanhazepoch-php

Quickstart example

The following examples demonstrate how to retrieve the current Unix epoch timestamp using the official SDKs in various programming languages. These snippets illustrate the simplicity of integrating Icanhazepoch into your applications.

Python Example

This Python example fetches and prints the current epoch timestamp.

import icanhazepoch_py

def get_current_epoch():
    try:
        epoch_time = icanhazepoch_py.get_epoch()
        print(f"Current Unix Epoch: {epoch_time}")
        return epoch_time
    except Exception as e:
        print(f"Error fetching epoch: {e}")
        return None

if __name__ == "__main__":
    get_current_epoch()

Node.js Example

This Node.js example uses an asynchronous function to get the epoch timestamp.

const icanhazepoch = require('icanhazepoch-js');

async function getCurrentEpoch() {
  try {
    const epochTime = await icanhazepoch.getEpoch();
    console.log(`Current Unix Epoch: ${epochTime}`);
    return epochTime;
  } catch (error) {
    console.error(`Error fetching epoch: ${error.message}`);
    return null;
  }
}

getCurrentEpoch();

Ruby Example

The Ruby example demonstrates fetching the epoch time using the installed gem.

require 'icanhazepoch-rb'

begin
  epoch_time = Icanhazepoch.get_epoch
  puts "Current Unix Epoch: #{epoch_time}"
rescue StandardError => e
  puts "Error fetching epoch: #{e.message}"
end

PHP Example

This PHP example uses Composer's autoloader to access the library and retrieve the epoch.

<?php

require_once 'vendor/autoload.php';

use Icanhazepoch\IcanhazepochPhp\Icanhazepoch;

try {
    $epochTime = Icanhazepoch::getEpoch();
    echo "Current Unix Epoch: " . $epochTime . "\n";
} catch (Exception $e) {
    echo "Error fetching epoch: " . $e->getMessage() . "\n";
}

?>

Community libraries

In addition to the official SDKs, the Icanhazepoch API's simplicity has inspired various community-contributed libraries and integrations. These libraries often cater to niche requirements, provide support for less common programming languages, or integrate Icanhazepoch functionality into broader frameworks or tools.

Community libraries typically leverage standard HTTP client libraries available in their respective ecosystems. For instance, a Java community library might use OkHttp for HTTP requests, while a C# library might use HttpClient. While these are not officially supported, they can offer valuable alternatives for developers working in environments without an official SDK.

Examples of potential community contributions might include:

  • Go (Golang) modules: A simple package wrapping net/http for fetching the epoch.
  • Rust crates: Using reqwest or similar crates to make the HTTP call and parse the response.
  • PowerShell scripts/modules: Functions utilizing Invoke-RestMethod to get the timestamp.
  • Client-side JavaScript libraries: Although less common due to browser security policies (CORS), some might wrap fetch API calls for specific use cases.

Developers interested in community libraries are encouraged to search public package repositories (e.g., GitHub, GitLab, language-specific package indexes) for "icanhazepoch" to discover available options. When using community-maintained code, it is advisable to review the source code, check for active maintenance, and understand its dependencies to ensure security and reliability.

The open nature of the Icanhazepoch API allows for continuous expansion of its integration ecosystem through community efforts, fostering a wide range of tools for various development workflows.