Giter Site home page Giter Site logo

oandbackup's Introduction

oandbackup

pipeline status

a backup program for android. requires root and allows you to backup individual apps and their data. both backup and restore of individual programs one at a time and batch backup and restore of multiple programs are supported (with silent / unattended restores).
restoring system apps should be possible without requiring a reboot afterwards. oandbackup is also able to uninstall system apps. handling system apps in this way depends on whether /system/ can be remounted as writeable though, so this will probably not work for all devices (e.g. htc devices with the security flag on).
backups can be scheduled with no limit on the number of individual schedules and there is the possibility of creating custom lists from the list of installed apps.

building

oandbackup is built with gradle. you need the android sdk, rust for building the oab-utils binary, and bash or a compatible shell for executing the oab-utils build script (patches for making this buildable on windows are welcomed).

./gradlew build
# building only debug
./gradlew assembleDebug
# building for a specific abi target
./gradlew assembleArm64

version control

oandbackup is handled on both gitlab and github:
https://gitlab.com/jensstein/oandbackup/
https://github.com/jensstein/oandbackup
debug apks are built by gitlab for each commit on every branch. the latest successful build can be found here (substitute $branch for the desired branch, e.g. master):
https://gitlab.com/jensstein/oandbackup/-/jobs/artifacts/$branch/browse/apks?job=build
(e.g. https://gitlab.com/jensstein/oandbackup/-/jobs/artifacts/master/browse/apks?job=build)
and signed release apks are built for every commit on the master branch:
https://gitlab.com/jensstein/oandbackup/-/jobs/artifacts/master/browse?job=sign

busybox / toybox / oab-utils

a working busybox or toybox installation is required at the moment, but work is in progress to include all the needed functionality in a binary included in the apk. this program is called oab-utils and is written in rust.

you can get the source for busybox here: https://busybox.net/. you then need to cross-compile it for the architecture of your device (e.g. armv6). you can also try the binaries found here: https://busybox.net/downloads/binaries/.
if you have a working toolchain for your target device, you should only need to run the following commands on the busybox source:

    make defconfig # makes a config file with the default options
    make menuconfig # brings up an ncurses-based menu for editing the options
        # set the prefix for your toolchain under busybox settings -> build options 
        # (remember the trailing dash, e.g. 'arm-unknown-linux-gnueabihf-')
        # build as a static binary if needed
    make

copy the busybox binary to your system, for example /system/xbin or /data/local, and make it executable. symlinking is not necessary for use with oandbackup. in the oandbackup preferences, provide the whole path to the busybox binary, including the binary's file name (e.g. /data/local/busybox).

an apk build of oandbackup is available on f-droid's servers: https://f-droid.org/repository/browse/?fdid=dk.jens.backup

translations are currently being managed on transifex: https://www.transifex.com/projects/p/oandbackup/ so please come help us there or spread the link if you want the app available in your own language.

if you have any questions, critique, bug reports or suggestions, please write me an email: [email protected]

Cryptography

oandbackup supports encrypting the backups using an external cryptography provider. First you need to install an app which implements the openpgp-api, e.g. OpenKeychain: https://www.openkeychain.org/, and set up an identity. The "Cryptography" section of the preferences of oandbackup is then enabled and here you can choose which openpgp and identity to use.

special usage notes

  • long press an item in the list of apps to get the context menu.
    • delete backup: deletes the backup files for the chosen app.
    • uninstall: somewhat more aggresive than a normal uninstall. in addition to doing a normal uninstall via android commands (via pm and thereby uninstalling for all users of the device), uninstalling from oandbackup deletes files the app might have left over in /data/app-lib/. this is useful, as a normal uninstall via android settings in rare circumstances can leave files there making a reinstall of the same app impossible while they are there. this also works on system apps (although this is still somewhat experimental), which are deleted with a normal rm after the system partition has been remounted as read-write. it is afterwards remounted as read-only.
    • enable / disable: uses the android script pm to enable or disable an app. disabling an app removes it from the normal user interface without uninstalling. this can be used for enabling or disabling an app for muliple users at a time (if the device has multiple users enabled). users are identified with an id: 0 is the first user (owner).
  • multiple users: multi-user is still somewhat experimental but should work. when restoring in a multi-user setting, pm install -r $apk gets called and subsequently the app is disabled for every user who has the app listed in /data/system/user/$user/package-restrictions.xml (unless the app is listed as enabled="1").
    this can create problems for users installing the same app at some later point, but is necessary to prevent the app from being installed to all users at the same time. the context menu has an option to enable or disable apps which can be used if other users become unable to use a specific app due to disabling on restore.
    enabling and disabling only works after an initial install (not necessarily from oandbackup) or restore of the app.

restoring data can also be done manually from the backup files. oandbackup stores the program data files in zip-compressed archives so they can be uncompressed and unpacked with any tool supporting that format (e.g. unzip dk.jens.backup.zip). the unpacked files should then be placed in the directory indicated by "dataDir" in the log file stored with the backup files. this directory will usually be in /data/data/.
after restoring the files, the user and group id of the package need to be set. therefore data can only be restored for packages where an apk has been installed successfully. uid and gid can be obtained with the stat program (e.g. stat /data/data/dk.jens.backup) and set with chown. finally, the correct permissions need to be set with chmod. oandbackup does this by setting 771 for all data files although this is probably not the best method. the subdirectory lib/ needs to be excluded from both chown and chmod.
on android 6 / marshmallow (api 23) you would also need to use the restorecon command on the data directory (e.g. restorecon -R /data/data/dk.jens.backup) or use another method of restoring the file security contexts.
the code which does these things are in the methods doRestore and setPermissions of ShellCommands.java.

licenses

oandbackup is licensed under the MIT license (see LICENSE.txt)

android-support-v4 is written by The Android Open Source Project and licensed under the Apache License, Version 2.0 (see NOTICE.txt in the libs directory)

openpgp-api-lib is written by Dominik Schürmann and licensed under Apache License, Version 2.0

author

jens stein

oandbackup's People

Contributors

aelmahmoudy avatar danielmmmm avatar djcrashdummy avatar ferhadnecef avatar gutierrezgsebastian avatar jensstein avatar necioerrante avatar nikwen avatar smarquespt avatar temtemy avatar waining 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

oandbackup's Issues

Show errors in UI

So i did some restoring from 2.3 applications on a 4.2.2 system with a great amount of errors.

My reaction:

Great a notification that says "complete with errors".

It is a great thing because of translation, but this is a bit out of context.

My second reaction:

Okay i clicked / tapped (?) on the notification i all i see is the default oab screen.

And:

This is useless, why do i get an error message (more precisely: notification about error messages) when i don't get one hint what the error was?

Later i incidentally saw the error-log in the file browser. But it was to late, because i worked around the problem by importing data (vcard) not application-data.

I know oab is not developed for beginners. It expects root (but does not need it), because half of the options are useless without root (filter system application etc.).

But even if you root your phone it does not mean that you have a file browser/manager or file editor installed. Even some custom roms come without a file browser.

So my proposal for enhancement:

Show error messages in oab's own UI if they appear.

It would be great if oab shows the specific error(s) connected to the notification, but even the raw log file would be better than "nothing".

No sub-folders while saving backups.

Since backups now have appdata compressed i think there need not be any subfolders while saving backups.

I mean the apk zip and log files of all the applications can stay in /oandbackups folder. It will make navigating easier through a file manager.

Another minor issue. After installing oandbackup always a folder(oandbackup) was created in the root of sdcard. There was no way to stop this if user wants to use seperate folder for saving backups. It would be better if the app prompts for backup folder at first run and creates it only if necessary.

Rsync should be optional?

Why is rsync a hard dependency -- while most folks can easily root phones, they do not have rsync installed, and a non-tech user is going to have issues futzing with terminals, wgets and permissions.

Is 'cp' not sufficient? Can it not be used if rsync is unavailable?

option to disable notifications

I am batch backing my devices (daily) at night and syncing the oandbackups folder to a storage server which does backuping over time.
Currently, i have to remove the backup notification every morning.

Backing up is no more working since update to Android 4.3

rsync: mkdir "/storage/emulated/0/oandbackups/at.univie.sensorium" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at external/rsync/main.c(581) [Receiver=3.0.7]
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at external/rsync/io.c(601) [sender=3.0.7]
rsync: change_dir#3 "/storage/emulated/0/oandbackups" failed: No such file or directory (2)
rsync error: errors selecting input/output files, dirs (code 3) at external/rsync/main.c(619) [Receiver=3.0.7]
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at external/rsync/io.c(601) [sender=3.0.7]

broken super user permissions?

Hi

after the second update Oandb lost the super user permissions or rather ability to be a proper super user I guess. I deleted the permissions and restarted but it is not able to find busy box, at least that is what it is complaining about. I am using 4.1 on Nook HD.,

The original verison did not have such problem. So as of now it is not usable due to permission issue ;(

thanks

Continous loop on restore/uninstall apps

Every time I try to restore/unistall an app, oandbackup shows a continuos loop.

The apps are restored/unistalled but loop remains forever. I need to force stop.

I�´m using 0.2.7 on android 2.3.7

tar

Hi, tar is complaining in log file regarding -z parameter. Running Sammy based 4.1.2 with busybox 1.21.1 stericson.

Is there a different busybox or tar binary I have to get?

Thanks for an excellent app.

Please add support for android multiple user accounts.

Android from version 4.2 has multiple user accounts feature. The first account on the device has admin privilages (superuser rights). All other accounts subsequently created will not have root privilages.

When an app is installed in one account, it is not displayed in other account. But when the other user installs the same app, it just uses the first installed apk and diaplays the app to the new user, even though app data is unique to each user. This is how it is meant to be working (if im not mistaken).

Now coming to oandbackup, it does require root, which restricts its use with primary account alone. Ok thats not a complaint at all. But when an app is restored with oandbackup, the app shows up to all the users which is not normal. And suppose if user2 installs an app, then if owner tries to restore the same app with oandbackup then it is not restored.

Please add support for multiple user accounts.

EDIT:
I think it is because oandbackup non-interactively copies the app and its data to the respective folders which works great for single account. Suppose if oandbackup asks thr user to install apk while restoring, it should be fine i guess. The title "support for multiple accounts" doesn't suit well since this requires root and can only be used with owner account.

Put oandbackup apk in oandbackup-folder

Hi there,

oandbackup is really great. The first application that is easy to use, can do root stuff and comes with an native looking interface (which could be better, but the progress in the last version was amazing).

My problem:

I did a backup of my phone. Then copy the folder oandbackup to my new sd card.

So there i was with a new install of my rom, but no app store.

What where my options?

  • Download app store
  • search for oandbackup apk on the net

both solutions aren't great.

Because you don't want gapps to get your backup. And you don't want to waste bandwidth with the fdroid initialization (package list, icon download etc).
Had a recent backup of the whole fdroid db in my backup folder.

Search for a apk on the web → thrust problem.

Put the oandbackup apk in the backup folder to solve this bootstrap problem.

If i overlooked the apk, then please create a toplevel symlink so it will be easier to find.

[FR] Copy backup to remote ssh server

I have encrypted partitions on my phone (so backup on internal memory is not too much helpful if I had to do factory reset). It would be very nice if oandbackup could upload all new backups by scp to ssh server.

improvements of shedule UI

it is me again…

the UI of the shedule options is bad.

First it does not work with translations that have longer words and it is very unspecific in wording.

longer words problem

The items (modus and below) in the UI should be rearranged. Like as in my sketch:

oab-shedule-ui-sketch

Sorry for quality, but i have no paint/image manipulation software on this machine, so i used harmony and it does not provide text so…

I think you get the idea.

When i look at

  • enable
  • refresh
  • remove

i think:

  • enable what?
  • refresh what?
  • remove what?

I guess it should be something like:

  • enable scheduling
  • refresh scheduling configuration
  • remove – i really don't know

Add option to sort(filter) new/updated apps

Is it possible to add this option to sort mode?

Similar to Titanium has and oandbackup already have but in schedule.

Imagine that I´ve installed xxx app today and made an backup of it. Tomorrow this xxx app has an update but I don´t do another backup.

If I wanted to do an backup of this app but forgot it then this option will only show the apps that have been updated but I have forgotten to do a new backup.

Also an option for outdated backups apps (with time range defined by user) would also be nice.

[FR] scheduled backups

just like in very popular Titanium...
M.b. it's time to inspect features of Titanium Backup and fill the Roadmap?

Filter on "New Apps" = New and updated? / Comments & Suggestions

It's unclear if doing a scheduled backup of "new apps" would include existing one's that have been auto updated. Perhaps changing the verbage to "New & Updated Apps" would clarify.

Additional filters such as "Only System Apps" or "Apps Backed up but not installed" (for restore) would be useful.

Thanks for the great app. It's been very useful. The only major hiccup I've encountered is it will hang the first time it's ran trying to backup amazon appstore. Force closing the app and restarting then doing the backup again lets it continue although I have no idea if the "backup" of amazon appstore is actually good.

app icons and multiple sorting.

Could it be possible to display app icons for the list?

And is multiple sorting possible by which one can filter the apps more easily. If every item in sorting has a sort of checkbox, then one can sort the apps by more than one label.

Advertise the ability to delete root apps more

Hi there,

it's me - again. :)

For some reason i forget that oab has the ability to uninstall root apps every few weeks. Probably because it is in the long press menu.

It would be great if oab could advertise this fact more, in the readme/help, in gplay and in F-Droid.

Because it is really hard to find a usable, trustworthy and open source application for removing root apps.

If you never were in the position to use such an app, then good for you. But the degree of suffering is very high if you want to remove system apps.

UI improvements

Hi there,

here a list wiith UI improvements:

  • In the long click menu there are the option "enable" and "disable". I never touch these options because i don't know what they do.
    I guess it has to do with scheduling, if so please be more specific. Change it to something like "include in scheduling"/"exclude from schedule" or similar.
  • I really like that everything is lowercase but at the same time it annoys me. So maybe change it ?! Or not. For most people it would be better if it would be as their language defines it. And when we start to translate the app, then we need a strong policy against uppercase letters or change it everywhere.
  • Pictograms for buttons like restore and backup for easier access. Something like a arrow coming from a box and one going into a box.

Share functionallity

oab gets better every release, but still i recently noticed that it lacks a functionality that would be useful for people (or at least for me :D).

A share functionality. Just like most other apps have.

Real Usecases that i had/have:

A friend did an upgrade of an public transport app (non-free software and only available via Play) which had some weird problems and did some bad changes (UI, data use). Because the app is only on Play not F-droid or similar he could not upgrade. But i had a Backup, so i mailed him the old version.

The current way to achieve this is:

  1. open file manager
  2. search oab dir and the right folder for the app
  3. use the share functionality of the file manager app
  4. use another application in this case email

With a build in share functionality you would have several advantages:

  • don't need to go to oab folder or know where it is
  • you don't need a file manager (many people don't have one on their phone
  • you can find your app by label, not the "weird" android naming scheme → oandbackup vs. dk.jens.backup
  • you can use oab internal sorting function (file manager does not know if this backup is an system application or not

Another usecase i came across:
"Cloud backups". I installed the new version of OwnCloud (v6) and tried the Android App. Then i thought how cool it would be to have my backups on my server.

But there was no simple way to do that. I could use the file manager solution again or use the owncloud internal file picker, which "surprisingly" don't know the labels of programs.

Sure i could move oab's folder in the owncloud-app folder, but that would mean i have to upload all backups. But i only want the backups that are important for me.

oab sorting features are just too good not to be used :)

show old backups - confusing situation

Go to preferences.

Select

show old backups
filter backups older than value in days

And you get a dialogue called "show old backups" where you input the value (days) which determines how many days old a backup has to be to be filtered.

Something like "older than days" or so would make more sense as the title of the dialogue box.

Also:

Why is it called show old backups? Shouldn't it be called

hide old backups
filter backups older than value in days

???

Language setting is not persistent

Reproduce:

preferences -> language -> set one

close app and leave it for one hour.

open app.

Observed:

The app gets default system language. When accessing to preferences the custom setting is set to the one choosed in before.

Expected:

Language setting should be the one user choosed before.

Grey text in search bar

Would be great if there would be text (the grey inactive type) in the search bar/box so the user knows what to search/expect from the function.

I guess at the moment oab can only search for applications so a short

search for apps

would do.

Remember last sort (filter) option

It would be nice if oandbackup remember last sort option.

Imagine that I only back up user apps. Every time i want to do a backup the I have to click sort -> option -> back up.

The idea is to remember filtered apps and remain as is until one decides to choose other sort option.

Use of web service to manage translation

Hi Jens,

When commenting commit a1b587a I realised that for translations be managed easily, you can use a webservice to manage them. Transifex and crowdin are good choices to make it happen. Both provide user friendly UI and notification service, among other things. I think that both services provide free hosting for oss. Check them out and see if it´s easy to use it from a dev point of view.

Regards

Please provide your apk somewhere.

F-droid has still not updated to your latest version....some of your changes have been in for a couple weeks or so, so could you provide a binary somewhere we can download?

Inconsistant naming [English]

Hi there,

when you long press on an entry oab ask you if you want to "uninstall app", but then the safety question is "uninstall this package?".

That's not the same thing. It may confuses some users. And it makes the work for translators harder, because the difference between package and app(lication) can be more important in some language then in english.

Most important: it is inconsistent, which is bad in UX terms.

Let me draw you a picture where a UI/UX designer and developer met and have to discuss this issue:

UX/UI designer →(╯°□°)╯︵(\ .o.)\ ← dev

System apps not uninstalled

Hi Jens

I notice that if I try to uninstall system app with oand it won´t get removed. And I think that there is no warning about it not being removed.

User apps are ok to uninstall.

Can you check it?

[FR] batch operations via multichoice

Backup/restore operations are quite long so having batch operations with selecting packages and then launching an operations on them all would make much sense.

Restore apps report "Error on restore"

When restauring apps, there´s a notification saying "Error on restore".

But in fact app is restored. When doing an data restore only, it works as expected. "Restore complete"

Change label "sort" to "filter"

I think you should change "sort" word to "filter" cause in fact what we are doing is filtering apps and nou put them by order.

Add Intent to trigger restore

I want to script re-installing my phone as much as possible, and one of the manual steps right now is starting oandbackup and selecting the apps to restore and clicking go.

In email, you suggested that one approach would be to use Intents to trigger this. I think this seems like a good approach: have an Intent to trigger restore of all apps in the configured path.

Then my script to automate re-install of my phone could be something like:

adb install dk.jens.backup-1.apk
adb push oandbackups /sdcard/oandbackups
adb shell am ... # trigger intent here

This issue is to make it easier to track progress around this. :-)

Cannot restore data

Hi!
Restoring apk works well. Restoring data after apk shows no error, but also shows no
effect. No app settings. When restoring apk & data or restoring data again, i get the error
": setPermissions error: could not find permissions for /data/data/a2dp.Vol" for example.
Also for every other app restore.
I am using CM11 nightly without gapps.

FR: option to back-up WiFi access points & accounts

I'm in the process of ditching the proprietary TitaniumBackup, but one feature I really miss is TB's ability to back-up the above mentioned user data/settings. It makes migrating to a new ROM or device so easy and it would be great if oandbackup could receive this feature as well.

Also: Is there any way to donate money, bitcoins or flattr-clicks? This app helped me a lot already and I'd like to contribute to further development :-)

Delete backup - Feature request

Right now "delete backups" option only present a prompt.

I think it would be useful if this option also shows the aplication list of backup that will be deleted. Like when doing a backup or restore.

Imagine that we accidentally unistalled some application. For people with litle children that is a must happen. :-) Before delete user will check if everything is ok and approve or go back, reinstall that app that don´t want to remove and then do a delete. Or maybe a checkbox just like in batch backup/restore.

