OLD | NEW |
(Empty) | |
| 1 --- |
| 2 layout: article |
| 3 title: "Command-Line Apps" |
| 4 description: "Documentation, references, and more about server-side programming.
" |
| 5 has-permalinks: true |
| 6 --- |
| 7 |
| 8 {% include docs_toc.html %} |
| 9 |
| 10 # {{ page.title }} |
| 11 |
| 12 You can use Dart for any kind of command-line app from scripts to servers. |
| 13 |
| 14 ## Show me the code |
| 15 |
| 16 If you prefer to plow through code, start with the following examples. |
| 17 These samples progress from simple to complex |
| 18 and illustrate a variety of APIs specific to command-line apps and servers. |
| 19 |
| 20 <hr> |
| 21 |
| 22 <div class="row"> |
| 23 <div class="col-md-5"> |
| 24 |
| 25 ### Best place to start |
| 26 |
| 27 * [Dart by Example](/dart-by-example/#dart-io-and-command-line-apps) |
| 28 |
| 29 </div> |
| 30 <div class="col-md-7"> |
| 31 |
| 32 #### Top 10 |
| 33 |
| 34 10. Using files, directories, and symlinks |
| 35 9. Reading and writing files |
| 36 8. Listing contents of directories |
| 37 7. Using streams |
| 38 6. Making HTTP requests |
| 39 5. Getting the response |
| 40 4. Handling errors |
| 41 3. Serving index.html |
| 42 2. Adding custom headers |
| 43 1. Implementing an HTTP server |
| 44 0. ...and more... |
| 45 |
| 46 </div> |
| 47 </div> |
| 48 |
| 49 <hr> |
| 50 |
| 51 <div class="row"> |
| 52 <div class="col-md-5"> |
| 53 |
| 54 ### Basic command-line apps |
| 55 |
| 56 * [dcat](https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dar
t/samples/dcat/README.md) |
| 57 * [dgrep](https://code.google.com/p/dart/source/browse/branches/bleeding_edge/da
rt/samples/dgrep/README.md) |
| 58 </div> |
| 59 <div class="col-md-7"> |
| 60 |
| 61 #### APIs |
| 62 |
| 63 * Parsing command-line arguments |
| 64 * Reading a file |
| 65 * Converting data |
| 66 * Using stdin, stdout, and stderr |
| 67 * Listing a directory recursively |
| 68 * Testing and getting information about paths |
| 69 </div> |
| 70 </div> |
| 71 |
| 72 <hr> |
| 73 |
| 74 <div class="row"> |
| 75 <div class="col-md-5"> |
| 76 |
| 77 #### Servers |
| 78 |
| 79 * [slambookserver](https://github.com/dart-lang/dart-tutorials-samples/blob/mast
er/web/slambook/) |
| 80 * [dartiverse_search](https://code.google.com/p/dart/source/browse/branches/blee
ding_edge/dart/samples/dartiverse_search/readme.txt) |
| 81 |
| 82 </div> |
| 83 <div class="col-md-7"> |
| 84 |
| 85 #### APIs |
| 86 |
| 87 * Using the HttpServer class |
| 88 * Handling GET, POST, and OPTIONS requests |
| 89 * Using CORS headers |
| 90 * Using WebSockets |
| 91 * Getting responses |
| 92 * Routing requests |
| 93 * Handling errors |
| 94 |
| 95 </div> |
| 96 </div> |
| 97 |
| 98 <hr> |
| 99 |
| 100 ## Read all about it |
| 101 |
| 102 Follow these links in order to gain a full understanding |
| 103 of how to write different kinds of command-line apps in Dart using |
| 104 various Dart libraries and packages. |
| 105 |
| 106 ### Prerequisites (dart:async library) |
| 107 |
| 108 * [Use Future-Based APIs](/docs/tutorials/futures/) |
| 109 <img src="/docs/tutorials/images/target.png" height="16" width="16"> |
| 110 * [Use Streams for Data](/docs/tutorials/streams/) |
| 111 <img src="/docs/tutorials/images/target.png" height="16" width="16"> |
| 112 |
| 113 ### The Basics |
| 114 |
| 115 * [Write a Command-Line App](/docs/tutorials/cmdline/) |
| 116 <img src="/docs/tutorials/images/target.png" height="16" width="16"> |
| 117 |
| 118 ### Servers |
| 119 |
| 120 * [Get Input from a Form](/docs/tutorials/forms/) |
| 121 <img src="/docs/tutorials/images/target.png" height="16" width="16"> |
| 122 (contains an HTTP server/client pair) |
| 123 * [Walkthrough: Dartiverse Search](/docs/dart-up-and-running/contents/ch05.html) |
| 124 * [Deploy to Heroku](https://github.com/igrigorik/heroku-buildpack-dart) |
| 125 |
| 126 {% comment %} |
| 127 * How to write a basic server using http_server package (sample link) |
| 128 * How to write a web server (sample link) |
| 129 * How to use Heroku to deploy (external link) |
| 130 |
| 131 #### Other server-specific tasks |
| 132 |
| 133 * How to perform server-side templating (??) |
| 134 * How to use SSL to perform secure web messaging (??) |
| 135 * Use zones for more control over your asychronous computations (??) |
| 136 * How to write a long-running server (??) |
| 137 * Using TCP for reliable transmissions (??) |
| 138 * Using UDP for lightweight, efficient transmissions (??) |
| 139 * Connecting to the postgres database (and concepts for other databases) (??) |
| 140 * URL routing for god knows what purpose (??) |
| 141 |
| 142 {% endcomment %} |
| 143 |
| 144 ### Reference docs |
| 145 |
| 146 * [dart:io](https://api.dartlang.org/dart_io.html) |
| 147 * [args package](https://api.dartlang.org/args.html) |
| 148 * [dart:async](https://api.dartlang.org/dart_async.html) |
| 149 * [dart:convert](https://api.dartlang.org/dart_convert.html) |
OLD | NEW |