gianlucabertani / objective-zip Goto Github PK
View Code? Open in Web Editor NEWAn object-oriented friendly wrapper library for ZLib and MiniZip, in Objective-C for iOS and OS X
License: BSD 3-Clause "New" or "Revised" License
An object-oriented friendly wrapper library for ZLib and MiniZip, in Objective-C for iOS and OS X
License: BSD 3-Clause "New" or "Revised" License
Hi,
I'm using ObjectiveZip since a while under iOS 6.1 and iOS 7.0 on simulator and device.
But I experienced something weird since iOS 7.1.
I'm zipping a file with a password with the simulator, then I upload it on a server and then I get it back with the application on the device. And since my device is in iOS 7.1, the app crashes into the "readDataWithBuffer" method and I have the error message : "Error reading '%@' in the zipfile"
I didn't change a single line of code since then.
After that, I tried to go further and I remove the password protection on the zip file and it works well. Is there something in the encryption of the zip file with password ince iOS 7.1 ?
Thanks for your answer
hi,my code can't be unzipped using the standard unzipper tool (Archive Utility).
ZipArchive* zip = [[ZipArchive alloc] init];
BOOL ok;
ok = [zip CreateZipFile2:zipPath];
ok = [zip addFileToZip:@"1" newname:@"1"];// this's a file not directory
ok = [zip CloseZipFile2];
can u help me? thanks!
Hi, I just noticed that the Google Code page says it will be deleted on the 31st (tomorrow!), but I have not been able to find the "Getting Started" guide on Github (or linked from Git Hub). I just want to make sure the getting started guide is not lost. It was very helpful for me.
The most recent change to the Swift 3 language (as delivered in XCode 8 beta 6) has made some further changes to the way ObjectiveC interacts with Swift.
Once the code in Objective-Zip_Swift_Tests.swift has been brought up to "current" Swift syntax, the tests segfault with EXC_BAD_ACCESS (code=-1, address=0x3) on line 143 when the NSData buffer is populated using OZZipReadStream.readData():
NSLog("Test 1: reading from first file's stream...")
let data1 = NSMutableData(length:256)!
let bytesRead1 = try read1.readData(withBuffer: data1) <<< FAIL HERE!
This code passed without any issue using XCode 7.3 and Swift 2.x. I really can't help but think there is some link here between the expected return value of 3 (bytes read) and the reported address of 0x3 in the EXC_BAD_ACCESS.
// if (len > UINT16_MAX)
// return UNZ_PARAMERROR;
s->pfile_in_zip_read->stream.next_out = (Bytef*)buf;
s->pfile_in_zip_read->stream.avail_out = (uInt)len;
if (s->pfile_in_zip_read->raw)
{
if (len > s->pfile_in_zip_read->rest_read_compressed + s->pfile_in_zip_read->stream.avail_in)
s->pfile_in_zip_read->stream.avail_out = (uInt)s->pfile_in_zip_read->rest_read_compressed +
s->pfile_in_zip_read->stream.avail_in;
}
else
{
if (len > s->pfile_in_zip_read->rest_read_uncompressed)
s->pfile_in_zip_read->stream.avail_out = (uInt)s->pfile_in_zip_read->rest_read_uncompressed;
}
Hey. Im trying to zip file with password. It seems like zip operation ends with no any error, but when i unzip file on MacOSX or Windows i get wrong password error.
My code:
ZipFile * zipFile = [[ZipFile alloc] initWithFileName:zipFilePath mode:ZipFileModeCreate];
ZipWriteStream * stream = [zipFile writeFileInZipWithName:@"test.txt"
fileDate:[NSDate date]
compressionLevel:ZipCompressionLevelBest
password:@"123"
crc32:0];
NSString * someString = @"This is contents of file";
[stream writeData:[someString dataUsingEncoding:NSUTF8StringEncoding]];
[stream finishedWriting];
[zipFile close];
Well, the project is not documented so good. I can't understand does error cause by crc32=0, or something else. Please help me.
I found the same question on stackoverflow, with no answer: http://stackoverflow.com/questions/17872565/ios-objective-zip-password-wrong
Cocoapods install on El Capitan returns "Unable to find a specification for `Objective-Zip (~> 1.0)"
cocoapods-0.39.0
pod 'Objective-Zip', '~> 1.0'
I am trying to unzip. However, if I do following, resulting readSize
is 0 and contentsData
contains 0 length of data. My unzip snippet is following the instruction shown in https://github.com/flyingdolphinstudio/Objective-Zip/blob/master/GETTING_STARTED.md , using password. If I try same file in other environment, I can open it with password.
ZipFile *importedZip = [[ZipFile alloc] initWithFileName:importedFilename mode:ZipFileModeUnzip];
FXDLog(@"importedZip fileName: %@ numFilesInZip: %u", [importedZip fileName], [importedZip numFilesInZip]);
FXDLog(@"importedZip listFileInZipInfos:\n%@", [importedZip listFileInZipInfos]);
[importedZip goToFirstFileInZip];
BOOL fileLocated = [importedZip locateFileInZip:filenameMainExported];
FXDLog(@"fileLocated: %d", fileLocated);
if (fileLocated == NO) {
//TODO: shouldAlert
}
ZipReadStream *importingStream = [importedZip readCurrentFileInZipWithPassword:textField.text];
FXDLog(@"importingStream: %@", importingStream);
if (importingStream == nil) {
//TODO: shouldAlert
}
NSMutableData *contentsData = [[NSMutableData alloc] initWithCapacity:256];
NSUInteger readSize = [importingStream readDataWithBuffer:contentsData];
FXDLog(@"readSize: %u", readSize);
FXDLog(@"contentsData length: %u", [contentsData length]);
[importingStream finishedReading];
[importedZip close];
if ([contentsData length] == 0) {
//TODO: shouldAlert;
}
Hi I am trying to unzip password protected file. But it gives me expections
here is my sample code
OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:filePath mode:OZZipFileModeUnzip];
[unzipFile goToFirstFileInZip];
BOOL keepReading = YES;
@try {
while(keepReading){
OZFileInZipInfo *fInfo = [unzipFile getCurrentFileInZipInfo];
OZZipReadStream *readStream = [unzipFile readCurrentFileInZipWithPassword:@"password"];
NSMutableData *data = [[NSMutableData alloc] initWithLength:fInfo.length];
[readStream readDataWithBuffer:data];
[readStream finishedReading];
NSString* unzippedFilename = [self validFilePathForFilename:fInfo.name atPath:path];
[data writeToFile:unzippedFilename atomically:YES];
keepReading = [unzipFile goToNextFileInZip];
}
}
@catch (NSException *exception) {
NSLog(@"unzip file %@ failed:%@", filePath, exception.reason);
}
@finally {
[unzipFile close];
}
Can you please let me know whats problem
Is it really not possible to just extract the contents of the zip to a path?
What is the point of case if (len > UINT16_MAX) return UNZ_PARAMERROR;
in unzReadCurrentFile
?
It fails on any file more than 65kb.
I installed latest version through CocoaPods and compiler shows errors:
Unknown type name 'unz_global_info64'; did you mean 'unz_global_info'?
Hi
Love this library, but I’m having problems with password-protected zip files. I can create them and open them fine when building as a 64 bit Mac app. However when trying to open them in the 32 bit iOS simulator I have problems. The zip opens fine, but the password-protected file cannot be extracted and it gives an error:
Error reading ‘file’ in the zipfile
The zip that is created on the 64 bit Mac app also has the same problems when attempting to be opened by 7-zip on Windows:
Data error in encrypted file ‘file’. Wrong password?
There are no problems if I don’t password-protect the zip and in this case they can be passed between 64 bit and 32 bit iOS and Mac systems and also Windows. Although, curiously, I cannot double-click and extract the zips in the Finder - I get a .cpgz file created instead.
There were many compiler warnings about loss of precision from longs to ints when using XCode 5.1. I can silence the compiler with casts in the code, but the issues above remain whether I add the casts or leave the code as it is.
I am using XCode 5.1 on OS X 10.9.2 and version 0.8.3 of Objective-Zip.
Hope you can help
Thanks
This would probably be automatically working if there were frameworks.
Hello, first of all thanks for the library.
I trying to zip 2 300 or more thumbnail files with size of 2kB each and my iOS application is crash without any errors.
My code looks like this:
@try {
OZZipFile *zipFile= [[OZZipFile alloc] initWithFileName: zipPath
mode: OZZipFileModeCreate
legacy32BitMode:YES];
for(int i = 0; i<filesArray.count; i++){
NSString *path = [filesArray objectAtIndex:i];
OZZipWriteStream *stream= [zipFile
writeFileInZipWithName: path
compressionLevel: OZZipCompressionLevelBest];
NSError *error;
NSData *data = [NSData dataWithContentsOfFile: path
options: NSDataReadingMappedIfSafe
error: &error];
if (data == nil) {
NSLog(@"\n Error to read file(zipSource): %@ \n", error);
}
[stream writeData: data];
[stream finishedWriting];
}
[zipFile close];
} @catch (OZZipException *ze) {
NSLog(@"OZZipException : %@",[ze reason]);
} @finally {
}
If I want to archive for example 2 000 files or less all is OK and application not crash.
How can find where is the problem?
De we have limitation for number of files that can be zipped with this library?
Thanks in advance!
How to know if a file is encrypted before reading it?
Please check your example https://github.com/gianlucabertani/Objective-Zip#reading-a-file-from-a-zip-file
I think you meant data and not buffer.
Make the library a good citizen and add build targets for isOS and OSX frameworks.
Hello all,
I am using Objective-zip library in my project However when I create zip file with password I am not able to open it. It always says that password is not valid. This is my code:
OZZipFile *zipFile= [[OZZipFile alloc] initWithFileName:fullPath mode:OZZipFileModeCreate]; uint32_t crc= [errorLogData crc32]; NSError* myerror = nil; OZZipWriteStream *zipWriteStream = [zipFile writeFileInZipWithName:baseNameLog fileDate:[NSDate date] compressionLevel:OZZipCompressionLevelBest password:@"bla" crc32:crc error:&myerror];
I have printed value of myerror, which is nil and crc which is not zero.
I think this is a problem in the library. Could you check it?
I am using macOS 10.12.6 for development
Regards
Hello, first of all thanks for the library.
When trying to unzip a zip file, it always crash for me on this step:
OZZipFile *unzipFile= [[OZZipFile alloc] initWithFileName:@"test.zip" mode:OZZipFileModeUnzip];
I double checked and the zip file is exist and can be unzipped correctly by OSX archiver. Zip file is created by OSX archiver.
It always crash on:
unzip.c > unzOpenInternal() line 577 unzGoToFirstFile((unzFile)s);
#0 0x00000001842bb7b8 in flockfile ()
#1 0x00000001842c7488 in fseek ()
#2 0x0000000100371ca0 in unzlocal_GetCurrentFileInfoInternal ()
#3 0x0000000100372d08 in unzGoToFirstFile ()
#4 0x000000010013a4bc in unzOpenInternal at /Users/Est/tiramisu/Pods/objective-zip/MiniZip/unzip.c:577
#5 0x000000010013a500 in unzOpen64 at /Users/Est/tiramisu/Pods/objective-zip/MiniZip/unzip.c:613
#6 0x0000000100130ff4 in -[OZZipFile initWithFileName:mode:legacy32BitMode:] at /Users/Est/tiramisu/Pods/objective-zip/Objective-Zip/OZZipFile.m:98
#7 0x0000000100130e20 in -[OZZipFile initWithFileName:mode:] at /Users/Est/tiramisu/Pods/objective-zip/Objective-Zip/OZZipFile.m:83
#8 0x0000000100131320 in -[OZZipFile initWithFileName:mode:error:] at /Users/Est/tiramisu/Pods/objective-zip/Objective-Zip/OZZipFile.m:134
Any idea why it crash when initializing the OZZipFile
? Thanks in advance.
In Xcode 6.1.1 Product > Analyse shows lots of implicit conversion warnings in ZipFile.m
. Those could be easily fixed with explicit casting.
As you can see on screenshot, line 102
is fixed. You can check on updated ZipFile.m.
If you think this is good idea, I can push my changes to the project.
I posted my issue on code.google.com site, but noticed github is the new site. Here is the original post I placed at code.google.com.
What steps will reproduce the problem?
What is the expected output? What do you see instead?
We need to acquire a valid handle to the zipped file. Instead, an exception occurs.
What version of the product are you using? On what operating system?
I downloaded the most recent (Version 0.8) which contains Minizip v1.1
I am using a Mac OS X Lion with Xcode v4.3.1
Please provide any additional information below.
Hi, first of all I would like to thank you for this great library.
I am trying to write an Excel (XLSX) parser/writer. I successfully integrated Objective-Zip to my project and I am using it to unzip and zip the XLSX file. For testing purposes, for now, I am only modifying one of the XML files inside the XLSX file.
The problem is, after updating the XLSX file, it becomes corrupt. I double checked if there is a problem with my XML generation and there is not. I am pretty much sure, because I tried the following:
I am wondering if I am doing something wrong or if there is a problem with the library with respect to zipping of XLSX files.
Here is my code:
ZipFile *zipFile = [[ZipFile alloc] initWithFileName:XLSXDocumentsFilePath mode:ZipFileModeAppend]; ZipWriteStream *stream= [zipFile writeFileInZipWithName:XLSX_WORKSHEET_XML_SUBPATH compressionLevel:ZipCompressionLevelNone]; [stream writeData:data]; [stream finishedWriting]; [zipFile close];
By the way, I tried all of the compressionLevel's available.
Would it be possible to add the possibility to read from InputStream as well?
Thanks
Hello,
Thanks for your great work!
Since I upgraded to version 1.0.5 from 1.0.3, I'm no longer able to unzip files. I noticed that if I remove the OpenSSL dependency I have (pod 'OpenSSL', '~> 1.0'), it works again. Versions 1.0.4 & 1.0.5 are affected, 1.0.3 works.
The app throws an exception in OZZipReadStream.m at line 81 (in method readDataWithBuffer, result of unzReadCurrentFile is < 0).
When upgrading I noticed that a crypt.c file is added to MiniZip, maybe there's a conflict somewhere in this file with OpenSSL (which has a crypto.h file).
Not sure if you can / want to do something, but please let me know if it is the case.
Thanks!
Hi !
On version 1.0.5. I found some zip file error by following code:
if (len > UINT16_MAX)
return UNZ_PARAMERROR;
with #define UINT16_MAX 65535
Plesae check.
Thank you.
Hi,
I am using the following method to zip a text file:
ZipFile *zipFile= [[ZipFile alloc] initWithFileName:zip_file_name mode:ZipFileModeCreate];
NSDictionary *attributes = [[NSFileManager defaultManager]attributesOfItemAtPath:txt_file_name error:&error];
NSDate *Date = [attributes objectForKey:NSFileCreationDate];
NSData *filedata = [NSData dataWithContentsOfFile:txt_file_name];
ZipWriteStream *stream = [zipFile writeFileInZipWithName:txt_file_name fileDate:Date compressionLevel:ZipCompressionLevelBest];
[stream writeData:filedata];
[stream finishedWriting];
[zipFile close];
However, my file seems to be corrupted. It has a non-zero size, and is in the correct location.
Does anybody have any ideas? Could there be anything i am doing later in my code that could corrupt it?
Mike
The 1.0.5 release removes the NSDate+DOSDate.h file but does not remove the dependency on it in OZZipFile.m So a clean pod install on a new machine, for instance, causes a compile time error.
There may also still be a dependency on NSDate+CRC32.h but I didn't look further into things.
Rolling back to 1.0.4 worked. This should be fixed for future versions. Either the file(s) needs to be kept in the pull or the dependency needs to be removed.
b7dcbb6#diff-528c3c70a8a9ce1cf813477bba5d3aee removed the init method signature from the header.
How am I supposed to alloc and init with a filename in Objective-C now?
As more and more modules support Carthage now, it would be very convienent for Objective-Zip to add support for it as well, so projects don't have to end up using two dependency managers.
Do you have any plans for this?
I am unzipping files of more than 5 Gb. I am unable to find the extracted file path. please help me on this.
If zip file broken i have this:
Terminating app due to uncaught exception 'ZipException', reason: 'Can't open
And app crash after that.
How to get the error but the program did not fall?
Zip archive is created (with password) with different archivers and with different content for test reasons, the result is the same and is always reproducible.
Everything is fine on all the simulators but iPad Air (no difference which iOS is setup). Device seems to work well too.
In method 'readDataWithBuffer:' a line 'int err= unzReadCurrentFile(_unzFile...' always gets as a return value '-3', which is 'Z_DATA_ERROR' and 'msg' contains a string "invalid distance too far back".
Version: objective-zip 1.0.2 (installed as a Pod)
Xcode Version 7.0.1.
In my ZIP I have a folder named [0033494]_
The folder itself won't show up as a FileInZipInfo
, all files in that folder have nil
as their filename.
cocopods v0.39, use_frameworks!, objective-zip v1.0.2
Just by importing the objective_zip module and nothing else via import objective_zip
, I get the following compiler errors:
Pods/objective-zip/ZLib/crc32.h:5:1: Unknown type name 'local'
Pods/objective-zip/ZLib/crc32.h:5:7: Expected identifier or '('
Pods/objective-zip/ZLib/deflate.h:97:16: Redefinition of 'internal_state'
Pods/objective-zip/ZLib/inffixed.h:10:18: Unknown type name 'code'
Pods/objective-zip/ZLib/inffixed.h:87:18: Unknown type name 'code'
Pods/objective-zip/ZLib/inflate.h:36:9: Expected identifier
Pods/objective-zip/ZLib/inflate.h:106:5: Unknown type name 'code'
Pods/objective-zip/ZLib/inflate.h:106:10: Expected member name or ';' after declaration specifiers
Pods/objective-zip/ZLib/inflate.h:106:9: Expected ';' at end of declaration list
Pods/objective-zip/ZLib/inflate.h:107:5: Unknown type name 'code'
Pods/objective-zip/ZLib/inflate.h:107:10: Expected member name or ';' after declaration specifiers
Pods/objective-zip/ZLib/inflate.h:107:9: Expected ';' at end of declaration list
Pods/objective-zip/ZLib/inflate.h:115:5: Unknown type name 'code'
Pods/objective-zip/ZLib/inflate.h:118:5: Unknown type name 'code'
Pods/objective-zip/ZLib/inflate.h:118:16: Use of undeclared identifier 'ENOUGH'
Pods/objective-zip/ZLib/trees.h:73:36: Use of undeclared identifier 'DIST_CODE_LEN'
SampleSwift.swift:41:8: Could not build Objective-C module 'objective_zip'
I'm using Objective-Zip to unzip a somewhat large amount of zip files downloaded from AWS (not that matters much).
After downloading 2 or 3 hundred files the ZipFile stops to work, returning a "Can't open" exception. Debug info shows that when ZipFile tries to open the the file with unzOpen() the _unzFile == NULL, and an exception is thrown.
It happens always with a different file, and unzipping the file outside ZipFile works ok, so it is not a file problem.
For each file, a new instance of ZipFile is created. I really don't know what is happening, but it smells like some overflow in the minizip or zlib side.
Mine code is not the simplest, first I check and create directories and then I unzip using a buffer to optimize memory consumption. At the end the ZipFile instance is released and later a new one is created for a new file and so on.
My code is the following:
@try {
ZipFile *unzipFile= [[ZipFile alloc] initWithFileName:_path_to_file mode:ZipFileModeUnzip];
[unzipFile goToFirstFileInZip];
do {
FileInZipInfo *info = [unzipFile getCurrentFileInZipInfo];
NSString *file_path = [NSString stringWithFormat:@"%@/%@", [_path_to_file stringByDeletingLastPathComponent], info.name];
BOOL is_dir;
if (![[NSFileManager defaultManager] fileExistsAtPath:[file_path stringByDeletingLastPathComponent] isDirectory:&is_dir]) {
[[NSFileManager defaultManager] createDirectoryAtPath:[file_path stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil];
} else if (!is_dir) {
NSError *error;
[[NSFileManager defaultManager] createDirectoryAtPath:[file_path stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:&error];
if (error) {
return false;
}
}
if (![[NSFileManager defaultManager] fileExistsAtPath:file_path]) {
[[NSFileManager defaultManager] createFileAtPath:file_path contents:nil attributes:nil];
}
NSFileHandle *file = [NSFileHandle fileHandleForWritingAtPath:file_path];
NSMutableData *buffer = [[NSMutableData alloc] initWithLength:BUFFER_SIZE];
ZipReadStream *read = [unzipFile readCurrentFileInZip];
// Read-then-write buffered loop
do {
// Reset buffer length
[buffer setLength:BUFFER_SIZE];
// Expand next chunk of bytes
int bytesRead = [read readDataWithBuffer:buffer];
if (bytesRead > 0) {
// Write what we have read
[buffer setLength:bytesRead];
[file writeData:buffer];
} else
break;
} while (YES);
// Clean up
[file closeFile];
[read finishedReading];
[buffer release];
}while ([unzipFile goToNextFileInZip]) ;
[unzipFile release];
unzipFile = nil;
}
@catch...
Thanks!
Kind of weird. I attempted to use Cocoapods to install Objective-Zip in my project. Turns out, the most recent spec that's in the Cocoapods system is pointing to an AgileBits fork of version 0.7.2
I (naively it seems) tried to fix this by pointing the spec to the most recent version but was told that it's up to the maintainer of the library to officially tag the release. CocoaPods/Specs#1328
Thought I'd pass along the info.
Hello.. Is it possible to retrieve data without unzipping? and I was wondering if zip files has to be located in the Documents folder?Thanks..
If I'm not mistaken, currently we cannot delete / replace a file in the archive, without extracting all the archive and creating a new one, which is really cumbersome.
Do you intend to provide the functionality?
To reproduce unzip the same file (of some decent size) in a loop say 1000 times -- you will not be able to complete the loop without running out of memory.
I'm making an archive which seems to be valid - unzip from the command line will unzip it, as will Stuffit Expander - but the OS X unarchive tool fails to unzip it when you double-click on it, and instead makes a .cpgz file from it.
Looking at the archive in zipinfo, as opposed to one made with the same files in the Finder, using the Compress... menu, there seem to be a few differences:
I'm wonder which (if any) of these differences is causing the Unarchive tool to get confused, and whether there's some way to persuade Objective-Zip to make something that Unarchive can cope with.
Adding pod 'Objective-Zip', '~> 1.0'
as indicated in the Readme does not work. Need to drop the capitals
Should be: pod 'objective-zip', '~> 1.0'
Hi my problem is that I'm tying to zip a folder containing multiple files which can be executed e.g this way:
[OZZipFile *zFile = [[OZZipFile alloc] initWithFileName:zipFilePath mode:OZZipFileModeCreate];
NSFileManager *fm = [NSFileManager new];
NSDirectoryEnumerator *directoryEnumerator = [fm enumeratorAtPath:folderPath];
BOOL isDir;
for (NSString *file in directoryEnumerator)
{
NSString *path = [folderPath stringByAppendingPathComponent:file];
[fm fileExistsAtPath:path
isDirectory:&isDir];
if (isDir)
{
continue;
}
OZZipWriteStream *stream = [zFile writeFileInZipWithName:file
compressionLevel:compressionLevel];
NSData *inputDataBuffer;
NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];
[readHandle seekToFileOffset:0];
while( [(inputDataBuffer = [readHandle readDataOfLength:2048 * 32]) length] != 0 ) {
@autoreleasepool {
[stream writeData:inputDataBuffer];
}
}
[stream finishedWriting];
}
[zFile close];
The problem is that some of those files may be big like i have 600mb video there, so the compression on even quiet good iPad may fail like iPad Air1 will not be able to compress the file.
I even tried doing some NSFileHandle as shown up and chunking write, but no memory footprint reduction at all.
So my question is. Does it really write like a stream or its just a name ? is there any other way to somehow compress big file in memory efficient way?
Regards
Marcin
Is there an option for turning off zip64?
I want to be able to extract a portion of a file in the zip archive. My specific use case is reading a video file from the zip, I only want to fetch specific chunks of data from the video file while playing the video
How To Append Two zip file without extracted?
-(BOOL) UnzipFileTo:(NSString*) path overWrite:(BOOL) overwrite
calls
unzCloseCurrentFile for each file
But, the file itself never fclosed!
Only unzClose(..) actually calls fclose.
I ran out of file descriptors when opening many zip files on ios.
I'm not sure whether this is because the zip files are not being fclosed or the contents that are being unzipped.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.