>
sonic sdk
The Sonic SDK provides a complete toolset to ease the integration of the Sonic protocol into new and existing Online Social Network (OSN) platforms. It is written in PHP 5.6 and is fully compatible with PHP 7.0+. The Sonic SDK can be installed via Composer or fetched directly from GitHub.
system requirements
changelog
installation
Install via composer:
composer require sgoendoer/sonic
or configure your composer.json like this:
"require": {
   "sgoendoer/sonic": "0.3.0"
}
and run
composer update
configuration
Configuration::setTimezone('Europe/Berlin');
Configuration::setVerbose(1);
getting started
require_once(__DIR__ . '/vendor/autoload.php');

use sgoendoer\Sonic\Sonic;

use sgoendoer\Sonic\Config\Config;

use sgoendoer\Sonic\Identity\EntityAuthData;
use sgoendoer\Sonic\Identity\SocialRecord;
use sgoendoer\Sonic\Identity\SocialRecordManager;

try {
	// Sonic requires the \Sonic\Identity\SocialRecord of the Sonic platform for
	// initialization. Here, we import one from a String resource using
	// \Sonic\Identity\SocialRecordManager

	$platformSR = '{"socialRecord":{"@context": --truncated-- }';

	$sr = SocialRecordManager::importSocialRecord($platformSR);
	$platformSocialRecord = $sr['socialRecord'];
	$platformAccountKeyPair = $sr['accountKeyPair'];
	$platformPersonalKeyPair = $sr['personalKeyPair'];

	// We do the same for a user "Alice's" \Sonic\Identity\SocialRecord

	$aliceSR = '{"socialRecord":{"@context": --truncated -- }';

	$sr = SocialRecordManager::importSocialRecord($aliceSR);
	$userSocialRecord = $sr['socialRecord'];
	$userAccountKeyPair = $sr['accountKeyPair'];
	$userPersonalKeyPair = $sr['personalKeyPair'];

	// Before we can initialize the Sonic SDK, we need to pass a few configuration parameters.
	// Parameters we don't set explicitly will be set to default values.

	Configuration::setTimezone('Europe/Berlin');
	Configuration::setVerbose(1);

	// Now, we can initialize the Sonic SDK. The SDK's context will be set to "platform"
	// automatically

	$sonic = Sonic::initInstance(new EntityAuthData(
									$platformSocialRecord,
									$platformAccountKeyPair,
									$platformPersonalKeyPair));

	// From this point on, the Sonic SDK is fully initialized. Anyhow, the context must be
	// set to "user" in order to perform requests in the context of a user:

	Sonic::setUserAuthData(
		new EntityAuthData($userSocialRecord, $userAccountKeyPair));
	Sonic::setContext(Sonic::CONTEXT_USER);

	// Now we can perform a request to another user's profile using a GlobalID

	$globalID = '28B6TE8T9NUO202C5NZIUTNQSP88E70B8JAWH4FQ58OJOB8LIF';
	$response = (new ProfileRequestBuilder($globalID))
					->createGETProfile()
					->dispatch();
	$profile = ProfileObjectBuilder::buildFromJSON($response->getPayload());

	echo $profile->getJSONString() . "\n\n";
} catch (\Exception $e) {}
gsls
The Global Social Lookup System (GSLS) is the identity management service of Sonic. It is written in Java 8 and builds on TomP2P, Spring boot, and Docker. The code can be fetched directly from GitHub.
system requirements
changelog
installation
Build and install by running
git clone https://github.com/sgoendoer/gsls.git
git ckeckout tags/0.2.5
mvn clean
mvn install
docker build -t sgoendoer/gsls:0.2.5 .
docker run -d -p 4001:4001/tcp -p 4001:4001/udp -p 4002:4002/tcp sgoendoer/gsls:0.2.5
configuration
start with option -h so view available startup options
java -jar gsls-0.2.5.jar -h