Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 135 lines (95 sloc) 3.774 kB
99e1a12 @tj Initial commit
tj authored
1
6cc9727 @tj Docs
tj authored
2 # Kiwi - Node.js Package Management
99e1a12 @tj Initial commit
tj authored
3
6cc9727 @tj Docs
tj authored
4 JavaScript package management system for **node.js**
7d028d6 @tj Started readme
tj authored
5
8279654 @tj Added Slicehost sponsorship message
tj authored
6 ## About
7
8 Kiwi development is sponsored by [Vision Media](http://vision-media.ca) and hosting
9 is sponsored by [Slicehost](http://slicehost.com).
10
7d028d6 @tj Started readme
tj authored
11 ## Features
12
6360624 @tj Docs
tj authored
13 * Fast / Solid
14 - Written in bash script
15 - Utilizes battle-tested programs
557a6d7 @tj Updated features
tj authored
16 * Packaging of "seeds" (tarballs)
1b00b65 @tj Updated readme
tj authored
17 - Ignores .{git,svn,cvs}
18 - Ignores globs in .ignore when packing
6360624 @tj Docs
tj authored
19 * Distributed packages as "seeds"
ceb6afc @tj Docs
tj authored
20 - installation (including node and kiwi itself)
6360624 @tj Docs
tj authored
21 - uninstallation
22 - updating
23 - publishing to the kiwi seed server (similar to gemcutter for RubyGems)
24 - listing of installed seeds and their versions
25 - searching of remote seeds
26 - arbitrary build commands (so you can make, scons, jake, etc)
ba3ad1f @tj Added flat-list installation support. Closes #62
tj authored
27 - installation via flat-list of seeds and associated versions
ceb6afc @tj Docs
tj authored
28 - collects stats such as seed download counts
29 - user registration via command-line
562b9cb @tj Docs
tj authored
30 - user authentication
6360624 @tj Docs
tj authored
31 * Version resolution
32 - via installation
33 - via runtime
34 * Interactive console or REPL
35 - Auto-detects and utilizes rlwrap
84a2001 @tj Added env stuff to readme
tj authored
36 * Multiple environments
37 - Use one or more environments to manage your seeds
ceb6afc @tj Docs
tj authored
38 * Not dependant on GIT (like most other proposed node package managers)
ec29d6d @tj Installation docs
tj authored
39
e9651c5 @tj Kiwi vs npm
tj authored
40 ## Kiwi Vs Others
41
42 Other node package management systems utilize absolute urls
43 in order to fetch their tarballs, below is an example of
44 both **kiwi** and **npm** installing the same library.
45
f8462ba @tj Docs
tj authored
46 kiwi:
47
e9651c5 @tj Kiwi vs npm
tj authored
48 $ kiwi install haml
49
f8462ba @tj Docs
tj authored
50 npm:
51
e9651c5 @tj Kiwi vs npm
tj authored
52 $ npm install http://github.com/creationix/haml-js/tarball/0.1.2
53
ec29d6d @tj Installation docs
tj authored
54 ## Installation
55
56 $ [sudo] make install
57
58 ## Uninstallation
59
60 $ [sudo] make uninstall
a3a8b18 @tj Updated features list
tj authored
61
62 ## Updating
63
64 $ [sudo] kiwi update
656ffed @tj Added simple walkthrough
tj authored
65
66 ## Example Walkthrough
67
68 First we need to install a few seeds:
69 $ kiwi -v install haml
70 $ kiwi -v install oo
71
72 Now we can create a file named _app.js_ anywhere
73 on our system and add:
74
75 var kiwi = require('kiwi'),
76 sys = require('sys')
77
78 sys.p(kiwi.require('haml', '= 0.1.2'))
79 sys.p(kiwi.require('oo', '1.2.0'))
80 sys.p(kiwi.require('oo'))
81
82 Then run it with node:
83 $ node app.js
99e1a12 @tj Initial commit
tj authored
84
77a8042 @tj Started specs
tj authored
85 ## Testing
73f4319 @tj Started specs
tj authored
86
87 Specs are run using Ruby RSpec's `spec` executable.
77a8042 @tj Started specs
tj authored
88
8fdc6f4 @tj Readme testing
tj authored
89 $ make server-start && make test && make server-stop
3c34353 @tj Program deps docs
tj authored
90
91 ## Dependencies
92
3719a10 @tj Docs
tj authored
93 Command dependencies are as follows:
3c34353 @tj Program deps docs
tj authored
94
95 * sed
96 * awk
97 * tar
1b00b65 @tj Updated readme
tj authored
98 * egrep
3c34353 @tj Program deps docs
tj authored
99
100 Currently tested with:
101
102 * MacOS 1.5.8
d110152 @tj Added bash version
tj authored
103 * GNU bash, version 3.2.17(1)-release (i386-apple-darwin9.0)
3c34353 @tj Program deps docs
tj authored
104 * tar (GNU tar) 1.15.1
0bacd69 @tj Added POST /:name for publishing seeds
tj authored
105 * curl 7.16.3
1b00b65 @tj Updated readme
tj authored
106 * egrep (GNU grep) 2.5.1
3719a10 @tj Docs
tj authored
107
562b9cb @tj Docs
tj authored
108 ## Example REPL (interactive console) Session
109
47cbe93 @tj Link
tj authored
110 [http://gist.github.com/283360](http://gist.github.com/283360)
562b9cb @tj Docs
tj authored
111
77a8042 @tj Started specs
tj authored
112 ## License
99e1a12 @tj Initial commit
tj authored
113
114 (The MIT License)
115
77a8042 @tj Started specs
tj authored
116 Copyright (c) 2009 TJ Holowaychuk <tj@vision-media.ca>
99e1a12 @tj Initial commit
tj authored
117
118 Permission is hereby granted, free of charge, to any person obtaining
119 a copy of this software and associated documentation files (the
120 'Software'), to deal in the Software without restriction, including
121 without limitation the rights to use, copy, modify, merge, publish,
122 distribute, sublicense, and/or sell copies of the Software, and to
123 permit persons to whom the Software is furnished to do so, subject to
124 the following conditions:
125
126 The above copyright notice and this permission notice shall be
127 included in all copies or substantial portions of the Software.
128
129 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
130 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
131 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
132 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
133 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
134 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
135 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Something went wrong with that request. Please try again.