Code Monkey home page Code Monkey logo

folder's Introduction

Folder

Folder is a tiny search engine for storing and searching small number of documents. It is compatible with WebAssembly and may be compatible with TinyGo in the future as well. This is a work-in-progress.

Usage

// TODO

File formats

These file formats are not final and may change in the future.

[index].fns

Newline-separated list of fields. Nested fields are joined together with their parent fields by dots.

[index].dcs

Contains the documents in CSV format.

[index].dst

Contains the document stats in CSV format.

[index].tst

Contains the term stats in CSV format.

Development

Structure

  • Main APIs are located in folder.go.
  • APIs that deal with I/O are located in io.go to separate core operations such as indexing / searching from I/O operations such as saving and loading indexes.
  • Internal code that may change often are located in internal.go.
  • Short utility functions are located in util.go.
  • Scripts are located inside the scripts directory.
  • Command-line tool packages such as folder are located inside the cmd directory.
  • Assets such as small sample data files are located inside the assets directory.

Setting up

For the development of this library, first we run go generate which runs a script that install the command-line tool and fetch additional, large files for indexing and testing.

To speed up testing of new code, we may also change where github.com/veeableful/folder points to by putting the following line in the go.mod files:

replace github.com/veeableful/folder => [your Folder directory path]

The project is not currently structured for development in Windows as the scripts are shell scripts only.

Contributions

Contributions in any form are most welcome as I'm not familiar with search engine implementations myself and I don't have a CS degree. Nothing in this project is final so any kind of feedback or advice would be appreciated!

License

Folder is BSD 3-clause licensed.

folder's People

Contributors

veeableful avatar

Watchers

 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.