seedJS — Менеджер пакетов CommonJS

    logo

    SEED.JS


    Ребята из SproutCore представили менеджер пакетов стандарта CommonJS (в настоящее время поддерживает node.js как целевую систему).

    Работа с ним похожа на работу с rubygems. Вместо работы с node нужно использовать seed, который подготавливает окружение для работы с пакетами (аналогично require 'rubygems').

    Теперь использование любого пакета выполняется просто, как:
    seed install markdown

    И далее
    #!/usr/bin/env seed

    var markdown = require('markdown');
    markdown.html('__Hello World__');

    Создание своего пакета и его публикация в репозитории также осуществляется очень просто.

    Создаём файл ./hello-world/package.json вида:
    {
      "name": "hello-world",
      "version": "0.1.0",

      "dependencies": {
        "markdown": "1.0.0"
      }
    }

    И выполняем
    seed push ./hello-world

    Проект только начал своё развитие, ваша помощь в его развитии только приветствуется!

    P.S.: есть и альтернативный проект менеджера пакетов для node.JS — kiwi.

    Комментарии 38

      0
      Картинка на червяков похожа :)
      • НЛО прилетело и опубликовало эту надпись здесь
          –3
          Не просто похожа, а прямо вылитые червяки. Копошаться такие в баночке, копошаться. А ты их достаёшь по одному, на крючок насаживаешь и каааак… фьюх… и поплавочек уже мерно качается на волнах. А рядом в ведре рыба пойманная плещется. И костерок потрескивает.

          Чорт, что-то на рыбалку захотелось :)
            0
            Сегодня хлеб с тмином купил, брат тоже разглядывал разглядывал и говорит на червяков похожи.
            +7
            Было бы интересно почитать про это поподробнее. Из этого «обзора» я вынес только, что есть какие-то семки.js
              +5
              Есть такая концепция: Server-side Javascript
              CommonJS — это язык, построенный на основе javascript для воплощения концепции.
              (начнем проводить аналогию например с php)

              Вот для этой реализации был написан менеджер пакетов (pear).

              Между делом нам сообщают, что работает сервер для пакетов на node.js.
              Последний представляет из реализацию(?) CommonJS на основе js-движка V8 (от Хрома)
              с доп. библиотеками для написания произвольного TCP-сервера.

              Поправьте, если что не так.
                0
                Всё верно. В будущем вероятно, добавят поддержку других серверов.
                +3
                Сейчас становится очень популярной разработка серверных приложений на Javascript с использованием машины, управляемой событиями.
                Скорость и стабильность таких приложений обычно превосходят аналогичные на Ruby/EM и Python/Twisted.
                Немаловажно также единообразие серверного и клиентского окружения.

                Самы распространённый сервер для таких приложений — Node.JS.

                Мы уже сейчас может работать с ним, но нам не хватает стандартного инструментария, который есть для других платформ.

                В частности, крайне не хватало менеджера пакетов для простоты их создания и распространения.

                Теперь есть.
                  +5
                  Теперь понятно. Мне кажется, стоит сделать отдельный блог под серверный JS, потому что под Javascript'ом как-то принято понимать клиентский JS. Хотя, с другой стороны, продвигать в массы будет проще через этот блог. Но тогда стоит получше разжёвывать в постах о том что это и с чем его едят, а может быть помещать ссылки на посты по этой теме. Тогда и желающих помочь больше найдётся ;)
                    +2
                    Да, тема очень интересная и нужная. Тем более в свете все большей популярности ServerSide JS.
                      0
                      Похоже seed является неким враппером над nodejs, как это влияет на производительность?
                        0
                        Фактически никак.

                        Замедляются вызовы require, которые обычно в приложении выполняются ещё до входа в цикл сообщений.
                          0
                          Просто подозрения вызвал этот файл http://github.com/seedjs/seed/blob/master/src/loop.cc
                            0
                            Насколько я помню, это выход из цикла и вход в цикл сообщений библиотеки libev.
                            Используется для requireSync.
                        –1
                        >Самы распространённый сервер для таких приложений — Node.JS

                        Мне кажется, Opera Unite популярней.
                          0
                          Opera Unite построена с использованием технологии одноранговой сети.

                          Я жке говорю про традиционный стек client-server.
                            0
                            Удивительно, но «традиционный стек client-server» никак не противоречит «использованию технологии одноранговой сети», просто каждый компьютер может быть и сервером, и клиентом.
                            В случае Opera Unite ваше определение «серверных приложений на Javascript с использованием машины, управляемой событиями» вполне подходит.
                        –1
                        Семки.js =D похоже тока для реальный пацанов, пойду поставлю.
                          0
                          Кстати установка не самая тривиальная никогда не понимал, что мешает сделать через makefile
                            0
                            Форкнитесь и добавьте Makefile ;)

                            Вообще говоря, использование make не является стандартным для разработчиков на том же Ruby, где есть великолепные альтернативы (rake, thor).

                            Уверен, что появится и альтернатива make на чистом Javascript.
                              0
                              Есть jake — клон rake. Используется например в фреймворке Geddy для генерации шаблона приложения.
                        –1
                        семена укропа? )
                          0
                          похожи на семена фенхеля :)
                            0
                            Зира?
                            0
                            нет. это Тмин обыкновенный — используется в кулинарии
                            0
                            Не самая удачная иллюстрация.
                              +3
                              Это их лого )
                              0
                              V8 не поддерживает E4X и это очень грустно
                                0
                                Можно посмотреть в сторону
                                  0
                                  Спасибо, гляну обязательно поближе. Но это все костыли, а E4X — стандарт.
                                    0
                                    Это просто библиотеки, а E4X действительно стандарт… Костылями имхо неуместно простые библиотеки называть.
                                      0
                                      Ну почему ж, если б E4X нативно был реализован ( я надеюсь это рано или поздно произойдет), то надобности в них не было. Так что ИМХО вполне уместно, как и много чего другого.
                                  +1
                                  Для Node.js есть libxmljs и несколько других неплохих библиотек для работы с XML.
                                    +1
                                    А еще ни один браузерный js-движок не поддерживает работу с файлами и сокетами. Но node.js-то их поддерживает. Может, и добавят.
                                      +1
                                      Chromium уже поддерживает вебсокеты. Мозиловский движок — File API ( частично).
                                        0
                                        Слишком глубоко придётся в V8 копаться. Поддержку файлов и сокетов можно добавить просто добавив функций глобальному объекту, а E4X — уже изменение синтаксиса JS.
                                      0
                                      Слушайте, а чем вам нравится Server side JS? Тем, что там можно писать как курица лапой и при этом интерпретатор не ругается? По моему, так яваскрипт — гадость с неудобным синтаксисом, кроме того язык динамический и плохо оптимизируемый (читай тормозной). Там даже наследования нет нормального, или функции типа object_merge.
                                        0
                                        Начнём с того, что на сегодня для этого языка существуют фактически самые быстрые движки, которые вообще доступны для динамических языков.

                                        Кроме того, писать для web обычно гораздо удобнее на языках с динамической типизацией.

                                        «Нормальное» наследование добавляется включением любой библиотеки наподобие base2.

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое