• Stars
    star
    601
  • Rank 72,011 (Top 2 %)
  • Language
    Nix
  • License
    MIT License
  • Created over 5 years ago
  • Updated 15 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Declarative and reproducible Jupyter environments - powered by Nix

Jupyter ❀️ Nix

This repository provides a Nix-based framework for the definition of declarative and reproducible Jupyter environments. These environments include JupyterLab - configurable with extensions - the classic notebook, and configurable Jupyter kernels.

Getting started

The following snippet will create a new project directory, initialize the project with a flake template, enable a Python kernel, and start the JupyterLab environment.

mkdir my-project
cd my-project
nix flake init --template github:tweag/jupyenv
nix run

After some time, you should see the following in your terminal. Your default web browser should open and enter the JupyterLab environment. If it does not, use one of the suggested URLs.

...
[I 2022-10-11 18:47:30.346 ServerApp] Jupyter Server 1.17.1 is running at:
[I 2022-10-11 18:47:30.346 ServerApp] http://localhost:8888/lab?token=8f2261a45601848bd79eda97d8d39c3d0f4978bc61fbe346
[I 2022-10-11 18:47:30.346 ServerApp]  or http://127.0.0.1:8888/lab?token=8f2261a45601848bd79eda97d8d39c3d0f4978bc61fbe346
[I 2022-10-11 18:47:30.346 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 2022-10-11 18:47:30.359 ServerApp] 
    
    To access the server, open this file in a browser:
        file:///home/bakerdn/.local/share/jupyter/runtime/jpserver-286971-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/lab?token=8f2261a45601848bd79eda97d8d39c3d0f4978bc61fbe346
     or http://127.0.0.1:8888/lab?token=8f2261a45601848bd79eda97d8d39c3d0f4978bc61fbe346

Documentation

See the website for further instructions about the environment, kernels, and extensions.

Contributing

PRs are welcome!

This project provides a development shell which you can enter with nix develop. Please run pre-commit run -all before submitting your pull request for review. This will run a nix formatter for consistency.

If you are new to contributing to open source, this guide helps explain why, what, and how to successfully get involved.

License

This project is licensed under the MIT License. See the LICENSE file for details.

More Repositories

1

nickel

Better configuration for less
Rust
2,061
star
2

asterius

DEPRECATED in favor of ghc wasm backend, see https://www.tweag.io/blog/2022-11-22-wasm-backend-merged-in-ghc
Haskell
1,981
star
3

ormolu

A formatter for Haskell source code
Haskell
924
star
4

HaskellR

The full power of R in Haskell.
Haskell
578
star
5

topiary

Rust
486
star
6

sparkle

Haskell on Apache Spark.
Haskell
444
star
7

awesome-learning-haskell

A collection of resources which were useful to Tweagers for learning Haskell and its various aspects
399
star
8

monad-bayes

A library for probabilistic programming in Haskell.
Jupyter Notebook
395
star
9

funflow

Functional workflows
Haskell
361
star
10

linear-base

Standard library for linear types in Haskell.
Haskell
333
star
11

rules_nixpkgs

Rules for importing Nixpkgs packages into Bazel.
Starlark
262
star
12

rules_haskell

Haskell rules for Bazel.
Starlark
260
star
13

inline-java

Haskell/Java interop via inline Java code in Haskell modules.
Haskell
228
star
14

capability

Extensional capabilities and deriving combinators
Haskell
214
star
15

FawltyDeps

Python dependency checker
Python
166
star
16

clodl

Turn dynamically linked ELF binaries and libraries into self-contained closures.
Starlark
152
star
17

inline-js

Call JavaScript from Haskell, and vice versa!
Haskell
128
star
18

opam-nix

Turn opam-based OCaml projects into Nix derivations
Nix
97
star
19

linear-types

Drafts, notes and resources for adding linear typing to GHC.
TeX
74
star
20

terraform-provider-nixos

Terraform provider for NixOS and NixOps
Go
70
star
21

nix-hour

Questions for the weekly Nix Hour
Nix
64
star
22

distributed-closure

Serializable closures for distributed programming.
Haskell
63
star
23

terraform-provider-secret

Terraform secret provider
Shell
62
star
24

nixtract

A CLI tool to extract the graph of derivations from a Nix flake.
Rust
59
star
25

guides

Designing, programming and deploying, in style.
58
star
26

tf-ncl

Terraform Configurations with Nickel
Rust
56
star
27

python-monorepo-example

Example of a python monorepo using pip, the poetry backend, and Pants
Python
50
star
28

servant-template

A modern template for a Servant
Haskell
47
star
29

kernmantle

Braiding extensible effects together in a pipeline/workflow of tasks
Haskell
47
star
30

pirouette

Language-generic workbench for building static analysis
Haskell
47
star
31

skyscope

A tool for visualising and exploring Bazel Skyframe graphs.
Haskell
45
star
32

rules_sh

Shell rules for Bazel
Starlark
40
star
33

nix_bazel_codelab

Nix+Bazel Codelab
Starlark
40
star
34

python-nix

Python-Nix FFI library using the new C API
Python
36
star
35

nix-ux

Nix UX improvements
Nix
36
star
36

blog-resources

Extra resources for Tweag's blog posts.
Jupyter Notebook
35
star
37

cooked-validators

Haskell
35
star
38

lagoon

Data centralization tool
Haskell
35
star
39

webauthn

A library for parsing and validating webauthn/fido2 credentials
Haskell
33
star
40

