Skip to content

Commit ac7661b

Browse files
committed
Moved all web-compatible parts of the S5 Node implementation to the lib5 package
1 parent 1dfd599 commit ac7661b

28 files changed

+173
-1796
lines changed

bin/s5_server.dart

+5-3
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ void main(List<String> arguments) async {
5656
logger.info('');
5757

5858
final node = S5Node(
59-
config,
59+
config: config,
6060
logger: logger,
6161
rust: rust,
6262
crypto: crypto,
@@ -90,8 +90,9 @@ port = 5050
9090
9191
[p2p.peers]
9292
initial = [
93+
'wss://[email protected]/s5/p2p',
94+
'wss://[email protected]/s5/p2p',
9395
'wss://[email protected]/s5/p2p',
94-
'wss://[email protected]/s5/p2p',
9596
]
9697
''';
9798

@@ -116,7 +117,8 @@ bind = '0.0.0.0'
116117
117118
[p2p.peers]
118119
initial = [
120+
'wss://[email protected]/s5/p2p',
121+
'wss://[email protected]/s5/p2p',
119122
'wss://[email protected]/s5/p2p',
120-
'wss://[email protected]/s5/p2p',
121123
]
122124
''';

lib/api.dart

-45
This file was deleted.

lib/constants.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// ! S5 node version
2-
const nodeVersion = '0.13.5';
2+
const nodeVersion = '0.14.1';
33

44
// ! default chunk size for hashes
55
const defaultChunkSize = 256 * 1024;

lib/crypto/implementation.dart

+8
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'dart:typed_data';
33

44
import 'package:cryptography/cryptography.dart';
55
import 'package:lib5/lib5.dart';
6+
import 'package:lib5/util.dart';
67

78
import 'package:s5_server/rust/bridge_definitions.dart';
89

@@ -106,4 +107,11 @@ class RustCryptoImplementation extends CryptoImplementation {
106107
plaintext: plaintext,
107108
);
108109
}
110+
111+
@override
112+
Future<Uint8List> hashBlake3File(
113+
{required int size, required OpenReadFunction openRead}) {
114+
// TODO: implement hashBlake3File
115+
throw UnimplementedError();
116+
}
109117
}

lib/download/open_read.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ import 'dart:io';
33
import 'dart:math';
44
import 'dart:typed_data';
55

6+
// TODO Move this to lib5 (with generic kv FS abstraction/Stream)
7+
68
import 'package:http/http.dart';
79
import 'package:lib5/constants.dart';
810
import 'package:lib5/lib5.dart';
11+
import 'package:lib5/node.dart';
912
import 'package:lib5/util.dart';
1013
import 'package:path/path.dart';
1114

12-
import 'package:s5_server/download/uri_provider.dart';
1315
import 'package:s5_server/node.dart';
1416

1517
final httpClient = Client();

lib/download/uri_provider.dart

-120
This file was deleted.

lib/http_api/http_api.dart

+9-12
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,23 @@ import 'dart:io';
44
import 'dart:typed_data';
55

66
import 'package:alfred/alfred.dart';
7-
// ignore: implementation_imports
8-
import 'package:alfred/src/type_handlers/websocket_type_handler.dart';
97
import 'package:base_codecs/base_codecs.dart';
108
import 'package:http/http.dart';
119
import 'package:lib5/constants.dart';
1210
import 'package:lib5/lib5.dart';
11+
import 'package:lib5/node.dart';
1312
import 'package:lib5/util.dart';
14-
import 'package:s5_msgpack/s5_msgpack.dart';
1513
import 'package:mime/mime.dart';
1614
import 'package:path/path.dart';
17-
import 'package:s5_server/accounts/account.dart';
1815

16+
import 'package:s5_server/accounts/account.dart';
1917
import 'package:s5_server/constants.dart';
20-
import 'package:s5_server/download/uri_provider.dart';
2118
import 'package:s5_server/http_api/admin.dart';
2219
import 'package:s5_server/node.dart';
2320
import 'package:s5_server/service/accounts.dart';
2421
import 'package:s5_server/service/p2p.dart';
25-
import 'package:s5_server/util/uid.dart';
2622
import 'package:s5_server/util/multipart.dart';
23+
import 'package:s5_server/util/uid.dart';
2724
import 'serve_chunked_file.dart';
2825

2926
class HttpAPIServer {
@@ -415,7 +412,7 @@ class HttpAPIServer {
415412
request.headers[h.key] = h.value;
416413
}
417414

418-
final response = await httpClient.send(request);
415+
final response = await node.httpClient.send(request);
419416

420417
if (response.statusCode < 200 || response.statusCode >= 300) {
421418
throw 'HTTP ${response.statusCode}';
@@ -604,7 +601,7 @@ class HttpAPIServer {
604601
throw 'This endpoint does not support resolver CIDs yet';
605602
}
606603

607-
final metadata = await node.getMetadataByCID(cid);
604+
final metadata = await node.downloadMetadata(cid);
608605

609606
if (cid.type != cidTypeBridge) {
610607
setUnlimitedCacheHeader(res);
@@ -795,7 +792,7 @@ class HttpAPIServer {
795792
res.statusCode = 204;
796793
});
797794

798-
app.get('/s5/registry/subscription', (req, res) async {
795+
/* app.get('/s5/registry/subscription', (req, res) async {
799796
final auth = await node.checkAuth(req, 's5/registry/subscription');
800797
if (auth.denied) return res.unauthorized(auth);
801798
@@ -810,7 +807,7 @@ class HttpAPIServer {
810807
);
811808
812809
stream.map((sre) {
813-
return node.registry.serializeRegistryEntry(sre);
810+
return sre.serialize();
814811
}).listen((event) {
815812
webSocket.add(event);
816813
});
@@ -820,7 +817,7 @@ class HttpAPIServer {
820817
// TODO Clean up subscriptions
821818
},
822819
);
823-
});
820+
}); */
824821

825822
final authorization = node.config['http']?['api']?['authorization'];
826823

@@ -963,7 +960,7 @@ class HttpAPIServer {
963960
cid = CID.fromBytes(res.data.sublist(1));
964961
}
965962

966-
final metadata = await node.getMetadataByCID(cid) as WebAppMetadata;
963+
final metadata = await node.downloadMetadata(cid) as WebAppMetadata;
967964

968965
WebAppMetadataFileReference? servedFile;
969966

lib/http_api/serve_chunked_file.dart

+1-9
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
import 'dart:async';
22
import 'dart:io';
3-
import 'dart:math';
4-
import 'dart:typed_data';
53

64
import 'package:belatuk_range_header/belatuk_range_header.dart';
7-
import 'package:http/http.dart';
85
import 'package:lib5/lib5.dart';
96
import 'package:lib5/util.dart';
10-
import 'package:path/path.dart';
11-
import 'package:s5_server/download/open_read.dart';
127

13-
import 'package:s5_server/download/uri_provider.dart';
14-
import 'package:s5_server/logger/base.dart';
8+
import 'package:s5_server/download/open_read.dart';
159
import 'package:s5_server/node.dart';
1610

17-
final httpClient = Client();
18-
1911
Future handleChunkedFile(
2012
HttpRequest req,
2113
HttpResponse res,

lib/logger/base.dart

-7
This file was deleted.

lib/logger/console.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'dart:io';
2-
import 'package:tint/tint.dart';
32

4-
import 'base.dart';
3+
import 'package:lib5/util.dart';
4+
import 'package:tint/tint.dart';
55

66
class ConsoleLogger extends Logger {
77
final String prefix;

0 commit comments

Comments
 (0)