Giter VIP home page Giter VIP logo

openssl's Introduction

OpenSSL-Universal

OpenSSL CocoaPods, Carthage and Swift Package Manager package for iOS and macOS. A complete solution to OpenSSL on iOS and macOS. The package comes with precompiled libraries and includes a script to build newer versions if necessary.

The current version contains binaries built with the latest iOS SDK (target 11.0), and the latest macOS SDK (target 13) for all supported architectures (including macOS Catalyst).

Support & Sponsors

The financial sustainability of the project is possible thanks to the ongoing contributions from our GitHub Sponsors

Premium Sponsors

Emerge Tools is a suite of revolutionary products designed to supercharge mobile apps and the teams that build them.

emerge-tools-black

Architectures

  • iOS with architectures: arm64 + simulator (x86_64, arm64)
  • macOS with architectures: x86_64, arm64 (including Catalyst target)
  • visionOS with archtectures: arm64

Output Formats

Why?

Apple says: "Although OpenSSL is commonly used in the open source community, OpenSSL does not provide a stable API from version to version. For this reason, although OS X provides OpenSSL libraries, the OpenSSL libraries in OS X are deprecated, and OpenSSL has never been provided as part of iOS."

Installation

Build

You don't have to use the pre-built binaries I provide. You can build it locally on your trusted machine.

$ git clone https://github.com/krzyzanowskim/OpenSSL.git
$ cd OpenSSL
$ make

The result of a build process is put inside Frameworks directory.

Hardened Runtime (macOS) and Xcode

Binary OpenSSL.xcframework (Used by the Swift Package Manager package integration) won't load properly in your app if the app uses Sign to Run Locally Signing Certificate with Hardened Runtime enabled. It is possible to setup Xcode like this. To solve the problem you have two options:

  • Use proper Signing Certificate, eg. Development <- this is the proper action
  • Use Disable Library Validation aka com.apple.security.cs.disable-library-validation entitlement

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/krzyzanowskim/OpenSSL.git", from: "3.1.5003")
]

and then as a dependency for the Package target utilizing OpenSSL:

.target(
    name: "MyApp",
    dependencies: [
        .product(name: "OpenSSL", package: "OpenSSL")
    ]
),

CocoaPods

pod 'OpenSSL-Universal'

Carthage

  • If building from source is preferred:
github "krzyzanowskim/OpenSSL"
  • If using a prebuilt framework is preferred:
binary "https://raw.githubusercontent.com/krzyzanowskim/OpenSSL/main/OpenSSL.json"

Authors

Marcin Krzyżanowski

FAQ etc.

Where can I use OpenSSL-Universal?

These libraries work for both iOS and macOS. It is your prerogative to check. Ask yourself, are you trying to write an app for old devices? new devices only? all iOS devices? only macOS?, etc ::

What is XCFramework?

OpenSSL.xcframework is distributed as a multiplatform XCFramework bundle, for more information checkout the documentation Distributing Binary Frameworks as Swift Packages

openssl's People

Contributors

acecilia avatar aufflick avatar brianpartridge avatar catlan avatar coeur avatar ctingcter88 avatar darkdust avatar dnpp73 avatar ilammy avatar johnhammerlund avatar justinplouffe avatar katkayapps avatar krzyzanowskim avatar mangerlahn avatar nibe avatar orfeasz avatar richardtop avatar rustymagnet3000 avatar welljsjs avatar yaakov-h avatar zulkis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openssl's Issues

Public PodSpec

Hi @krzak!

Thanks for this library! its exactly what I was looking for.
Any chance to get your podspec public? I want to add your specific pod as a dependency in a podspec of my own that I'm working on.

Thanks!

Check that xcrun is not giving an error

With Xcode 9 and newer, the build.sh script may fail to build the libraries properly because xcrun is giving an error, but build.sh does not check if that's the case. (This causes build.sh to just continue running, not building all the proper architectures, and creating a faulty libcrypto.a and libssl.a).