haskell-training

Material for Haskell training
Haskell
31
star
41

hyperion

A lab for future Criterion features.
Haskell
29
star
42

network-transport-zeromq

ZeroMQ transport for distributed-process (aka Cloud Haskell)
Haskell
22
star
43

haskell-stack-nix-example

Examples of valid and invalid Stack + Nix integration
Nix
20
star
44

genealogos

Genealogos, a Nix sbom generator
Rust
18
star
45

timestats

A library to profile time in a Haskell program
Haskell
17
star
46

ssh-participation

An ssh server that creates new users on-the-fly, great for letting users participate in a demo
Nix
15
star
47

nix_gazelle_extension

Gazelle language extension for nix files
Go
15
star
48

epcb

Nix RFC draft on evaluation purity and caching builtins
15
star
49

nixpkgs-graph-explorer

Explore the nixpkgs dependency graph
Python
14
star
50

nixpkgs-graph

Generate a graph from nixpkgs
Python
14
star
51

haskell-binaryen

Haskell bindings to binaryen.
WebAssembly
14
star
52

gazelle_cabal

A gazelle extension to produce Haskell rules from cabal files
Haskell
13
star
53

smtlib-backends

A Haskell library providing low-level functions for SMTLIB-based interaction with SMT solvers.
Haskell
13
star
54

rust-wasm-threads

Examples of Web Workers using rust and WASM
Rust
11
star
55

chainsail

Replica Exchange sampling as-a-service
Python
10
star
56

random-quality

Framework for testing quality of random number generators
Nix
10
star
57

rules_haskell_examples

Examples of using Bazel's Haskell rules.
9
star
58

funflow2

Compose and run computational workflows
Haskell
9
star
59

rust-wasm-nix

Nix
9
star
60

store-graph

simple haskell code that builds a graph from the nix store
Shell
9
star
61

purescript-unlift

MonadBase, MonadUnliftEffect, MonadUnliftAff, and MonadUnlift
Nix
9
star
62

stackage-head

Stackage builds based on GHC HEAD
Haskell
9
star
63

ghc-wasm-miso-examples

Haskell
9
star
64

nix-installer-generator

Nix installer generator
Nix
8
star
65

functionless

CLI tool for packaging Haskell executables for AWS Lambda
Java
8
star
66

ch-nixops-example

Example deployment of Cloud Haskell app using NixOps.
Haskell
8
star
67

nix-store-gcs-proxy

A HTTP nix store that proxies requests to Google Storage
Nix
8
star
68

ghc-wasm32-wasi

DEPRECATED, new home https://gitlab.haskell.org/ghc/ghc-wasm-meta
Nix
7
star
69

rust-alpine-mimalloc

Shell
7
star
70

python-nix-flake-template

Bootstrap a reproducible yet flexible Python development environment using Nix
Nix
7
star
71

terraform-gcp-cdn-bucket

A Google Storage Bucket + CDN configuration
HCL
7
star
72

servant-oauth2

A modern servant wrapper around the wai-middleware-auth OAuth2 provider implementations.
Haskell
7
star
73

hello-plutarch

Template project for smart-contracts in Plutarch
Nix
6
star
74

tendermint-bazel

Building Go with Bazel
Go
6
star
75

linear-constraints

TeX
6
star
76

ghc-asterius

DEPRECATED, new home https://gitlab.haskell.org/ghc/ghc
Haskell
6
star
77

remote-execution-nix

nix to bazel-re proxy
Rust
6
star
78

chainsail-resources

Examples, documentation and other additional resources related to Chainsail
Python
5
star
79

tf-ncl-examples

Examples of Terraform configuration with Nickel
NCL
5
star
80

nickel-lang.org

The website of the Nickel language
JavaScript
5
star
81

nix-marp

Run Marp tools via Nix
Nix
5
star
82

nickel-kubernetes

Typecheck, template and modularize your Kubernetes definitions with Nickel
Rust
5
star
83

duckling

a Haskell library that parses text into structured data
Haskell
4
star
84

graft

Haskell
4
star
85

nix-unit-testing

A showcase of different unit testing frameworks for Nix.
Python
4
star
86

rules_purescript

Python
4
star
87

summer-of-nix-modules

Incremental module system buildup for Summer of Nix
Nix
4
star
88

toronto_reproducibility_workshop

Slides and toy project for the talk at the Toronto Workshop on Reproducibility
Python
4
star
89

nixos-specialisation-dual-boot

Nix
4
star
90

inputs

Utilities for building forms with React
TypeScript
3
star
91

pthread

Bindings for the pthread library
Haskell
3
star
92

cooked-smart-contracts

Smart contracts for the Cardano blockchain written with Cooked-validators
Haskell
3
star
93

stack-docker-nix

Provision Haskell Stack Docker images using Nix
Dockerfile
3
star
94

organist-example

Python
3
star
95

zeromq4-haskell

Clone of the https://gitlab.com/twittner/zeromq-haskell
Haskell
3
star
96

gazelle_haskell_modules

A gazelle extension to generate haskell_module rules
Haskell
3
star
97

run-nix-shell

GitHub action for executing scripts via nix-shell.
Shell
3
star
98

economics

Data science focussed on economics and social science
Jupyter Notebook
2
star
99

smart-contracts-lh

Plutus smart contracts verified with Liquid Haskell
Haskell
2
star
100

ocaml-close

Transform 'open' in OCaml source files for optimal legibility
OCaml
2
star