Giter VIP home page Giter VIP logo

filen-desktop's Introduction

Filen Desktop Client for Windows, macOS and Linux

Crossplatform desktop client written in TypeScript/JavaScript using Electron

Installation

Use node 14

nvm install 14
nvm use 14

Use npm

npm install

Build Setup

# install dependencies
npm install

# run client
npm run start

# build electron application for production, where {platform} = win, mac or linux
npm run build-{platform}

# build for all platforms
npm run dist

Contributing translations

If you want to help us translate the app you can head over to this page and check out the Readme provided there! :)

filen-desktop's People

Contributors

ahmuro avatar chris9740 avatar danielprog39 avatar devpnal avatar dodoledev avatar dwynr avatar flamenco687 avatar janttsu avatar kou-kee avatar lyonelf avatar mazzmat avatar mustafatat avatar qaqland avatar sv3nnie avatar zhangbalabala 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

filen-desktop's Issues

App Image not Working on LXDE, Debian 11

I summarize here the discussion I had with the support team.
The app crashes on Debian 11 + LXDE.

Here is the log

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'start' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle [email protected]prestart: [email protected]
6 info lifecycle [email protected]
start: [email protected]
7 verbose lifecycle [email protected]start: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]
start: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/lorenzo/filen-desktop-master/node_modules/.bin:/home/lorenzo/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/lorenzo/Telegram/:/home/lorenzo/julia-1.7.0/bin
9 verbose lifecycle [email protected]start: CWD: /home/lorenzo/filen-desktop-master
10 silly lifecycle [email protected]
start: Args: [ '-c', 'electron .' ]
11 silly lifecycle [email protected]start: Returned: code: 7 signal: null
12 info lifecycle [email protected]
start: Failed to exec start script
13 verbose stack Error: [email protected] start: electron .
13 verbose stack Exit status 7
13 verbose stack at EventEmitter. (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:400:28)
13 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:400:28)
13 verbose stack at maybeClose (internal/child_process.js:1058:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:293:5)
14 verbose pkgid [email protected]
15 verbose cwd /home/lorenzo/filen-desktop-master
16 verbose Linux 5.10.0-11-amd64
17 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "start"
18 verbose node v14.19.0
19 verbose npm v6.14.16
20 error code ELIFECYCLE
21 error errno 7
22 error [email protected] start: electron .
22 error Exit status 7
23 error Failed at the [email protected] start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 7, true ]

Really looking forward to the next release ASAP because I really see plenty of issues with the Linux desktop and the app is now unusable for me.
To be fair and straight, MEGA has a linux app, properly packaged as a deb file, which has never given me a fraction of this headache.

Couple questions about translation

I am working on Russian and Ukrainian translation and need to clarify some things.

  1. Meaning of titlebarDownload: "Download", and titlebarUpload: "Upload",. Are the words used in these lines nouns or verbs?
  2. Meaning of syncTaskMoveInRemote: "Moved in the cloud", and syncTaskMoveInLocal: "Moved locally",. Does it mean that something was moved from local to cloud/from cloud to local or that something was moved from one place to another locally/in the cloud?

Feature Request - Single Sign-On (SSO) Login

In Filen Desktop App there is an option to show online (aka the Web Panel) it would be great if it is done like in Sync.com's Desktop App direct login by using Desktop API key without entering Password.

Empty files (0 b) not synced or removed from web client

When you have file synced, and changed it to be 0b size (e.g. delete all text from the document), it is deleted from web client.

Steps to reproduce

  • Create new text file and add some text (or copy existing one to sync folder)
  • File is synced to web client/server
  • (Optional) Edit file to create new version
  • Remove all text from file -> File is deleted from web client, but remains on local storage
  • Add again some text -> File is again created in web client, but without history (as completely new one)

Old file is in Trash, and can be restored only if local file is still empty. If it is changed and synced again, it can not be restored, and versioning becomes broken

System
Desktop client: Linux (AppImage) 1.6.2
OS: openSUSE Tumbleweed + KDE Plasma 5.23.5

Add support for specifying multiple backup folders for Filen desktop client

Hello,

I would like to request a new feature. Currently, the Filen desktop client only allows me to synchronize files from the "Filen Sync" folder under my home directory. Thankfully I can change this functionality to any directory of my choice but I think this is not enough.

What I wish to propose is to allow the user to configure as many backup directories as he or she wishes, each pointing to different directory paths on the file system, and even, more importantly, a backup schedule configuration for each of them, in which the user can configure whether the synchronization should happen all the time automatically (the default option) or whether it should only run on demand or at a specific schedule (i.e. daily, weekly, monthly etc.).