It turns out that in some cases the Xcode command-line tools need to be configured properly in the Xcode Preferences (the Preferences > Locations > Command Line Tools field may be blank, and the user needs to select the current Xcode version).

You might want to add a check in the build.sh script that xcrun isn't throwing an error, and inform the user appropriately.

When running tests: "ld: library not found for -lcrypto"

"Build and run" works, but "Build and test" does not.

Here is a sample project showing this failure: https://github.com/danramteke/OpenSSL-iOSFailingTest-Sample

Here are the steps to reproduce:

  1. Create new Single View iOS App
  2. pod init
  3. add pod 'OpenSSL-Universal', :git => 'https://github.com/krzyzanowskim/OpenSSL.git', :branch => :master to the Podfile
  4. pod install
  5. open the workspace and hit cmd-U to run tests
  6. Observe that tests do not build

I'm using Cocoapods 1.6.1

Thanks for your help!

Cocoapod "transitive dependencies" error

With Cocoapods 0.37.1 I'm seeing this error when including OpenSSL-Universal in my iOS project:

[!] The 'Pods' target has transitive dependencies that include static binaries: (/private/var/folders/7b/mh8q849d64sc6r07cypfg_mh0000gn/T/CocoaPods/Lint/Pods/OpenSSL-Universal/lib-ios/libcrypto.a and /private/var/folders/7b/mh8q849d64sc6r07cypfg_mh0000gn/T/CocoaPods/Lint/Pods/OpenSSL-Universal/lib-ios/libssl.a)

I've tried cleaning my cocoapod cache etc. but I can't get it to work.

I'm not alone, apparently:

CocoaPods/CocoaPods#3583 (comment)

Project Catalyst Support (aka UIKit on macOS)

It looks like perhaps xcframeworks will be required? I am trying to wrap my head around what is necessary to enable cross compilation for that new target platform.

$ xcodebuild archive -workspace Alamofire.xcworkspace -scheme "Alamofire iOS" -sdk iphoneos13.0 OBJROOT=build/iOS
$ xcodebuild archive -workspace Alamofire.xcworkspace -scheme "Alamofire iOS" -sdk iphonesimulator13.0 OBJROOT=build/simulator
$ xcodebuild -create-xcframework -framework build/iOS/UninstalledProducts/iphoneos/Alamofire.framework -framework build/simulator/UninstalledProducts/iphonesimulator/Alamofire.framework -output build/Alamofire.xcframework

Cannot lock Carthage to a version

Parse error: found more than 3 dot-separated components in version in line: github "krzyzanowskim/OpenSSL" == 1.0.2.17

Carthage does not seem to support more than 2 dot-seperated components.
Our team locks dependencies to specific versions to avoid updating dependencies until we can make sure the updates do not break anything.

Why are you not using semantic versioning?
https://semver.org/

iOS9 build warnings

OpenSSL-Universal was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.

I'm catching this while using the Salesforce SDK, and see this error in many places. Just thought I would share.

Compilation Error on 32bit

Hi,
The 1.0.1.j version doesn't compile on 32 bit. It Throws the following:
Undefined symbols for architecture i386:
"_fopen$UNIX2003", referenced from:
_BIO_new_file in libcrypto.a(bss_file.o)
_file_ctrl in libcrypto.a(bss_file.o)
_open_console in libcrypto.a(ui_openssl.o)
"_fputs$UNIX2003", referenced from:
_write_string in libcrypto.a(ui_openssl.o)
_read_string in libcrypto.a(ui_openssl.o)
"_fwrite$UNIX2003", referenced from:
_file_write in libcrypto.a(bss_file.o)
_file_puts in libcrypto.a(bss_file.o)
_int_rsa_verify in libcrypto.a(rsa_sign.o)
_send_fp_chars in libcrypto.a(a_strex.o)
_write_fp in libcrypto.a(b_dump.o)
_read_string in libcrypto.a(ui_openssl.o)
_read_string_inner in libcrypto.a(ui_openssl.o)
...
"_strerror$UNIX2003", referenced from:
_ERR_load_ERR_strings in libcrypto.a(err.o)
ld: symbol(s) not found for architecture i386

