Code Monkey home page Code Monkey logo

phpdesktop's Introduction

PHP Desktop

Table of contents:

Introduction

PHP Desktop is an open source project founded by Czarek Tomczak in 2012 to provide a way for developing native desktop GUI applications using web technologies such as PHP, HTML5, JavaScript and SQLite. Think of it as Electron for PHP. It is a convienient tool for converting PHP web apps and PHP CLI tools to desktop applications with little effort. The development workflow you are used to while creating web applications remains the same, there is no new framework / API to learn. The process of turning an existing website into a desktop application is basically a matter of copying it to the "phpdesktop/www/" directory.

In a certain sense phpdesktop acts as a PHP to EXE compiler. It embeds a web browser, a multi-threaded web server and a PHP interpreter. All embedded into a single application, a portable folder that you can easily distribute to end users by packing it to zip archive or by making an installer for your application. The web server embedded is a custom edition of Mongoose, a web server used by NASA on the International Space Station. Supported browsers are Internet Explorer and Google Chrome via open source Chromium. The package with Chrome embedded has no external dependencies, everything is included in phpdesktop binaries and works out of the box on a user's computer.

All popular PHP frameworks are supported, see the PHP frameworks support wiki page for example configurations for CakePHP, CodeIgniter, Laravel, Symfony, Yii and Zend Framework. You can create a standalone executable for distribution with the help of the Inno Setup installer. PHP sources can be protected with the many of the available PHP encoders. PHP Desktop is released under non-restrictive license, thus it is free for commercial use.

It is one of the top goals for PHP Desktop to be stable, to work reliably. PHP Desktop does not suffer from memory leaks. PHP by design was never intended for running long hours/days, as desktop applications usually do. This is not a concern when using PHP Desktop, as it is running an internal web server and serving pages through CGI. So when PHP script execution ends, PHP-CGI process is killed and all memory is always freed.

Lots of other useful information can be found on the Knowledge Base wiki page and on the PHP Desktop Forum.

Downloads

There are two ways to be notified about new releases:

  • Watch the project with the "Releases only" option checked
  • Subscribe to the RSS/Atom feed

Support

Fundings for new features

Here is a list of ongoing fundings for new features in PHP Desktop:

Feature Funds gathered Issue Status
Chrome v100 release for Windows $1000 of $2,000 Issue #227 Ongoing funding
Initial Mac release $2,000 of $2,000 Issue #208 Work started

Below is a list of completed fundings with features already implemented:

Feature Funds gathered Issue Status
Initial Linux release $1,500 of $1,500 Issue #221 Done

Fundings for other features submitted in the issue tracker and the ones presented on the PHP Desktop Pro wiki page are also possible, just let know Czarek.

Support development

If you would like to support PHP Desktop general development efforts by making a donation please click the Donate button below:

Donate

Seeking sponsors

PHP Desktop is seeking companies to sponsor further development of the project. There are many proposals for new features submitted in the issue tracker and on wiki pages. Most notable are:

  • Monthly releases with latest Chrome
  • An automated build system
  • Cross-platform support with full functionality on Mac and Linux
  • More Javascript and PHP API exposed for accomplishing desktop specific tasks
  • Better integration with desktop, taskbar and systray
  • HTTPS/SSL support
  • Custom window themes
  • Running app in background
  • SQLite encryption
  • Desktop notifications

If your company would like to sponsor PHP Desktop development efforts then please contact Czarek. Long term sponsorships are welcome and Czarek is open to ideas about the project. He would love to spend more time on developing this project, but he can't afford doing so in his free time.

phpdesktop's People

Contributors

cztomczak avatar thendotshikota avatar zooboole 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  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

phpdesktop's Issues

Provide All Extensions

Provide a special PHP Desktop binary that comes with all extensions included. 
So that there would be two binaries to download: one minimized, the other with 
all features included.

Original issue reported on code.google.com by [email protected] on 22 Sep 2013 at 2:17

External links should load in external browser

When there is an external link on a page we should not load it
in our application's browser control, it should load in system's
default browser.

In our application's web-browser control we should allow loading only
urls starting with http://127.0.0.1:54007/.

Maybe we should allow to customize this behavior, a list of urls
that should be allowed to load in web-browser control and all
others should be run in system's default browser.

Original issue reported on code.google.com by [email protected] on 13 Jan 2013 at 3:04

Encrypt and embed static resources (js/css/images) inside phpdesktop executable

We need a way to protect the www/ directory, using php encoder
is an option, but it won't protect other files in the www
directory.

Before we start work on thiss issue we need to implement Chrome 
engine (Issue 1) and PHP API calls (Issue 3).

