Giter VIP home page Giter VIP logo

fastri's Introduction

FastRI Copyright (C) 2006  Mauricio Fernandez <[email protected]>
Inspired by ri-emacs.rb by Kristof Bastiaensen <[email protected]>

Overview
========
FastRI is an alternative to the ri command-line tool. It is *much* faster, and
also allows you to offer RI lookup services over DRb. FastRI is a bit smarter
than ri, and can find classes anywhere in the hierarchy without specifying the
"full path". It also knows about gems, and can tell you e.g. which extensions
to a core class were added by a specific gem.

Install
=======
Just run  
  setup.rb

Usage
=====
There are two parts to FastRI:
* the server: fastri-server
* the client: fri

FastRI uses a Rinda Ring to allow servers to be discovered automatically
without needing to indicate the DRb URIs manually. It can work across 
machines if you make sure the ring server is bound to the correct interface,
and the ACL permissions are correct.

Quickstart
----------
 $ fastri-server             (blocks)
Later,
 $ fri String
 ---------------------------------------------------------- Class: String
      A String object holds and manipulates an arbitrary sequence of
      bytes, typically representing characters. String objects may be
      created using String::new or as literals.
 ...

Read on for more information, including how to make FastRI work across
machines.

Launching the server
--------------------
For local usage, just
  $ fastri-server
will do. The DRb service will bind to 127.0.0.1, and only connections from
127.0.0.1 will be allowed. If you want to allow fri to be used from other
machines, you have to specify which interface to bind to, and allow incoming 
connections from the desired hosts. For example, if your network is
192.168.1.0, and your IP is 192.168.1.2, you can do
  $ fastri-server -a 192.168.1.0/24 -s 192.168.1.2
  FastRI 0.0.1 listening on druby://192.168.1.2:41217
  ACL:
  deny  all
  allow localhost
  allow 192.168.1.0/24

Further options are documented in
  $ fastri-server -h

Using fri
---------
Running fri with no options (or -h/--help) will explain the command-line options.
If you are using fri locally (i.e. on the same server as fastri-server), just use
it as follows:
  $ fri Array
  ------------------------------------------------------- Class: Array
  Arrays are ordered, integer-indexed collections of any object.
  ...

If you're on a different machine, you'll probably have to specify which
address the DRb service should be attached to. You can either specify it with
-s ADDRESS  (or --bind ADDRESS), or set the FASTRI_ADDR environment variable.
For example, if you're on 192.168.1.101, both
  export FASTRI_ADDR="192.168.1.101"
  fri Array
and
  fri -s 192.168.1.101 Array
will work. Note that FASTRI_ADDR is the *local* address: the server will be
discovered automatically. (The reason why the local address must be specified
is that it will be given to the ring server, which must be able to establish
a reverse connection through the local DRb service.)

Feedback
========
Bug reports, patches, comments... are appreciated.
You can contact the author via <[email protected]>. Please add "fastri" to the
subject in order to bypass the spam filters.

License
=======
FastRI is licensed under the same terms as Ruby. See LICENSE.

fastri's People

Contributors

cypher avatar mfp avatar rubikitch avatar

Watchers

 avatar  avatar  avatar  avatar

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.