On 64 bit simulators it works fine.
Thank you.

Xcode warning: libcrypto.a built for iOS.

Just having some trouble with the libcrypto.a file. When building in Xcode, I get the following warning:

URGENT: building for OSX, but linking in object file ([...]/OpenSSL-Universal/lib-ios/libcrypto.a(cryptlib.o)) built for iOS. Note: This will be an error in the future.

However, when using lipo to determine the target architecture of the library, I get the following result:
Architectures in the fat file: libcrypto.a are: i386 armv7 armv7s x86_64 arm64

Do you think this is an internal Xcode-bug?

Thanks in advance!

Option to compile from source & verify source GPG signatures

As much as I trust you to provide legitimate OpenSSL binaries, it should be possible for the user to compile the source directly and verify that the source GPG signature is valid. It seems that Cocoapods is not designed with C libraries in mind, so it is pretty much impossible to write a podspec for a C library that depends on a configure script at this point.

It gets even worse when you want to write a podspec that compiles a C library that depends on OpenSSL, or any other static library.

Update to 1.0.1g

Would somebody be so kind to upgrade this Podspec for OpenSSL 1.0.1g?

And thanks for sharing this pod. Makes using OpenSSL with Cocoa much easier.

how 2 use pkcs7_decrypt

int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data,
int flags);

hi,i use the function with swift , no use oc forever.
don't know how 2 use it , can u tell me a demo or documtents about the function?
google it found nothing... with ios PKCS7_decrypt

Please Add 1.0.217 tag for Carthage

Still having issues with the latest release not building in Carthage and we need to lock the dependency down to 2.17. Can you please add a carthage compatible tag for that version?

Fails to build OpenSSL 1.1.* due to misconfiguration

It appears that with OpenSSL 1.0.* the main parameter to the Configure script to determine the installation directory was --openssldir (with --prefix defaulting to it), while in the 1.1.* versions it's --prefix. Build.sh seems to assume the former, causing "make install" to actually install the libraries into the system directories, rather than /tmp. (This can be highly annoying if you were running the script with admin rights, as I found out. A lesson to be learned, for certain.) As a consequence, not only is the OpenSSL library installed into the system rather than /tmp, the building of the universal libcrypto.a fails to be done properly.

dlopen、dlsym

OpenSSL uses dlopen, dlsym, which causes the app to be rejected by Apple. Apple does not allow the use of private APIs.

Unable to update to latest version via CocoaPods

I've noticed something really strange and I don't know if the issue is in CocoaPods or something specific on my machine.

Inside the Pods/OpenSSL-Universal/include-ios/openssl/opensslv.h file, it says

# define OPENSSL_VERSION_NUMBER  0x1000115fL
# ifdef OPENSSL_FIPS
#  define OPENSSL_VERSION_TEXT    "OpenSSL 1.0.1u-fips  22 Sep 2016"
# else
#  define OPENSSL_VERSION_TEXT    "OpenSSL 1.0.1u  22 Sep 2016"
# endif
# define OPENSSL_VERSION_PTEXT   " part of " OPENSSL_VERSION_TEXT

But I was pretty sure that I installed OpenSSL-Universal in version 1.0.2.10. It even says that when running pod install: Installing OpenSSL-Universal (1.0.2.10). And inside the Podfile.lock, I can see it's listed with the correct version number:

PODS:
  - OpenSSL-Universal (1.0.2.10)

And it still seems to me like that it installed the latest 1.0.1 version (1.0.1.20 to be precise). This is so weird. Did someone successfully installed 1.0.2 of this library via CocoaPods?

I even tried pod try OpenSSL-Universal and it's also downloading 1.0.1.20 instead of the latest version 1.0.2.10. Any ideas?