If the www directory is embedded in zip file, we should not extract
it anywhere to the file system, the best way is to extract it to
memory, so that it's really hidden. But doing it this way won't
work with web-server (unless we modify web-server to work with our
virtual in-memory filesystem). In Chrome web-server is not needed,
as there Scheme handler that acts similarly to a web-server.

For keeping www directory in memory we will probably need some kind
of Virtual File System.

To execute PHP scripts that aren't accessible through local file
system we would have to hook up to the PHP API (Issue 3).

The www directory can be encrypted in a zip file using AES encryption,
we could use this simple C++ library:
http://www.lomont.org/Software/Misc/AES/AES.php

We will also need some zip library.

An option for the zip file to reside along with the exe file (
data.zip or data.dat - the zip filename could be customized through
settings.json file).

The best option would be to embed that zip file in exe file as
a resource.

Some tool for automating the process of encrypting zip file and
embedding it in exe file would be useful.

Original issue reported on code.google.com by [email protected] on 2 Feb 2013 at 3:13

HIDE MY PHP CODE

Hello And thank you for your quick reply 

one question
is there any way that we can encode our php source code 

thanks


Original issue reported on code.google.com by [email protected] on 27 Jun 2013 at 1:52

Add a no-cache example

What steps will reproduce the problem?
1.Run your application and then close msie.exe on which we run application.
2.Again start msie.exe

What is the expected output? What do you see instead?
In this case I can see the previously run page which I run last, after that I 
did changes in my application so next when I run msie.exe, it should give me 
fresh run (not old cache stored contents).

What version of the product are you using? On what operating system?
V10 on Window7

Original issue reported on code.google.com by [email protected] on 11 Sep 2013 at 6:16

Move extensions to the php executable directory - problems finding ext on Win XP

On Windows XP loading of extensions fail, the following error messages
occur for loading any of the extensions entered in the "php.ini" file:

  PHP Warning: PHP startup: Unable to load dynamic library 
  "php_sqlite.dll" - Application initialization failed due
  to incorrect configuration. Reinstalling the application
  may solve the problem.

It seems that this is a long time bug in PHP when running as CGI
(through php-cgi.exe). The solution seem to be to add the php directory
to the system PATH variable or just move the extension dlls to the
same directory that the "php-cgi.exe" executable resides, see this
post [1].

[1] https://groups.google.com/d/msg/phpdesktop/0E7QK0uy5nw/UnktT3-TEtwJ

Original issue reported on code.google.com by [email protected] on 11 Jun 2013 at 9:30

Set CGI environment variables by passing command line parameters to phpdesktop executable file

What steps will reproduce the problem?
1. run cmd.exe with this command (replace the name of your app..) : 
yourapp.exe --variable1=foo --variable2=bar

2. into the index.php inside the www folder, write : print_r($_SERVER)

3. Nothing is visible

What is the expected output? What do you see instead?
Try to read variables into the index.php by print_r($_SERVER).
Try to create a bridge between OS and PhpDesktop without deals with register

What version of the product are you using? On what operating system?
- php-desktop-msie_v10
- windows xp 64 (virtual machine)

Original issue reported on code.google.com by [email protected] on 8 Aug 2013 at 11:25

Add sqlite example

Add "test_sqlite.php" example to the www/ directory:

<?php

error_reporting(-1);
include "./pdo.php";
$db_file = "./my_database.sqlite3";
PDO_Connect("sqlite:$db_file");
echo("PDO_Connect(): success! $db_file created");

?>

The "pdo.php" file can be found on the UsingSQLite wiki page.

Original issue reported on code.google.com by [email protected] on 10 Jun 2013 at 4:37

Website Incorrect Link to CEFPython

What steps will reproduce the problem?
1. Go to https://groups.google.com/forum/?fromgroups=#!forum/phpdesktop
2. Click on the link that says: "Project's website: 
http://code.google.com/p/phpdesktop/"


What is the expected output? What do you see instead?
The expected output is that it should go to 
http://code.google.com/p/phpdesktop. Instead, the link actually points to 
http://code.google.com/p/cefpython


Not sure if this is where I should be putting this.

Original issue reported on code.google.com by [email protected] on 9 Apr 2013 at 4:30

Examples of embedding other scripting languages using PHP Desktop infrastructure

When Mongoose web-server gets implemented (Issue 14), we will be able
to embed any scripting language that provides a CGI executable. To do
this you would need to make only a single change to the settings.json
file by changing "cgi_executable" path. We might as well provide binary
examples of such embedding on the main page.

Original issue reported on code.google.com by [email protected] on 17 Jan 2013 at 7:32