This latter feature is very important to me because, on my Linux machine, I have a Veracrypt encrypted partition that I need to be backed up. However, this directory is under its own partition, separate from my home folder (so I would need to add it as a separate backup folder, distinct from my usual home backups) and, even more importantly, this partition is only mounted once I manually unlock it in Veracrypt (I have to manually enter the decryption passphrase for this to happen). Thus, I need to be the one to initiate the sync for this particular folder, only once I decrypt and mount that partition. If the desktop client is not aware of this, it would try synchronizing this folder on a partition that's not even mounted and then realize that there's nothing to synchronize from and nowhere to synchronize to.

Notification prompt in case of a New release & Post Things after update

  • When there is a New Update in Desktop App for Windows it Shows New Version Available Click to Update Prompt using the native Notification via Action Center of Windows 10. While showing show it comes with a tiltle Filen.Electron&__________ and some random codes in it.

  • I do got that as the App is totally based on Electron so it is showing like that but it would be Great if it just shows just Filen Desktop.

  • After clicking to Update from the notifications the app updates, reopens & Just showing the Filen Logo gets stuck for sometime. To make the App work need to exit by right-click menu and reopen it. And it just works flawlessly.

Note : The First two are things I remember when I updated the App about 2 weeks ago for the Version 1.5.0 .

filen app freeze with gnome 3.38.5

steps to reproduce

  • open filen setting from its system tray icon
  • click "change" near default filen folder
  • filen windows close immediately
  • click on filen system tray icon

now filen app is unresponsive and gnome has windows selection issues such as click on a background window will not lead to select it and bring it to foreground

workaround to make the system responsive again
right click on filen systemtray icon and close it

system
Debian 11 with X11

Check for Updates Button in App Settings

Make Check for Updates as Button or Toggle to manually trigger & Find the latest update. Instead of making the App to do updates on its own takes a Long Time to Grab the update.

[Feature request] Local Webdav secure (https) and creds.

I would like to ask if you can make a function to enable locally (127.0.0.1 and/or ::1) Webdav to let us actually sync our bookmark with floccus and/or password from password manager who support webdav sync (keepass etc).

Like that we can use them securely in E2E cloud.

[Feature request] Add Filen Sync entry in explorer sidebar

Hi!
As the slowest, GAFAM-powered and privacy-invasive OneDrive does, it could be cool to make the Desktop client add a new entry to the file explorer sidebar, as you can see on this picture:

It can make access to files even more efficient for everyone!

Application's window disappears every time it loses focus

I've installed the latest (to this date) AppImage. I've notice that once the application's window loses focus, it disappears completely. I can only find the process within the operating system, and end/kill it.

The workaround is to execute the AppImage again and again to get access to the application.

I'm using Arch Linux with GNOME.

Explain Account Recovery Process in Detail

According to Filen Security Whitepaper,

Since the user’s password is the root of all client-side encryption, forgetting it results into the inability to decrypt the user’s data, which will make it impossible for either Filen or the user to recover the data stored on the user’s account.

If the user is still logged in on a different device, he can change his password. Changing the password will generate a new master key as explained in the registration process. This master key is then appended to the old master key, encrypted and sent to the API. Filen never stores unencrypted keys. Filen calls this master key chaining. This process makes decrypting data encrypted with the old master key possible, while new data is encrypted using the new encryption key.

According to Boldly marked words this mechanism similar to What Sync.com does but there is no such Option visible in the Settings of the App.

Filen "holding a lock" on files inside the sync folder

PC user here.

I recently moved a java project to the cloud to be able to sync and work on my files at the same time.

While working with IntelliJ Idea I realized that something was deleting one of my classes that I work on when I try to open it or run it.

After an hour or so I discovered Filen desktop app was in a constant state of syncing and "holding a lock" on the file hence the failure to work with the file. When I closed Filen, everything worked out perfectly.

[Question] Cli state

I have read (i think in the faq but not quite sure), that a CLI version is in dev.
I would like to know the actual state (internal only), dev, alpha, beta.
(i ask because i would like to create a backup feature E2E with your service)

Thanks for the answer.

Filen Desktop UI Concept

Hi everyone!

I'm using Filen for several months, and I just love it! 😍

But compared to other cloud solutions, I find the interface of the Desktop Sync Client rather simplistic…
Therefore, I have designed a concept of a new and more complete UI for the Filen Desktop that I personally love!

What do you think, folks?

Flatpak Support

Flatpak support would enable automatic updates, live updates, delta updates, and dependencies decoupling across different Linux distributions.