Edit: I'm running CocoaPods 1.3.1.

1.1.0g update + arm64 support

Any plans to start building the 1.1.0 release of OpenSSL for CocoaPods? Im looking for more Elliptic Curve support that is only in the 1.1 and later builds.

Sign JWT?

Can you show an example of how to use this to sign a JWT header please? In PHP I'd do it like so:

$pkey = openssl_pkey_get_private('file://' . AUTH_KEY_PATH);
openssl_sign("$header.$claims", $signature, $pkey, 'sha256');

and then the signed string is available as $signature.

Thanks!

How to call OpenSSL Functions

I just compiled as per the instructions but now how to call the functions here. I included my own header as per the Github repo as there was no header in OpenSSL-Universal folder of the pod.

List of Embedded certificates

Is there a way to get the list of embedded certificates within a certificate, kind of stuck with it can you help ?

sha1_block_data_order + 124 Crash

0 PPC sha1_block_data_order + 124
1 PPC 0x8dedff18
2 PPC ssleay_rand_add + 548
3 PPC ssleay_rand_bytes + 328
4 PPC bnrand + 416
5 PPC bn_rand_range + 212
6 PPC EC_KEY_generate_key + 112

OpenSSL-Universal (= 1.0.2.1)
iOS 12.1.1 (16C5036c) iPhone 6 Plus

Problem on iphone 5 below

ld: warning: tentative definition of '_OPENSSL_ia32cap_P' with size 16 from '/Users/pop/Documents/rphl-ios-app/PortSIPLib.framework/PortSIPLib(PortSIPLib)' is being replaced by real definition of smaller size 8 from '/Users/pop/Documents/rphl-ios-app/Pods/OpenSSL-Universal/lib-ios/libcrypto.a(cryptlib.o)'

Problem on iphone 5 below but iphone 5s or heigher is work normal
How to fix this problem thankyou :)

Not able to clone project from CocoaPods

I was trying to install OpenSSL using Cocoapods. This is my Podfile:

target 'MyTarget' do
use_frameworks!
pod 'KFSwiftImageLoader'
pod 'FMDB'
pod 'Fabric'
pod 'Crashlytics'
pod 'Charts'
pod 'OpenSSL-Universal', :git => 'https://github.com/krzyzanowskim/OpenSSL.git', :branch => :master
end

After running pod install in terminal
Terminal is not cloning the project propertly. My xcode version is 8.3. My collegue whose xcode version is 8.2.1 it is installing properly. Following is my terminal verbose:


 Preparing

Analyzing dependencies

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods-NLP`: (``)
  Using `ARCHS` setting to build architectures of target
  `Pods-SwaggerRolesAndPolicies`: (``)
  Using `ARCHS` setting to build architectures of target
  `Pods-SwaggerUserProfile`: (``)
  Using `ARCHS` setting to build architectures of target
  `Pods-SwaggerNextStudent`: (``)
  Using `ARCHS` setting to build architectures of target `Pods-SwaggerLogin`:
  (``)
  Using `ARCHS` setting to build architectures of target
  `Pods-SwaggerNextAttendance`: (``)
  Using `ARCHS` setting to build architectures of target `Pods-SwaggerNextFee`:
  (``)
  Using `ARCHS` setting to build architectures of target
  `Pods-SwaggerNextStaff`: (``)

Finding Podfile changes
  A OpenSSL-Universal
  - Alamofire
  - Charts
  - Crashlytics
  - FMDB
  - Fabric
  - KFSwiftImageLoader

Fetching external sources
-> Pre-downloading: `OpenSSL-Universal` from `https://github.com/krzyzanowskim/OpenSSL.git`, branch `master`
  $ /usr/bin/git ls-remote https://github.com/krzyzanowskim/OpenSSL.git master
  32a7d4c21b63a2536a36dae7ee2860b247571bbb	refs/heads/master
 > Git download
 > Git download
     $ /usr/bin/git clone https://github.com/krzyzanowskim/OpenSSL.git
     /var/folders/nz/8hrtwpzd5dj617b_38nqrw940000gn/T/d20170522-5153-1w8dqag
     --template=
     Cloning into '/var/folders/nz/8hrtwpzd5dj617b_38nqrw940000gn/T/d20170522-5153-1w8dqag'...