Add application settings file: settings.json

In settings file we could have options for customizing application's window, 
some of the options might allow setting:
 * default window size
 * minimum/maximum window size when resizing
 * disable maximize button
 * center the window on the screen

Original issue reported on code.google.com by [email protected] on 13 Jan 2013 at 1:19

MSIE: Handling navigation errors (404)

When there is a navigation error you will see a page with
standard Internet Explorer message explaining that it failed
to load the page and suggests some solutions. Application
should display its own custom html page in such circumstances,
or allow for a redirect to some php script.

Original issue reported on code.google.com by [email protected] on 14 Jan 2013 at 7:51

Example of running php jobs in background

When developing a desktop application there might be the need to run a PHP script that does some heavy lifting, thus executes for a significant amount of time, for that we need to embed a multi-threaded
web server (Issue 14) in the first place.

Useful php functions / php.ini options:

  • ignore_user_abort()
  • set_time_limit(0)

Issue with running background php jobs when page is refreshed was reported in this topic: https://groups.google.com/d/topic/phpdesktop/a-LHbSWbbDQ/discussion

Issue #31 describes a plan for implementing LaunchProcess function and exposing it via Javascript API. Processes launched using this function would be guaranteed to run for app's lifetime and terminate when app exits.

OLD INFO:

One way for such an API would be to run php scripts asynchronously
in the background using for example CURL library. It would be nice
if such API provided a way to provide callbacks, so that you can be notified
when the background job finished executing, such callback
might be an URL to a php script or a Javascript function that will
get called in the browser, though javascript callback might be hard
to implement and it is probably only possible if we go with direct
PHP API calls (Issue 3).

Another approach is to create a javascript API for executing php jobs
in background using XMLHttpRequest, this way browser gets notified when
a job has finished and it will play nicely with an embedded web-server.

It is also possible to display a progress of a time consuming task without
the need of using ajax techniques, by disabling output buffering and flushing
a string that calls a javascript function that updates the progresss bar, see
this post on the PHP Desktop Forum:

https://groups.google.com/d/msg/phpdesktop/EoJchr65dk8/OZryJKp_Fy4J

I think that all we need is some simple example using XMLHttpRequest
object and another one using curl library (or just file_get_contents
and fetching partial content).

Original issue reported on code.google.com by [email protected] on 15 Jan 2013 at 7:09

FATAL error

I want to process a very large TEXT file , but it provide the FATAL error 
(failed to allocated 36 byte)..
I set THE memory_limit to 4000M but it did not change
why there is No PHP.INI in your package

thanks


Original issue reported on code.google.com by [email protected] on 26 Jun 2013 at 1:57

Fatal Error: COM not found