For some of the issues related to this I can point you towards this discussion. Element is a working electron app with a flathub repository here.

[Feature request] ARM build for Mobile Linux

Filen is a great free and open source cloud storage service, and while I don't usually like the concept of AppImages, I think it works with no problems here. However, there's no ARM build for the AppImage, meaning you can only use it on a desktop Linux computer. Please include an ARM version in your future builds of the AppImage for Linux. Thank you for what you've done with Filen!

Linux app issues

The Linux app opens a full app in the dock that can be closed by right-clicking on it and selecting quit, but the show option from the tray will then no longer work to show it and you can't have the app start on boot any more since that option is not in the settings. Wil these issues be fixed at some point?

[Feature request] Add a Block-Level File Syncing

Hi everyone!

Because in people's minds, privacy and security doesn't match with speed, I just wanted to share with you a more powerful file syncing method! It can save a LOT of time for uploads, which is the weak spot of Filen, and is named the Block-Level File Sync!

If you don't know what it is, click here

I can understand that the zero-knowledge argument of Filen can explain why this method isn't used, but let me share a possible solution:

Why not apply a block-level synchronization to the encrypted file?

Because the account owner knows the encryption key used to protect his files on the cloud, why not encrypt the file locally, like Filen does, and then start a comparison mechanism which will extract missing data blocks of the file on the cloud to only upload them?

I leave this question open, because I think it's worth asking it to make this cloud storage service faster!

Again App not Working on LXDE Debian 11

Hello,
This is a follow up of #36 .
I downloaded the new image for Linux and I ran it.
I set up my sync point this way: on my pc it is the /filen_sync file in my home directory, which is what I have always used in the past.
This directory synchronizes to the online folder "Filen Sync" under "Cloud Drive", so I selected "Filen Sync" as the online folder.
However the client appears to go on forever looking for changes (it always tells me "Checking changes")
I paste below what I see in my shell (if you need some logs, please tell me how to retrieve them).

$ ./filen_x86_64.AppImage 00:46:17.329 › Checking for update 00:46:17.335 › Checking if an update is available 00:46:17.336 › Initializing startup windows [38399:0804/004617.570204:ERROR:gpu_memory_buffer_support_x11.cc(44)] dri3 extension not supported. 00:46:17.887 › Socket connected 00:46:17.955 › Update for version 2.0.1 is not available (latest version: 2.0.1, downgrade is disallowed). 00:46:17.956 › No update available: { version: '2.0.1', files: [ { url: 'filen_x86_64.AppImage', sha512: '5S2g2gy4ZlMhuoVle3BmwHk2ekFPHUyOQnOWlCYpwXMbsL1gUFbwkudCX/fVx7+RXssy6BhX/d6EOzOvu1aByQ==', size: 147455109, blockMapSize: 150681 } ], path: 'filen_x86_64.AppImage', sha512: '5S2g2gy4ZlMhuoVle3BmwHk2ekFPHUyOQnOWlCYpwXMbsL1gUFbwkudCX/fVx7+RXssy6BhX/d6EOzOvu1aByQ==', releaseDate: '2022-08-01T21:28:33.447Z' } 00:46:18.519 › Init startup windows done 00:46:18.890 › Sending socket auth 00:51:17.338 › Checking for update 00:51:17.340 › Checking if an update is available 00:51:17.613 › Update for version 2.0.1 is not available (latest version: 2.0.1, downgrade is disallowed). 00:51:17.613 › No update available: { version: '2.0.1', files: [ { url: 'filen_x86_64.AppImage', sha512: '5S2g2gy4ZlMhuoVle3BmwHk2ekFPHUyOQnOWlCYpwXMbsL1gUFbwkudCX/fVx7+RXssy6BhX/d6EOzOvu1aByQ==', size: 147455109, blockMapSize: 150681 } ], path: 'filen_x86_64.AppImage', sha512: '5S2g2gy4ZlMhuoVle3BmwHk2ekFPHUyOQnOWlCYpwXMbsL1gUFbwkudCX/fVx7+RXssy6BhX/d6EOzOvu1aByQ==', releaseDate: '2022-08-01T21:28:33.447Z' }

Any idea what the issue is?
Thanks

UI Improvement

macOS v.12.3
Filen Desktop Client v.1.6.2

Improve the quality of the icon.
Align on an axis of symmetry.

Screen Shot 2022-05-11 at 14 26 39

[Feature request] Flatpak build for Linux

Filen is a great free and open source cloud storage service, while I don't usually like the concept of AppImages, I think it works with no problems here. However, there's no Flatpak build for Linux , meaning you can have to use the AppImage as your only option. Please include an Flatpak version in your future builds for Linux. Thank you for what you've done with Filen!