It is struck at this point.

1.0.2 update?

Hi, thanks for the great project. Are you planning to update to 1.0.2? (I'm confused as the last update to 1.0.1 is after 1.0.2 was released, so I'm thinking perhaps keeping it at 1.0.1 is very intentional?)

Cheers

Nik

openssl/opensslconf.h' file not found

In file included from /Users/me/Desktop/xxx/xxx/xxx/Pods/SSZipArchive/SSZipArchive/minizip/zip.c:43:
/Users/me/Desktop/xxx/xxx/xxx/Pods/OpenSSL-Universal/include-ios/openssl/aes.h:55:11:
fatal error: 'openssl/opensslconf.h' file not found
# include <openssl/opensslconf.h>
^~~~~~~~~~~~~~~~~~~~~~~

xcodebuild command failed

how use penssl ios

how to use it to do this shell cmd?
"openssl rsa -in server.pem -out server.key"

opensslconf.h is correct for one architecture; and not the others

opensslconf.h is generated anew for each configuration of OpenSSL. Its _not_ safe to use one opensslconf.h for all OpenSSL configurations. Also see Is it safe to build the cURL library as multi-arch? (same problem, different library).

From the looks of opensslconf.h located in include-ios/openssl, it appears the conf file is for i386 (i.e., iOS debugging):

/* Generate 80386 code? */
#undef I386_ONLY
...

The work around for fat binaries is to copy each opensslconf.h with a new name. I.e, the opensslconf.h generated with armv7 would be named opensslconf-armv7.h, the opensslconf.h generated with i386 would be named opensslconf-i386.h, and so on.

Then, you provide one opensslconf.h which gathers up the architecture dependent conf files:

/* opensslconf.h */

#if defined(__APPLE__) && defined (__i386__)
# include opensslconf-i386.h
#endif

#if defined(__APPLE__) && defined (__arm__)
# include opensslconf-armv7.h
#endif

#if defined(__APPLE__) && (defined (__arm64__) || defined (__aarch64__))
# include opensslconf-arm64.h
#endif

...

My apologies if I am parsing things incorrectly.

Bug in podspec causes linker issues

This line should be removed:

s.libraries = 'ssl', 'crypto'

The libraries command is for system libraries, not for vendored libraries. From the docs: "A list of system libraries that the user’s target (application) needs to link against."

Specifically, it results in -lcrypto -lssl in the generated build settings for targets that should not be linking the pod. It's subtle, it only manifested as an issue for us when we had a test target nested in the app target in our Podfile.

Removing this line makes everything work when I used a local fork of this podspec.

The latest version (1.0.2.18) does not conatin bitcode

Using 1.0.2.18 via CocoaPods, Xcode build failed with:

'.../MyProject/Pods/OpenSSL-Universal/Frameworks/ios/OpenSSL.framework/OpenSSL" does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file '.../MyProject/Pods/OpenSSL-Universal/Frameworks/ios/OpenSSL.framework/OpenSSL' for architecture arm64

while 1.0.2.17 is OK

ld: could not reparse object file in bitcode bundle

Recently we've add the dependency of OpenSSL-Universal, our CI system is using Xcode 10.1 version and project setting (not target setting) is set to ENABLE_BITCODE=YES. The project was failed when archive.

ld: could not reparse object file in bitcode bundle: 'Invalid bitcode version (Producer: '1001.0.46.3.0_0' Reader: '1000.11.45.5_0')', using libLTO version 'LLVM version 10.0.0, (clang-1000.11.45.5)' for architecture arm64

