Use Cases

Bun avec Claude Code

Apprenez Bun avec Claude Code. Conseils pratiques et exemples de code inclus.

Accelerer l’adoption du runtime Bun avec Claude Code

Bun est un runtime tout-en-un pour JavaScript/TypeScript. Il integre un gestionnaire de paquets, un bundler et un test runner, et fonctionne plusieurs fois plus vite que Node.js. Tirez parti de Claude Code pour adopter efficacement les puissantes fonctionnalites de Bun.

Configuration du projet

> Cree un nouveau projet d'application web avec Bun.
> Inclus TypeScript, le framework Hono et la configuration des tests.
bun init my-app
cd my-app
bun add hono
// src/index.ts
import { Hono } from 'hono';
import { cors } from 'hono/cors';
import { logger } from 'hono/logger';

const app = new Hono();

app.use('*', logger());
app.use('/api/*', cors());

app.get('/api/health', (c) => {
  return c.json({ status: 'ok', runtime: 'bun' });
});

app.get('/api/users/:id', async (c) => {
  const id = c.req.param('id');
  const user = await getUser(id);
  return c.json(user);
});

export default {
  port: 3000,
  fetch: app.fetch,
};

Exploitation des API integrees de Bun

> Implemente un magasin de donnees simple en utilisant les API de fichiers et SQLite de Bun.
// src/db.ts
import { Database } from 'bun:sqlite';

const db = new Database('app.db', { create: true });

db.run(`
  CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
  )
`);

export const createUser = db.prepare(
  'INSERT INTO users (name, email) VALUES ($name, $email)'
);

export const getUser = db.prepare(
  'SELECT * FROM users WHERE id = $id'
);

// Operations de fichiers Bun
export async function saveUpload(file: File) {
  const path = `./uploads/${file.name}`;
  await Bun.write(path, file);
  return path;
}

export async function readConfig() {
  const file = Bun.file('./config.json');
  return await file.json();
}

Execution des tests

Bun integre un test runner haute vitesse.

> Ecris des tests pour les endpoints de l'API.
> Utilise le test runner de Bun.
// src/index.test.ts
import { describe, expect, it, beforeAll, afterAll } from 'bun:test';

describe('API endpoints', () => {
  it('GET /api/health renvoie ok', async () => {
    const res = await fetch('http://localhost:3000/api/health');
    const data = await res.json();
    expect(res.status).toBe(200);
    expect(data.status).toBe('ok');
  });

  it('GET /api/users/:id renvoie un utilisateur', async () => {
    const res = await fetch('http://localhost:3000/api/users/1');
    expect(res.status).toBe(200);
    const user = await res.json();
    expect(user).toHaveProperty('name');
  });
});
# Executer les tests
bun test

# Mode watch
bun test --watch

# Couverture
bun test --coverage

Bundle et build

> Empaquete le code frontend avec Bun.
> Active le tree-shaking et le minify.
// build.ts
await Bun.build({
  entrypoints: ['./src/client/index.tsx'],
  outdir: './dist',
  target: 'browser',
  minify: true,
  splitting: true,
  sourcemap: 'external',
  define: {
    'process.env.NODE_ENV': '"production"',
  },
});

console.log('Build termine !');

Summary

Bun ameliore drastiquement l’experience de developpement avec sa vitesse ecrasante et sa toolchain integree. Combine avec Claude Code, vous pouvez apprendre rapidement les API et patterns propres a Bun. Consultez egalement le guide de developpement d’API et les strategies de test.

Pour plus de details sur Bun, consultez la documentation officielle de Bun.

#Claude Code #Bun #runtime #JavaScript #performance