"Filen Sync Helper (Renderer)" causes high CPU on Mac

Hi!

It seems like the "Filen Sync Helper (Renderer)" causes running high CPU on Mac.
Is this a known issue or could some third party apps causing this problem?

Many thanks in advance.
(Love the design of Filen and its simplicity!)
Cheers

Support for crypto payments?

Hello... I've been looking for alternatives to MEGA and I just found this service... It looks almost perfect!... Linux support, client-side encryption, very affordable plans... But the deal breaker (for me), no support for payment with cryptocurrencies.

Any plans to implement that (preferably in the near-ish future)?

Thanks in advance.

Contacts and calendar sync

Hi,
I think Filen is one of best free and open source (see #19 though) and privacy-respecting cloud storage options out there. What would make it even better is if it had the ability to sync contacts and calendars. Currently if you want to try to do this in a free and open source and privacy-respecting manor you have to use a Nextcloud provider, which aren't private but free or use EteSync, which is private but not free. If Filen were to just provide a CalDAV and CardDAV connection, it could be used on any device that supports it with no additional software (except Android, which requires DAVx5, see nextcloud/android#4691 for Nextcloud though). Even without a webapp, this feature would still make Filen much more appealing. Please consider adding this functionality as would only require minimal resources for you to setup and host and minimal documentation for users to setup and use. Thanks for making Filen!

[Feature Request] Exclude folder and files

It would be nice, to exclude folder and files from the sync.

In my case, for example, I also sync my development files via Filen. Here I would like to omit for example nodes_modules or .git.

That would be really wonderful, thanks

New Repositories for some Components of the Service

  • Filen is actually a great Cloud Storage with Open Source Apps but it would be great if there are Repositories made for Web Client making it Open-Source too.
  • You may need to consider Open-Sourcing the SDK that are used for Thumbnail Previews (for Video & Images) in Web Client
  • Also with Download & Upload SDK used by the Web Client

This issue has been made here as there us no Relevant Repositories.

Reconnect and Sync automatically after Internet access is available

I have setup Filen to Launch at Startup.

When I am using a VPN which takes some time to connect or connect to a Wi-Fi network in my Device later sometime after the Device Started up.

Filen do not detect for Internet connection and does not sync automatically and shows Error While trying to setup the Client, I need to close it using the X in Upper Right Corner and then exit the App and restart it to sync Files.

I think that you should make the App to check for Internet connection to sync after a Certain Interval of time regularly.

Request: Desktop App Should Respect System Theme

Currently, the desktop app (or at least the Linux AppImage) allows you to choose between a light and dark theme. Preferably, the app would hook into and respect the desktop's choice. This is important because many users have the dark theme turn on automatically at night.

I am running Elementary OS 6 but this should apply to all major Linux distributions.

Thanks!

A bit of help with Rust↔Filen API interface?

Hi guys!

Inspired by your great service and open-source client, I decided to make a Rust↔Filen API interface. Things were looking good, I got a lot of API queries working. It was fun implementing window.crypto/CryptoJS calls in native lib terms, and looking at filen-desktop source code to the point of memorizing it. However, recently I kinda hit a wall, with wall being implementing file upload, aka doUpload() from filen-desktop.

I am grateful for any help received, but if you are too busy to help, I would understand. So, to the point:

My encrypted file chunks can be uploaded to Filen successfully, at least Filen returns "Chunk stored" for every chunk. However, when I try to mark even small one-chunk uploaded file as done, Filen returns "Upload chunks are not matching." It would be really helpful if someone told me what this message really means :)

I guess I may have botched either encryption algorithms or file upload process. But encryption algorithms are tested for compatibility with their JS counterparts and should be working, since I can decrypt downloaded files and process metadata successfully. So that leaves upload process as the most probable culprit.

Current process of file upload is as follows:

Step 1, encrypt file information, shared by all chunks:

  • For now, set parent uuid to the user folder with 'default: true' property.
  • Generate new file uuid v4.
  • Gather file properties: name, size, last modified, mime type.
  • Generate file key, add it to file properties and encrypt them all as file's metadata.
  • Encrypt each file property with file key to their corresponding encrypted strings, also encrypt name with hashFn() for nameHashed.
    • Encryption uses version set to 1 everywhere, so it is AES-256 (CBC mode) with Pkcs7 padding.
  • Generate upload key and 'rm', whatever it is, to be shared by all chunks.