Is it possible to provide two kinds of pod, one is static binary and another is source code, which may be much compatible? maybe two subspec or something...

Thanks

CocoaPods with use_frameworks! option

I cannot get CocoaPods to install OpenSSL-Universal with the "use_frameworks!" option in my Podfile.

!] The 'Pods' target has transitive dependencies that include static binaries: (Pods/OpenSSL-Universal/lib-ios/libcrypto.a and Pods/OpenSSL-Universal/lib-ios/libssl.a)

Are there any workarounds? I know I can remove the use_frameworks! option, but I need it for other target dependencies using Swift.

Thanks!

Inconsisten length result of RSA with PKCS1 padding

hi, i develop RSA PKCS1padding to encrypt my password text using pod Universal-openssl. The problem is when i call RSA_public_encrypt method the result of " (unsigned char *) to " length is inconsistent. In my case the right length value is 128, but sometimes the process return 0 length or any number. This is my sample code :

BIGNUM *xponent = BN_new();
    BIGNUM *modulus = BN_new();
    BN_hex2bn(&xponent,xponentInHex);
    BN_hex2bn(&modulus,modInHex);

    RSA *rsa = RSA_new();
    rsa->e = xponent;
    rsa->n = modulus;
    char encoded[1024] = {0};

    RSA_public_encrypt(
        (int)strlen(charString),// from len
        (const unsigned char *)charString, // from
        (unsigned char *)encoded, // to
        rsa,
        RSA_PKCS1_PADDING
    );

    RSA_free(rsa);
NSLog(@"%lu", strlen(encoded));

if any have issue about my implement. please let me know. thanks

Change version numbering for better CocoaPods support

As per this issue: CocoaPods/CocoaPods#3180

The use of letters in the versioning signifies (incorrectly) to CocoaPods that OpenSSL-Universal is a pre-release version.

In previous versions of CocoaPods this may not have been an issue, but with 0.39 it appears to be, eg:

Resolving dependencies of `Podfile`
[!] Due to the previous naïve CocoaPods resolver, you were using a pre-release version of `OpenSSL-Universal`, without explicitly asking for a pre-release version, which now leads to a conflict. Please decide to either use that pre-release version by adding the version requirement to your Podfile (e.g. `pod 'OpenSSL-Universal', '= 1.0.1.i'`) or revert to a stable version by running `pod update OpenSSL-Universal`.

Subspec for libCrypto

CocoaPods allows to separate larger pods into smaller sub-pods. In case of OpenSSL this may be used to use a OpenSSL-Universal/Crypto pod independently from OpenSSL-Universal/SSL or OpenSSL-Universal if you need both.

Documentation about subspecs can be found here: http://guides.cocoapods.org/making/specs-and-specs-repo.html

This is not some kind great feature, but it would help reduce the app size a bit in case of applications which only use the crypto library.

Cocoapods cannot download OpenSSL sourcecode?

When updating my Podfile, I am getting the following error with OpenSSL-Universal:

[!] Error installing OpenSSL
[!] /usr/bin/curl -f -L -o /var/folders/rk/77z6bks12_38_rmrfn01r2zw0000gp/T/d20150710-69477-1w6p0ob/file.tgz https://openssl.org/source/openssl-1.0.2c.tar.gz --create-dirs

% Total % Received % Xferd Average Speed Time Time Time Current

                            Dload  Upload   Total   Spent    Left  Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (22) The requested URL returned error: 404 Not Found

When checking, it seems that openssl.org does not host https://openssl.org/source/openssl-1.0.2c.tar.gz anymore...

Pod setting is:

pod 'OpenSSL-Universal', :git => 'https://github.com/krzyzanowskim/OpenSSL.git', :branch => :master

'openssl/ssl.h' file not found

I am trying to import the library but can not
in my Xcode project I am using it like below

#ifdef WITH_TLS
# include <openssl/ssl.h>
#else

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.