And just 2 more thoughts:

1 - After delete a popup/notification saying "xx backups were deleted". What do you think about it?

2 - If there is no backups for uninstalled apps a popup/notification saying "There are no backups to delete" or "There are no backups for unistalled apps"

Default path should be documented

I just ran a backup of user apps, but am having trouble viewing the backup files -- can't find them on sdcard, or external sdcard.

The description or app should document where the default path is.

In app help

It would be great if there would be a help page in the app. Like the paragraph in the manpage/readme.

Strings untranslated

How to reproduce:

1 - Create backup.
2 - Click on app to show options
3- 2 buttons are shown. Backup and restore

Backup and restore buttons are untranslated. At least restore is. Since I use backup in Portuguese translation can´t really tell if is (un)translated.

Please add special backups

I've seen this feature in TitaniumBackup, it has special backups for:

Wi-Fi access points
Bluetooth pairings
Accounts
Application Widgets
stock browser bookmarks
call log
Country/Language/Timezone
Data usage (Policy & Stats)
SMS/MMS messages
Wallpaper

Some of those items are actually backed up in XML format. The special backup is useful that restoring them to a different ROM does not cause crashes on that new ROM (merely backup up the binary database then restoring to a different ROM causes FCs).
Thanks...

Can't Disable Bloatware

