Status of Skynet SDKs (Out of Date)

tags: SDK

This document contains the current state of the functionality and documentation of the Skynet SDKs, available in these languages:

as well as the Skynet CLI (written in Go).

Notes

  • This document may at times be temporarily out of sync with the main documentation. When in doubt, go by the official docs.
  • Unofficial SDKs are not included.

Supported functions

The following is a list of functionality and whether it is supported by each language. Cells marked by ** correspond to functionality not yet documented.

Note: You may need to scroll right to see all SDKs.

Functionality Endpoint JS NodeJS Python Go CLI
Client
Create a default client n/a SkynetClient() SkynetClient() SkynetClient() skynet.New() n/a
Create a client with custom options n/a SkynetClient(portal, opts) SkynetClient(portal, opts) SkynetClient(portal, opts) skynet.NewCustom(portal, opts) n/a
Uploading
Upload file /skynet/skyfile [POST] uploadFile UploadFile upload_file UploadFile skynet upload
Upload directory /skynet/skyfile [POST] with the files field set uploadDirectory UploadDirectory upload_directory UploadDirectory skynet upload
Upload file, get full response /skynet/skyfile [POST] uploadFileRequest No upload_file_request No No
Upload directory, get full response /skynet/skyfile [POST] uploadDirectoryRequest No upload_directory_request No No
Upload generic data /skynet/skyfile [POST] Not supported Not supported Not supported ** Upload Not supported
Upload with encryption ** Yes Not supported Not supported Not supported SkykeyName, SkykeyID skykey-name, skykey-id
Downloading
Download file /skynet/skylink [GET] downloadFile / openFile DownloadFile download_file DownloadFile skynet download
Download directory ** /skynet/skylink [GET] (see format parameter)
Download skylink headers /skynet/skylink [HEAD] Not supported Not supported get_metadata Not supported Not supported
Download generic data /skynet/skylink [GET] Not supported Not supported Not supported ** Download Not supported
Download with decryption ** Yes Not supported Not supported Not supported SkykeyName, SkykeyID skykey-name, skykey-idNot supported
Encryption
Add skykey /skynet/addskykey [POST] Not supported Not supported Not supported AddSkykey skynet skykey add
Create skykey /skynet/createskykey [POST] Not supported Not supported Not supported CreateSkykey skynet skykey create
List all skykeys /skynet/skykeys [GET] Not supported Not supported Not supported GetSkykeys skynet skykey list
Get skykey by name /skynet/skykey [GET] Not supported Not supported Not supported GetSkykeyByName skynet skykey get name
Get skykey by ID /skynet/skykey [GET] Not supported Not supported Not supported GetSkykeyByID skynet skykey get id
Handshake
Downloading Handshake files /hns [GET] downloadFileHns
Resolving Handshake domains /hnsres [GET] resolveHns

Supported constants

Constant JS NodeJS Python Go
Default portal URL defaultSkynetPortalUrl defaultPortalUrl defaultPortalUrl() DefaultPortalURL
Skynet URI prefix uriSkynetPrefix uri_skynet_prefix uri_skynet_prefix() URISkynetPrefix

Tests

Unit tests

Test JS NodeJS Python Go
Directory walking n/a No Yes Yes
URL creation Yes Yes Yes Yes

Integration/Mock tests

Test JS NodeJS Python Go
Uploading
Basic file uploads Yes Yes Yes Yes
Basic directory uploads Yes Yes Yes Yes
Upload files with custom names Yes Yes Yes Yes
Upload directories with custom names Yes Yes Yes Yes
Upload with skykey No No No Yes
Downloading
Basic file downloads Yes Yes Yes Yes
Download with skykey No No No Yes
Encryption
Add skykey No No No Yes
Create skykey No No No Yes
Get skykey by name/id No No No Yes
List skykeys No No No Yes
Connection Options
Authentication Yes Yes Yes Yes
Custom User Agent
Request timeouts No No No No

Misc

Misc features Shell JS NodeJS Python Go CLI
Uploading
Custom filename ** Yes customFilename customFilename custom_filename CustomFilename --filename
Custom dirname ** Yes customDirname customDirname custom_dirname CustomDirname --dirname
Default path ** Yes No No No No No
Dryrun ** Yes No ** dryRun No No No
Downloading
Path parameter n/a Open PR No No No No
Common Options
Authentication for all the endpoints --user "":"foobar" APIKey APIKey api_key APIKey --api-key
Custom user-agent -A "Sia-Agent" customuserAgent customUserAgent custom_user_agent CustomUserAgent --custom-user-agent
Request timeouts ** Yes (Set the timeout field) No No ** timeout_seconds No No
Query parameter n/a Open PR No No No No
Uncategorized
API defined in separate files instead of one file n/a Yes Yes Yes Yes No
Encode URLs when making requests n/a Open PR No No No No

See Also

Select a repo