Step 2, upload file chunks using file information from step 1:

  • Divide file into chunks, with last chunk possibly being uneven. E.g. for a file of size 5 and chunk size 2 chunks would be: [(offset 0, chunk size 2, index 0), (offset 2, chunk size 2, index 1), (offset 4, chunk size 1, index 2)].
  • Encrypt each chunk with file key from step 1 and encryption version set to 1.
  • Post each encrypted binary blob to different random Filen upload server at /v1/upload? endpoint, passing the same data from step 1 in URL query params (except for index, which is the only different param for each chunk).
  • Do not retry to reupload chunks with 'status: false', just fail the entire upload.
  • If all chunks resulted in 'status: true' from Filen, send upload key from step 1 to random Filen API server /v1/upload/done.
  • Receive "Upload chunks are not matching." Why-y, everything seems analogous to filen-desktop, and yet it fails...

Please pardon my intrusion alongside a wall of text, I am at the wits' end with this one. Anyway, thanks for creating Filen and have a good day.

Broken on Fedora 35

Hi,

The Linux client doesn't work for me on Fedora 35. The first time I run it, it doesn't show a GUI at all, however top shows it running in the background. The second time I run it, the UI shows up, but disappears as soon as I click anything outside the window, though it still seems to be running in the background. I've included the main.log for both runs, but they don't appear to show any issue.

first.log
second.log

[Feature Request] Allow user to chose wich files keep synced

Hello,
I would like to propose a new feature.

Google Drive allows you to decide which files and folders to synchronize via a contextual menu in the file manager (see image attached at the bottom, sorry for the non-English language), I think this is a very useful feature.

Thank you.

image

Details in Release Page

In the Releases page of Github Repository for Mobile App & Desktop App there is just the Version Numbe.It would be great if its shown Wht's New in Detail & Bugs Fixed with Reference to the Commit made.

And also list the Packages for every Oprating System with all Binaries

Case-insensitive issue on the website

I could not rename some folder "foo" to "Foo" on the website, it accuses that the folder already exists.

I think that the case-insensitive could be a problem if I upload two folders/files in the same directory with the same letters, like the example above.

I did not find a place to report an issue for the website.

Open source web interface and server

Filen is committed to open source, but your web interface and server are still closed source. This means it's not possible to browse the source code of your web interface and server, and only the desktop and mobile apps are open. If Filen were to take this approach, you would be taking an important step forward in open source and privacy for your service. Thank you for all you've done with Filen, and I really hope you consider taking this approach!

add compression support

Hi,
filen does not compress files at all before sending or receiving.
For instance, this is pretty noticeable with a slow upload connection and highly compressible files.

Just for debug try hgt DEM data available at viewfinderpanoramas.org

  • Download M32.zip (Germany central)
  • unzip M32.zip
  • as reference, use N48E006.hgt

uncompressed size = 2.9 MB
7z compression = 913 kB
pgp encrypted = 1.3 MB

Traffic generated by all those hgt files (24 files, 69.2 MB) it's equal to their uncompressed size or even more (roughly monitored with gnome-system-monitor).

Please consider implementing compression in a way to reduce traffic bandwidth

[Wayland] Native support

Is it possible make an update to allow on wayland desktop to actually use Wayland instead of Xwayland,
Xwayland is automatically used when an app without support for Wayland is launched, updating electron (or any other tool) to last version (who support wayland) generally fix the problem.

I ask this because Xorg is know to have old misconception from the start who can cause security issue and since you are one of the best at security, i think this problem must be fixed as soon as possible.

Synchronize more folders

It should definitely be possible to select any folders for synchronization. If this is implemented, Filen will be my only service - at the moment I unfortunately still need Dropbox & Co.

Exe kann unter Win11 nicht ausgeführt werden

Ich habe gestern Win11 als Neuinstallation eingerichtet und bei dem Versuch die Filen-Desktopapp zu installieren ist nichts passiert. Auch mit Adminberechtigungen startet die Installationsdatei nichts. Ausprobiert wurde die Version 1.6.1 von Github und die Datei von der Filen-Website.

[Feature Request] Allowing writing privileges for shared folders

It's great that read-only sharing currently exists but enabling write access would enable me to replace other software I currently use with my family. I'm aware that with the end to end encryption this is considerably more difficult to enable than with other services but hope one day to see it come to filen.

[Feature Request] Show sync progress and language support

In the Desktop app it would be great if it shows the progress of the new files that are being synced. At the moment it's just showing "Filen is synchronizing"

Example:
Putting 6 new files into the sync directory.
Clicking on the Filen.io Icon in the taskbar.
Program showing upload and sync progress of each new file added (e.g. as seen in Dropbox)

Also it would be great if different languages would be supported on the desktop version as they are on mobile.

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.