Hi, I'm new to Oandbackup. I'm having trouble with the disable feature. I've got a rooted phone running Android 2.3.3. Trying to use oandbackup to disable some of the bloatware on my phone. However, when I click on disable, select the 0 id user (I'm the only user on the phone), and hit ok, nothing seems to happen. The app isn't disabled. The oandbackup.log file seems to trying to kill the app, but it isn't disabled:

2014/03/03 - 09:11:55 [1] Killed pm disable --use... [com.microsoft.mobileexperiences.bing]
2014/03/03 - 09:11:55 [com.microsoft.mobileexperiences.bing]

Any ideas?
Thanks!
Bryan

Restoring to different user

Hello! I use RomSwitcher to use more than one ROM in the phone (maguro). I use SlimRom as 1st and make the apps backups on the sdcard. When I boot with the 2nd (CyanogenMod) it does not shown any backup done even if I set the same backup folder (the default one) in both ROMs.
Saying with another words, I can see the apps when I try to restore app it takes very little time that it's impossible to be doing so fast with 134 apps. Of course, the data restore is not working for me.
I have one different major Google account in each ROM.
I cannot find the major log, although the icon on the notification bar says "Finished with errors".
Thanks for your help. The app seems really promissing.

Language setting is not imediatly taken.

How to reproduce:

Preferences -> language -> set one (my case portuguese)

Observed behaviour:

Preferences items are set in that language but in app list the language it´s not applied. Need to restart app to set language.

Expected:

All strings are automatically set. Preferences and main page,

Nothing work at all - symlink problem

Hi !
When I backups apps data I get an error as the phone ean't create symlink because the function isn't implemented. I already get this error in the past for others things ( i don't remember when and for what ), so maybe it's a device specific problem or i'm just damned ^^

I'm using a Samsung Galaxy SII i9100P running CyanogenMod 11 with Android 4.4

FCs on changing value for "show old backups" options - Test release

Hi Jens.

I manage to reproduce the action that makes FC.

How to reproduce:

1 - Preferences -> show old backups -> change to random value (let´s say 1) -> ok

Work.

2 - Preferences -> show old backups -> change to random value (now 2 to be sure it isn´t 1 that makes FC) -> ok

Work

3 - Preferences -> show old backups -> change to blank (default value) -> ok

FC

4 - Restart app

FC

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.