https://noogle.dev - nix function exploring.
Go to file
Johannes Kirschbauer 72c3a28d92
Create LICENSE
2023-01-25 16:23:32 +01:00
.github/workflows add nix-unstable 2022-12-03 15:36:54 +01:00
components add pre-commit checks (#16) 2023-01-25 15:54:44 +01:00
models feature/deeplinks 2023-01-24 21:02:17 +01:00
pages improved url entanglement with PageState (#15) 2023-01-25 10:28:22 +01:00
public ux: improve lists and mobile 2022-12-03 17:38:50 +01:00
queries feature/deeplinks 2023-01-24 21:02:17 +01:00
scripts some small fixes & refactoring 2023-01-08 16:54:23 +01:00
styles improve: mobile & dark theme 2022-12-12 14:24:16 +01:00
types feature/deeplinks 2023-01-24 21:02:17 +01:00
.envrc INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00
.eslintrc.json INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00
.gitignore add pre-commit checks (#16) 2023-01-25 15:54:44 +01:00
createEmotionCache.ts INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00
flake.lock add pre-commit checks (#16) 2023-01-25 15:54:44 +01:00
flake.nix add pre-commit checks (#16) 2023-01-25 15:54:44 +01:00
LICENSE Create LICENSE 2023-01-25 16:23:32 +01:00
next.config.js add real nixpkgs metadata from enhanced nixdoc 2022-12-03 15:25:32 +01:00
nix_systems INIT: first prototype of frontend 2022-11-26 10:36:08 +01:00
package-lock.json Feature/function of the day (#9) 2023-01-20 13:08:20 +01:00
package.json Feature/function of the day (#9) 2023-01-20 13:08:20 +01:00
README.md add pre-commit checks (#16) 2023-01-25 15:54:44 +01:00
tsconfig.json add pre-commit checks (#16) 2023-01-25 15:54:44 +01:00

Noogle

Website GitHub top language GitHub Workflow Status built-with-dream2nix

Noogle is a Nix API search engine. It allows you to search functions based on their types and other attributes in nix projects. In nixpkgs especially the builtins and lib attributes.

Current Features

  • Beginners-friendly search for nix and nix-related functions
  • Search by type signatures
  • Sorted by relevance based on:
    • id
    • name
    • category
    • description
    • example
  • tree-search from one type to another
  • functions from external libraries and nix frameworks

Available data

Currently there are the following subsets of nix functions available.

  • nix/builtins
  • nixpkgs/lib
  • nixpkgs/build-support/trivial-builders
  • types are parsed and interpreted
  • text search, looks in all metadata fields for an exact match word or character sequence. Noogle does not offer elastic search yet. And it remains open if it ever will.

If you have a function/set that you would like to find here, don't hesitate to file an issue.

View the prototype here

We need your help / what is missing

Extend available function

Currently there is only a limited set of data.

Because nixpkgs is very inconsistently documented it is really hard to extend the scope.

So if you want to help noogle, we must improve nixpkgs itself.

  • Parsing Types: into a real type signature tree
  • Fix: line beginnings that include Asterisk (*) : Is interpreted as List-Markdown
  • Upstream missing type informations (like in /lib/attrsets.nix)
  • Write type signatures for the builtins in json
  • Add path, where each function can be imported from.

e.g. lib.makeOverridable or lib.customisation.makeOverridable it is available in both sets

Website

  • improve share (deeplinks)
  • social interactions
  • Add filter by tags e.g. lib.lists
  • Prepare for scaling up (we expect more users)
  • Mobile optimization for reading on the go

Nixdoc / Indexer (fork)

  • Parse types directly while also parsing comments
  • Extend the scope, so that is can parse more comments

Contribute

Contributions are very welcome just file a PR or issue

Build this page

nix build .#

Develop

nix develop

This command creates the node_modules folder with all needed dependencies based on dream2nix.