What steps will reproduce the problem?
1.  Trying to run
$word = new COM("word.application") or die("Unable to start the Microsoft 
Office Word program,");


What is the expected output? What do you see instead?
I expect to see the program open the word office document.


What version of the product are you using? On what operating system?
v10 on windows 7

Please provide any additional information below.
Apparently with the version of php included this extension does not exist.  I 
have tried to manually download and add it myself but run into other errors.  I 
am trying to write a program to open a word document template and fill in the 
form based on user entries.

Original issue reported on code.google.com by [email protected] on 22 Sep 2013 at 1:42

Soap Client

What steps will reproduce the problem?
1.  Include $soapClient = new SoapClient($wsdl, $authParams);

What is the expected output? What do you see instead?
I should see the wsdl data.  I receive php fatal error Class Soap Client not 
found.

What version of the product are you using? On what operating system?
v10 on Win7 and XP


Please provide any additional information below.
I have gone ahead and added the php_soap.dll file in the ext folder as well as 
adding "extension=ext/php_soap.dll" to the php.ini file and I still get the 
fatal php error.

Original issue reported on code.google.com by [email protected] on 4 Oct 2013 at 3:38

Provide binaries for both PHP 5.4 and PHP 5.5

PHP 5.5 has dropped support for Windows XP and 2003, the XP system
is still widely used, as of May 2013 XP it has about 37% market share
according to the wikipedia:

http://en.wikipedia.org/wiki/Usage_share_of_operating_systems

PHP 5.4 should still be the default for the PHP Desktop binaries.

Original issue reported on code.google.com by [email protected] on 20 Jun 2013 at 10:08

Reload php-cgi process with variable without close

What is the expected output? What do you see instead?
I need to send variables FROM an external application TO desktop, and make a 
refresh of the window (php page with AJAX), without close and open again the 
phpdesktop.exe. Cause close and open is very easy.
I am using params written in the php.ini, and the aim will be to write a param 
into the php.ini and to refresh the phpdesktop without close it before and run 
again.

The external application uses Windows fonctions to call processes, to launch 
files, to write some data into files and to show results into phpdesktop.
I need that the window of desktop stay visible and that an external process 
(written in C) refresh the window.

What version of the product are you using? On what operating system?
V10

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 18 Sep 2013 at 1:16

Check if port 54007 is free before running web-server

The default port for running php web-server is 54007, but
this port might already be occupied by another application
or by our application when running multiple instances. 
Therefore we should check if this port is free and if not
then generate a random port in the range 49152โ€“65535, try
drawing for at least 100 tries until you find a free port.

How to check if port is free? Need to google it.

Original issue reported on code.google.com by [email protected] on 13 Jan 2013 at 5:13

Expose useful Windows API functions to Javascript

API functions should accessible in javascript through the "phpdesktop" object, e.g. phpdesktop.SetFullscreen(). Some functions have already been exposed, see the JavascriptApi wiki page.

LaunchProcess() [ShellExecute in Windows API] - equivalent of php system/exec functions. But this one would be exposed to javascript. Advantage of this is that it is parented to root phpdesktop-chrome.exe process, so its execution continues for app's lifetime. Issue #15 provides a link to a forum topic that describes a problem with running php job in background when page is refreshed. ShellExecute would resolve this problem. Issue #163 describes implementation of LaunchProcess/ShellExecute in more details.

Open/Save file dialogs:

CloseWindow()
ExitApplication()

The window functions below will be required for custom window themes using HTML5 (Issue #26):

ShowWindow()
HideWindow()
MinimizeWindow()
MaximizeWindow()
RestoreWindow()
MoveWindow()
ResizeWindow()

SetFullscreen() - see Issue #38 "Javascript API to set fullscreen".

Exposing the windows API functions to PHP would be in a form of a PHP example,
that shows how to use the w32api experimental extension
(http://php.net/manual/en/book.w32api.php) or something similar.

Regarding functions to show a dialog to open/save a file, or browser for folder, see what options to these functions we could expose:

Original issue reported on code.google.com by [email protected] on 26 May 2013 at 7:34

MSIE: Cannot Copy and Paste html content with ctrl + c

What steps will reproduce the problem?
1. Turn on msie context menu in json.settings
2. Select some text on the page/application window
3. Hit ctrl + c or right click and select Copy
4. Open notepad and Paste 

What is the expected output? What do you see instead?

It should past the contents of what I copied from the app screen.  Instead it 
pastes the last thing I have copied to clipboard from another program.

What version of the product are you using? On what operating system?

v10 on Windows 7 with IE 9.

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 23 May 2013 at 2:42

Add an example of setting temp dir on Win8 to solve tmp dir problems on this OS.

What steps will reproduce the problem?
1. sys_get_temp_dir(); returns "C:\windows"
2. This folder is not writeable by php
3. This causes extensions to malfunction when they need to write temporary files

I would expect the temp folder to be C:\windows\temp or something that I can 
write to.


I am using php_desktop_msie_v10 on Windows 8.


First, I'd like to say that I really like this runtime environment. It's a 
great idea and I've found it very easy to work with. I'm running into this 
problem when trying to use ImageMagick, but I can see it being a problem with 
other extensions as well. I can't find a php.ini directive to change the temp 
folder, so I'm wondering if there's some other way to do it?


Original issue reported on code.google.com by [email protected] on 3 Jul 2013 at 9:02

PHPDesktop with Chromium (different solution, take a look please)

I had create a version of PHPDesktop using Chromium (with the -app option, 
which give us a SSB mode of the Chromium Browser).

It's a different solution and it's not the way you are doing, but I ask you to 
take a look, if you have time. It's very nice solution and working.

Only bad thing is the size, 29.1 MB, because of the ChromiumPortable, that is 
installed in the PHPDesktop folder.

Download, extract and run Launcher.exe to take a look.

A possible solution too may be find the chrome.exe of the Chrome installation 
in the host computer, but it's not trust that the chrome will be always 
installed in the host computer, so I used the ChromiumPortable version.

You can download it from here:

http://www.mediafire.com/?fwjmm6vphrs3t2e

Original issue reported on code.google.com by [email protected] on 1 Mar 2013 at 9:37

Embed a web-server that can handle multiple requests at the same time

Seems like the PHP built-in webserver is not multi-threaded, it
can handle only one request at the same time, this can be a problem
when executing scripts that take a significant amount of time. Take 
for example this scenario:

test1.php
---------
{{{
<?php
sleep(5);
print("test1 finished.");
?>
}}}

test2.php
---------
{{{
<?php
print("test2 finished.");
?>
}}}

Run test1.php & test2.php, you will see that you have to wait five
seconds before test2.php is executed, as test1.php has made the
web-server busy.

The same problem exists when using direct PHP API calls, see Issue 3.

Original issue reported on code.google.com by [email protected] on 15 Jan 2013 at 5:26

Fork Mongoose using the last MIT-licensed commit

Mongoose changed its license from MIT to GPL v2, see this topic:
https://groups.google.com/d/topic/mongoose-users/aafbOnHonkI/discussion

GPL v2 is would be bad for users creating commercial software, we have to fork
the Mongoose project up to the last commit that was still MIT-licensed.

Original issue reported on code.google.com by [email protected] on 20 Aug 2013 at 6:32

Custom window themes using HTML 5

This project is great! But IE is obviously too inferior for a project such as
this. I'll wait for the chrome version instead.

Anyway, here are my suggestions:
Frameless Browser option
Minimize/Maximize using Javascript

Why these suggestions?
Because the main reason I want to create applications using php and html5 is
because you can go crazy about creating the GUI. There's no limit to what you
can do with canvas!

Sadly the GUI frame will break the whole idea up. And emulating the
minimize/maximize button by using javascript or a function that can be called
using html wold be a great feature :D

Will add more suggestions soon as I think of them. Hope to see the chrome
release and more power :)

Regards,
Nile

Original issue reported on code.google.com by [email protected] on 4 Apr 2013 at 5:02

Embed PHP interpreter through PHP API, a replacement for CGI

Currently we are running php web-server at http://127.0.0.1:54007/, the 
downside of it is that it can cause some troubles with firewalls, when running 
application they they may ask user whether this application is allowed to 
listen at 127.0.0.1 on port 54007.

We should make this an option whether we want to act as a web-server or execute 
scripts directly by running command "php.exe -f myscript.php".

The possible advantage of running as a webserver might be a better performance, 
but there is only one user connecting to that web-server in our case, so the 
gain is dubious.

Original issue reported on code.google.com by [email protected] on 13 Jan 2013 at 1:15

Embedding custom icon in exe file

We should provide a tool for embedding custom icon in the exe file, the 
instructions on the main page to use Resource Hacker and edit icon group 
manually is not acceptable.

Application should load the icon dynamically by reading "icon.ico" file in 
current directory or we should include a tool to easily embed an icon in just 
one click.

Original issue reported on code.google.com by [email protected] on 13 Jan 2013 at 2:55

Embedding www/ directory as a resource in exe

A www/ directory could be archived as a zip file and embedded
in the exe as a resource. Create a tool for such embedding of
zip files in an exe and a way to execute php scripts from this 
zip file.

This is not a high priority as protection of sources is already
possible with ionCube, ZendGuard, SourceGuardian, Nu-Coder, as
you can load custom php extensions that act as decoders.

Original issue reported on code.google.com by [email protected] on 13 Jan 2013 at 4:39

error_log does not write to system logs

What steps will reproduce the problem?
1. Enable logging, show_console = true, log_level = "INFO", log_file = 
"debug.log".
2. Include an error_log() statement in www/index.php.

   <?php error_log("Here I am!"); ?>

3. Start application.

What is the expected output? What do you see instead?

Should see ERROR in log, but it does not show up in the file or console. 

What version of the product are you using? On what operating system?

php-desktop-msieVv10, Win7.


Please provide any additional information below.

Changing log_level affects the verbosity of system logs, but does not appear to 
enable my own logs.

Original issue reported on code.google.com by [email protected] on 9 Oct 2013 at 5:10

MSIE: freezing problem with Mongoose web server

There is a freezing problem in Mongoose 3.6 & 3.7 versions,
this bug seems to be related only to Internet Explorer browser,
Google Chrome works fine with Mongoose. More detailed explanation
of the problem can be read on the mongoose-users forum:

https://groups.google.com/d/topic/mongoose-users/9h9470U9jXY/discussion

In the meantime I will make a PHP Desktop MSIE release with
PHP built-in web server.

Original issue reported on code.google.com by [email protected] on 8 Feb 2013 at 8:50

Timeout when running script

What steps will reproduce the problem?
1.Running a while statement every 3 minutes
2.Executing a system command
3.

What is the expected output? What do you see instead?
It continues to running until I close the app. That is the expected outcome. 
But instead i get 404 and i can only run for 2 hours php-cgi.exe doesn't 
function.

What version of the product are you using? On what operating system?
Windows server 2008

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 26 Feb 2013 at 6:39

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.